public int AddConferenceHistory(ConferenceHistoryModel c) { if (_context.ConferenceHistory.Find(c.ConferenceId) == null) { _context.ConferenceHistory.Add(c); return(_context.SaveChanges()); } return(0); }
public int GetConferenceHistory(int historyHours) { int confs = 0; int conflicts = 0; int successfulAdds = 0; Log.Information("*************************************************"); Log.Information("Retrieving Conference History"); Log.Information($"Filtering from {DateTimeOffset.UtcNow.AddHours(historyHours)} to {DateTimeOffset.UtcNow} in UTC"); Log.Information("*************************************************"); var conferenceHistory = _managerNode.ConferenceHistory.Get(DateTimeOffset.UtcNow.AddHours(historyHours), DateTimeOffset.UtcNow).Result; foreach (var c in conferenceHistory) { Log.Debug("Parsing conference {0}", c.Id); ConferenceHistoryModel conference = new ConferenceHistoryModel(); conference.ConferenceId = c.Id; conference.Duration = c.Duration; conference.EndTime = (c.EndTime == null) ? 0 : (int)DateTimeOffset.Parse(c.EndTime, null, DateTimeStyles.AssumeUniversal).ToUnixTimeSeconds(); conference.InstantMessageCount = c.InstantMessageCount; conference.Name = c.Name; conference.ParticipantCount = c.ParticipantCount; conference.ResourceUri = c.ResourceUri; conference.ServiceType = c.ServiceType; conference.StartTime = (c.StartTime == null) ? 0 : (int)DateTimeOffset.Parse(c.StartTime, null, DateTimeStyles.AssumeUniversal).ToUnixTimeSeconds(); conference.Tag = c.Tag; try { confs++; Log.Debug("Writing conference data to DB"); successfulAdds += _sqliteServices.AddConferenceHistory(conference); } catch (DbUpdateException e) { Log.Information(e.InnerException.Message); if (e.InnerException.Message.Contains("UNIQUE constraint failed")) { conflicts++; } } catch (Exception e) { Log.Information($"Exception when writing conference data to DB {e.InnerException.Message}"); } } Log.Information($"+++++++++++++++++++++++++++++++++++ Total Confs: {confs}"); Log.Information($"+++++++++++++++++++++++++++++++++++ Confs added to DB: {successfulAdds}"); Log.Information($"+++++++++++++++++++++++++++++++++++ Conflicts: {conflicts}"); return(successfulAdds); }