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(); }
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); } }
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(); }
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); }
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(); }
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>()); } }
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(); }