public ActionResult ShowAllMessages() { MessagesStore ms = new MessagesStore(); ms = (MessagesStore)System.Web.HttpContext.Current.Application["messagesStore"]; return(PartialView("_Messages", ms)); }
public ActionResult CreateMessage(string userName, string messageBody) { Message message = new Message(messageBody, userName); MessagesStore ms = (MessagesStore)System.Web.HttpContext.Current.Application["messagesStore"]; ms.Add(message); return(RedirectToAction("Index")); }
public ActionResult GroupMessagesByUsers() { MessagesStore ms = new MessagesStore(); ms = (MessagesStore)System.Web.HttpContext.Current.Application["messagesStore"]; var groupedMessages = ms.Messages.GroupBy(u => u.User.Name); return(PartialView("_UserMessages", groupedMessages)); }
// Entry-point for processing messages public virtual void ProcessArrivalMessages() { try { // Getting all necessary info and initialization stores before processing var validationSettings = GetValidationSettingsForProducts(checkingProductIds); var validationRules = GetValidationRules(); SetRulesForSettings(validationSettings, validationRules); lock (locker) { messagesStore = new MessagesStore(); var messages = _arrivalMessagesRepository.GetNotProcessedMessages(checkingProductIds, null) .OrderBy(t => t.CreatedOn).ToList(); messagesStore.Messages = messages; InitDictionary(messages); } SmartThreadPool smartThreadPool = new SmartThreadPool(); // Max count threads, which can work together in one time var threadpoolMaxCountOfThreads = int.Parse(ConfigurationManager.AppSettings[SchedulerConfig.NumberOfSimultaneouslyProcessedMessagesAlias]); smartThreadPool.MaxThreads = (int)Math.Min(threadpoolMaxCountOfThreads, messagesStore.Messages.Count); // Parallel processing by using SmartThreadPool foreach (ArrivalMessage message in messagesStore.Messages) { smartThreadPool.QueueWorkItem(new WorkItemCallback(this.callback), new ThreadInfo { Message = message, ValidationSettings = validationSettings.Where(x => x.ProductId == message.ProductId).ToList(), }); } smartThreadPool.WaitForIdle(); smartThreadPool.Shutdown(); // Then we delete all files, if their count more than limit(another way it can call OutOfMemoryException) foreach (var checkingProductId in checkingProductIds) { _downloadService.CheckTmpFilesDir(checkingProductId); } } catch (Exception er) { var errorMessage = GetExceptionInfo(er); _log.Error(errorMessage); } }
public Repositories(string path) { FileWordsStore = new FileWordsStore(path); MistakeWordsStore = new MistakeWordsStore(path); MessagesStore = new MessagesStore(path); }
public void Load() { FileWordsStore.LoadWordsDictionary(); MessagesStore.LoadMessages(); MistakeWordsStore.LoadMistakeWords(); }