aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Debug.config
blob: 0b30d99e487dbc4de56bdcc7811a1960e7803ad6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?xml version="1.0" encoding="utf-8"?>

<!-- For more information on using web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=125889 -->

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <!--
    In the example below, the "SetAttributes" transform will change the value of 
    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
    finds an attribute "name" that has a value of "MyDB".
    
    <connectionStrings>
      <add name="MyDB" 
        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    </connectionStrings>
  -->

  <appSettings>
    <add key="ServerAddress" value="localhost\SQLEXPRESS" />
  </appSettings>
  
  <system.web>
    <!--
      In the example below, the "Replace" transform will replace the entire 
      <customErrors> section of your web.config file.
      Note that because there is only one customErrors section under the 
      <system.web> node, there is no need to use the "xdt:Locator" attribute.
      
      <customErrors defaultRedirect="GenericError.htm"
        mode="RemoteOnly" xdt:Transform="Replace">
        <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>
    -->
  </system.web>
</configuration>
/// <summary> /// Two collections in sequence /// </summary> public class MergedCollection<T, TCollection> : ObservableCollection<T> where TCollection : INotifyCollectionChanged, IList<T> { TCollection a; TCollection b; /// <summary> Create a wrapper containing elements of 'a' and then 'b' </summary> [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")] public MergedCollection(TCollection a, TCollection b) { this.a = a; this.b = b; this.a.CollectionChanged += SourceCollectionAChanged; this.b.CollectionChanged += SourceCollectionBChanged; Reset(); } void Reset() { this.Clear(); foreach(T item in a) this.Add(item); foreach(T item in b) this.Add(item); } void SourceCollectionAChanged(object sender, NotifyCollectionChangedEventArgs e) { SourceCollectionChanged(0, e); } void SourceCollectionBChanged(object sender, NotifyCollectionChangedEventArgs e) { SourceCollectionChanged(a.Count, e); } void SourceCollectionChanged(int collectionStart, NotifyCollectionChangedEventArgs e) { switch(e.Action) { case NotifyCollectionChangedAction.Add: for (int i = 0; i < e.NewItems.Count; i++) { this.InsertItem(collectionStart + e.NewStartingIndex + i, (T)e.NewItems[i]); } break; case NotifyCollectionChangedAction.Remove: for (int i = 0; i < e.OldItems.Count; i++) { this.RemoveAt(collectionStart + e.OldStartingIndex); } break; case NotifyCollectionChangedAction.Reset: Reset(); break; default: throw new NotSupportedException(e.Action.ToString()); } } } }