public int AddConferenceHistory(ConferenceHistoryModel c)
        {
            if (_context.ConferenceHistory.Find(c.ConferenceId) == null)
            {
                _context.ConferenceHistory.Add(c);
                return(_context.SaveChanges());
            }

            return(0);
        }
Пример #2
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);
        }