public async Task InvokeAsync_SameThreadNoValue() { var threadIds = new List <int> { Thread.CurrentThread.ManagedThreadId }; var di = new DataInvoker(); await di.InvokeAsync(null, async() => { threadIds.Add(Thread.CurrentThread.ManagedThreadId); await Task.Delay(0); }); threadIds.Add(Thread.CurrentThread.ManagedThreadId); Assert.AreEqual(1, threadIds.Distinct().Count()); }
public async Task InvokeAsync_SameThreadValue() { ExecutionContext.Reset(); ExecutionContext.SetCurrent(new ExecutionContext()); var threadIds = new List <int> { Thread.CurrentThread.ManagedThreadId }; var di = new DataInvoker(); var val = await di.InvokeAsync(null, async() => { threadIds.Add(Thread.CurrentThread.ManagedThreadId); await Task.Delay(0); return(1); }); threadIds.Add(Thread.CurrentThread.ManagedThreadId); Assert.AreEqual(1, val); Assert.AreEqual(1, threadIds.Distinct().Count()); }
private void ViewPropertyChanged(object sender, PropertyChangedEventArgs e) { if (string.Equals(ViewInvoker.Name, e.PropertyName, StringComparison.Ordinal) || string.IsNullOrEmpty(e.PropertyName)) { if (data is INotifyPropertyChanged notify) { notify.PropertyChanged -= DataPropertyChanged; DataInvoker.SetValue(data, ViewInvoker?.GetValue(view)); notify.PropertyChanged += DataPropertyChanged; } else { DataInvoker.SetValue(data, ViewInvoker?.GetValue(view)); } } }
public void XmlGenerate(TravelAgencyDbContext dbContext, string destination, string guide, string transport) { XmlTextWriter writer = new XmlTextWriter("../../../Data files/TransportReport.xml", System.Text.Encoding.UTF8); writer.WriteStartDocument(true); writer.Formatting = Formatting.Indented; writer.Indentation = 2; writer.WriteStartElement("Table"); var dataInvoker = new DataInvoker(); var data = dataInvoker.GetData(dbContext, destination, guide, transport); foreach (var report in data) { this.CreateNode(report, writer); } writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); }
public void XmlGenerate(TravelAgencyDbContext dbContext, string destination, string guide, string transport) { XmlTextWriter writer = new XmlTextWriter("../../../Data files/TransportReport.xml", System.Text.Encoding.UTF8); writer.WriteStartDocument(true); writer.Formatting = Formatting.Indented; writer.Indentation = 2; writer.WriteStartElement("Table"); var dataInvoker = new DataInvoker(); var data = dataInvoker.GetData(dbContext, destination, guide, transport); foreach (var report in data) { this.CreateNode(report, writer); } writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); }
private void DataPropertyChanged(object sender, PropertyChangedEventArgs e) { if (ViewInvoker == null) { throw new InvalidOperationException($"{nameof(ViewInvoker)} is not specified!"); } if (string.Equals(DataInvoker.Name, e.PropertyName, StringComparison.Ordinal) || string.IsNullOrEmpty(e.PropertyName)) { if (view is INotifyPropertyChanged notify) { notify.PropertyChanged -= ViewPropertyChanged; ViewInvoker.SetValue(view, DataInvoker?.GetValue(data)); notify.PropertyChanged += ViewPropertyChanged; } else { ViewInvoker.SetValue(view, DataInvoker?.GetValue(data)); } } }