Example #1
0
        public async Task RemoveTimeSpanItemAsync(int id)
        {
            _manualResetEvent.WaitOne();
            try
            {
                TimeSpanItemContext timespanItemContext = new TimeSpanItemContext();
                var timespanItem = await timespanItemContext.TimeSpanItems.Where(x => x.Id == id).Select(x => x).FirstOrDefaultAsync();

                if (timespanItem != null)
                {
                    timespanItemContext.Remove(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();
        }
Example #2
0
        public async Task <int> AddTimeSpanItemAsync(TimeSpanItem timeSpanItem)
        {
            _manualResetEvent.WaitOne();
            try
            {
                TimeSpanItemContext timeSpanItemContext = new TimeSpanItemContext();
                timeSpanItem = (await timeSpanItemContext.AddAsync(timeSpanItem)).Entity;
                await timeSpanItemContext.SaveChangesAsync();

                _manualResetEvent.Set();
                return(timeSpanItem.Id);
            }
            catch (Exception e)
            {
                if (_exceptionLogItemContext != null)
                {
                    await AddExceptionLogItem(new ExceptionLogItem()
                    {
                        TimeStamp = DateTime.Now, Message = e.Message, Source = e.Source, StackTrace = e.StackTrace
                    });
                }
                _manualResetEvent.Set();
                return(int.MinValue);
            }
        }
Example #3
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();
        }
Example #4
0
        public DatabaseService()
        {
            try
            {
                _exceptionLogItemContext = new ExceptionLogItemContext();
                _exceptionLogItemContext.Database.ExecuteSqlRaw($"CREATE TABLE IF NOT EXISTS ExceptionLogItems (Id INTEGER PRIMARY KEY AUTOINCREMENT, TimeStamp NUMERIC, Message TEXT, Source TEXT, StackTrace TEXT)");
                _exceptionLogItemContext.Database.Migrate();
            }
            catch { }

            try
            {
                AgendaItemContext agendaItemContext = new AgendaItemContext();
                agendaItemContext.Database.ExecuteSqlRaw($"CREATE TABLE IF NOT EXISTS AgendaItems (Id INTEGER PRIMARY KEY AUTOINCREMENT, Title TEXT, Start NUMERIC , End NUMERIC , Description TEXT, IsAllDayEvent INTEGER, IsOverridden INTEGER, Occupancy INTEGER, TimeStamp NUMERIC, IsDeleted INTEGER)");
                agendaItemContext.Database.Migrate();
            }
            catch (Exception e)
            {
                if (_exceptionLogItemContext != null)
                {
                    Task.Run(async() => await AddExceptionLogItem(new ExceptionLogItem()
                    {
                        TimeStamp = DateTime.Now, Message = e.Message, Source = e.Source, StackTrace = e.StackTrace
                    }));
                }
            }

            try
            {
                _timespanItemContext = new TimeSpanItemContext();
                _timespanItemContext.Database.ExecuteSqlRaw($"CREATE TABLE IF NOT EXISTS TimeSpanItems (Id INTEGER PRIMARY KEY AUTOINCREMENT, DayOfWeek INTEGER, Start NUMERIC , End NUMERIC, Occupancy INTEGER, TimeStamp NUMERIC, IsDeleted INTEGER)");
                _timespanItemContext.Database.Migrate();
            }
            catch (Exception e)
            {
                if (_exceptionLogItemContext != null)
                {
                    Task.Run(async() => await AddExceptionLogItem(new ExceptionLogItem()
                    {
                        TimeStamp = DateTime.Now, Message = e.Message, Source = e.Source, StackTrace = e.StackTrace
                    }));
                }
            }
            _manualResetEvent = new ManualResetEvent(true);
        }
Example #5
0
 public async Task RemoveTimeSpanItemAsync(TimeSpanItem timeSpanItem)
 {
     _manualResetEvent.WaitOne();
     try
     {
         TimeSpanItemContext timeSpanItemContext = new TimeSpanItemContext();
         timeSpanItemContext.Remove(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();
 }
Example #6
0
 public async Task <List <TimeSpanItem> > GetTimeSpanItemsAsync()
 {
     _manualResetEvent.WaitOne();
     try
     {
         TimeSpanItemContext timeSpanItemContext = new TimeSpanItemContext();
         _manualResetEvent.Set();
         return(await timeSpanItemContext.TimeSpanItems.ToListAsync());
     }
     catch (Exception e)
     {
         if (_exceptionLogItemContext != null)
         {
             await AddExceptionLogItem(new ExceptionLogItem()
             {
                 TimeStamp = DateTime.Now, Message = e.Message, Source = e.Source, StackTrace = e.StackTrace
             });
         }
         _manualResetEvent.Set();
         return(new List <TimeSpanItem>());
     }
 }
Example #7
0
 public async Task UpdateTimeSpanItemsAsync(List <TimeSpanItem> timeSpanItems, bool remote = false)
 {
     _manualResetEvent.WaitOne();
     if (timeSpanItems == null)
     {
         return;
     }
     try
     {
         TimeSpanItemContext timeSpanItemContext = new TimeSpanItemContext();
         if (remote)
         {
             timeSpanItems.ForEach(async x =>
             {
                 if (x.Id == 0)
                 {
                     await AddTimeSpanItemAsync(x);
                 }
                 else if (x.IsDeleted)
                 {
                     await RemoveTimeSpanItemAsync(x);
                 }
                 else
                 {
                     var updatedTimeSpanItem = await timeSpanItemContext.TimeSpanItems.Where(y => y.Id == x.Id && y.TimeStamp != x.TimeStamp).FirstOrDefaultAsync();
                     if (updatedTimeSpanItem != null)
                     {
                         updatedTimeSpanItem.DayOfWeek = x.DayOfWeek;
                         updatedTimeSpanItem.End       = x.End;
                         updatedTimeSpanItem.Occupancy = x.Occupancy;
                         updatedTimeSpanItem.Start     = x.Start;
                         updatedTimeSpanItem.TimeStamp = x.TimeStamp;
                     }
                 }
             });
         }
         else
         {
             timeSpanItems.ForEach(async x =>
             {
                 if (x.Id == 0)
                 {
                     await AddTimeSpanItemAsync(x);
                 }
                 else if (x.IsDeleted)
                 {
                     await RemoveTimeSpanItemAsync(x);
                 }
                 else
                 {
                     var updatedTimeSpanItem = await timeSpanItemContext.TimeSpanItems.Where(y => y.Id == x.Id && y.TimeStamp != x.TimeStamp).FirstOrDefaultAsync();
                     if (updatedTimeSpanItem != null)
                     {
                         await UpdateTimeSpanItemAsync(updatedTimeSpanItem);
                     }
                 }
             });
         }
     }
     catch (Exception e)
     {
         if (_exceptionLogItemContext != null)
         {
             await AddExceptionLogItem(new ExceptionLogItem()
             {
                 TimeStamp = DateTime.Now, Message = e.Message, Source = e.Source, StackTrace = e.StackTrace
             });
         }
     }
     _manualResetEvent.Set();
 }