Example #1
0
        public async Task UpdateTimeSpanItemAsync(TimeSpanItem timeSpanItem, bool remote = false)
        {
            _manualResetEvent.WaitOne();
            if (timeSpanItem == null)
            {
                return;
            }
            try
            {
                TimeSpanItemContext timeSpanItemContext = new TimeSpanItemContext();
                timeSpanItemContext.Entry(timeSpanItem).State = EntityState.Modified;
                if (remote)
                {
                    var queriedTimespanItem = await timeSpanItemContext.TimeSpanItems.Where(x => x.Id == timeSpanItem.Id).Select(x => x).FirstOrDefaultAsync();

                    if (queriedTimespanItem != null)
                    {
                        await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                        {
                            queriedTimespanItem.End       = timeSpanItem.End;
                            queriedTimespanItem.Occupancy = timeSpanItem.Occupancy;
                            queriedTimespanItem.Start     = timeSpanItem.Start;
                            queriedTimespanItem.TimeStamp = timeSpanItem.TimeStamp;
                        });

                        timeSpanItemContext.Update(queriedTimespanItem);
                    }
                }
                else
                {
                    timeSpanItemContext.Update(timeSpanItem);
                }
                await timeSpanItemContext.SaveChangesAsync();
            }
            catch (Exception e)
            {
                if (_exceptionLogItemContext != null)
                {
                    await AddExceptionLogItem(new ExceptionLogItem()
                    {
                        TimeStamp = DateTime.Now, Message = e.Message, Source = e.Source, StackTrace = e.StackTrace
                    });
                }
            }
            _manualResetEvent.Set();
        }