Пример #1
0
        private void StoreEventsInDb(object logMsg)
        {
            try
            {
                using (var ctx = DatabaseContext.Instance.Make())
                {
                    // удалить старые сообщения
                    ctx.ClearOldUserEvents(new DateTime(1900, 1, 1));
                    // сохранить новые
                    var countTotal = 0;
                    var events     = userEvent.ReceiveAllData();
                    foreach (var evtList in events)
                    {
                        var evtToSave = evtList.Value.Take(100).Reverse().ToList();
                        countTotal += evtToSave.Count;
                        foreach (var evt in evtToSave)
                        {
                            var usEvt = LinqToEntity.UndecorateUserEvent(evt);
                            ctx.USER_EVENT.Add(usEvt);
                        }
                    }

                    ctx.SaveChanges();
                    if ((bool)logMsg)
                    {
                        Logger.InfoFormat("Сохранено {0} записей USER_EVENT", countTotal);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка в UserEventStorage.StoreEventsInDb()", ex);
            }
        }