Exemple #1
0
        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());
        }
Exemple #2
0
        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());
        }
Exemple #3
0
 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();
        }
Exemple #6
0
 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));
         }
     }
 }