コード例 #1
0
        public void SaveNewsInFiles()
        {
            var newsDic = newsStore.ReceiveAllData();

            foreach (var chanNews in newsDic)
            {
                if (chanNews.Value == null ||
                    chanNews.Value.Count == 0)
                {
                    continue;
                }
                var fileName = MakeFileNameFromChannelId(chanNews.Key);
                try
                {
                    using (var sw = new StreamWriter(fileName, false, Encoding.UTF8))
                    {
                        foreach (var news in chanNews.Value)
                        {
                            sw.WriteLine(news.ToString());
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.ErrorFormat("SaveNewsInFiles(), file \"{0}\" error: {1}",
                                       fileName, ex);
                }
            }
        }
コード例 #2
0
        private void ThreadSafeStorageCopy(object sender, DoWorkEventArgs doWorkEventArgs)
        {
            var count     = (int)doWorkEventArgs.Argument;
            var beginTime = DateTime.Now;

            while (count > 0)
            {
                var data = threadSafeStorage.ReceiveAllData();
                count--;
            }
            doWorkEventArgs.Result = (int)DateTime.Now.Subtract(beginTime).TotalMilliseconds;
        }
コード例 #3
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);
            }
        }
コード例 #4
0
 public PerformerStat GetPerformerStatBySignalCatId(int signalCatId)
 {
     // данные не готовы к работе
     if (!cacheUpdated)
     {
         return(null);
     }
     try
     {
         return((from pair in dicPerformers.ReceiveAllData() where pair.Value.Statistics.Service == signalCatId select pair.Value.Statistics).FirstOrDefault());
     }
     catch (Exception ex)
     {
         Logger.Error("Ошибка в GetPerformerStatBySignalCatId", ex);
         return(null);
     }
 }
コード例 #5
0
 public Dictionary <int, ChatRequest> GetPendingRequests()
 {
     /*if (!pendingRequestsLock.TryEnterReadLock(lockTimeout))
      * {
      *  Console.WriteLine("ChatSender.GetPendingRequests: pendingRequestsReadLock timeout");
      *  return new Dictionary<int, ChatRequest>();
      * }
      * try
      * {
      *  return pendingRequests.ToDictionary(r => r.Key, r => new ChatRequest(r.Value));
      * }
      * finally
      * {
      *  pendingRequestsLock.ExitReadLock();
      * }*/
     return(pendingRequests.ReceiveAllData()
            .ToDictionary(chatRequest => chatRequest.Key,
                          chatRequest => new ChatRequest(chatRequest.Value)));
 }