public ActionResult MessageList(ListMessageModel model) { var storeId = GetActiveStoreScopeConfiguration(_storeService, _workContext); var messageTemplates = _messageTemplateService.GetAllMessageTemplates(storeId); var gridModel = new DataSourceResult { Data = messageTemplates.Select(x => { //standard template of message is edited in the admin area, SendInBlue template is edited in the SendInBlue account var isStandardTemplate = !x.GetAttribute <bool>("SendInBlueTemplate", _genericAttributeService); var message = new ListMessageModel { Id = x.Id, Name = x.Name, IsActive = x.IsActive, ListOfStores = _storeService.GetAllStores().Where(s => !x.LimitedToStores || _storeMappingService.GetStoresIdsWithAccess(x).Contains(s.Id)) .Aggregate(string.Empty, (current, next) => string.Format("{0}, {1}", current, next.Name)).Trim(','), TemplateTypeId = isStandardTemplate ? 0 : 1, TemplateType = isStandardTemplate ? _localizationService.GetResource("Plugins.Misc.SendInBlue.StandardTemplate") : _localizationService.GetResource("Plugins.Misc.SendInBlue.SendInBlueTemplate"), EditLink = isStandardTemplate ? Url.Action("Edit", "MessageTemplate", new { id = x.Id, area = "Admin" }) : string.Format("{0}{1}", EDIT_TEMPLATE_URL, x.GetAttribute <int>("TemplateId", _genericAttributeService)) }; return(message); }), Total = messageTemplates.Count }; return(Json(gridModel)); }
public ChatViewModel() { dialogService = new DialogService(); currentRoom = new RoomModel(); listMessageModel = ListMessageModel.GetInstance(); sendersTyping = new ObservableCollection <string>(); socket = SocketAPI.GetInstance().GetSocket(); SendTextMessageCommand = new DelegateCommand(SendMessage); ItemSelectedCommand = new DelegateCommand <RoomModel>(HandleItemSelected); TypingCommand = new DelegateCommand <TextBox>(HandleTyping); ChangeImageCommand = new DelegateCommand(ChangeImage); SignOutCommand = new DelegateCommand(SignOut); DisplayTyping = "Hidden"; userInfo = UserInfo.GetInstance(); HandleSocket(); }
// method private void HandleSelectedItem(RoomModel obj) { currentRoom = obj; //emit to server to get message socket.Emit("room_change", obj.ID); int index = ListRoomModel.GetInstance().GetIndexByValue("ID", obj.ID); ListRoomModel.GetInstance().List[index].DisplayNewMessage = "Hidden"; ListRoomModel.GetInstance().List[index].NotifyChanged("DisplayNewMessage"); ListRoomModel.GetInstance().NotifyChanged("List"); //clear data in list message ListMessageModel.GetInstance().Clear(); // clear list task ListTaskModel.GetInstance().Clear(); }
public ActionResult MessageUpdate(ListMessageModel model) { if (!ModelState.IsValid) { return(Json(new DataSourceResult { Errors = ModelState.SerializeErrors() })); } var message = _messageTemplateService.GetMessageTemplateById(model.Id); //standard message template if (model.TemplateTypeId == 0) { _genericAttributeService.SaveAttribute(message, "SendInBlueTemplate", false); model.TemplateType = _localizationService.GetResource("Plugins.Misc.SendInBlue.StandardTemplate"); model.EditLink = Url.Action("Edit", "MessageTemplate", new { id = model.Id, area = "Admin" }); } //SendInBlue message template if (model.TemplateTypeId == 1) { var storeId = GetActiveStoreScopeConfiguration(_storeService, _workContext); var sendInBlueSettings = _settingService.LoadSetting <SendInBlueSettings>(storeId); //get template or create new one var templateId = _sendInBlueEmailManager.GetTemplateId(message.GetAttribute <int>("TemplateId", _genericAttributeService), message, _emailAccountService.GetEmailAccountById(sendInBlueSettings.SendInBlueEmailAccountId)); _genericAttributeService.SaveAttribute(message, "SendInBlueTemplate", true); _genericAttributeService.SaveAttribute(message, "TemplateId", templateId); model.TemplateType = _localizationService.GetResource("Plugins.Misc.SendInBlue.SendInBlueTemplate"); model.EditLink = string.Format("{0}{1}", EDIT_TEMPLATE_URL, templateId); } //update nopCommerce message template if (model.IsActive != message.IsActive) { message.IsActive = model.IsActive; _messageTemplateService.UpdateMessageTemplate(message); } return(new NullJsonResult()); }
public async Task <IDataResponse <ListMessageModel> > InsertMessageAsync(ListMessageModel model) { var result = await _dal.InsertAsync(_mapper.Map <Message>(model)); var resultModel = await _dal.TableNoTracking .Include(x => x.Room) .Include(x => x.Account) .Where(x => x.Id == result.Data) .Select(x => new ListMessageModel { Id = x.Id, AccountId = x.Account.Id, RoomId = x.Room.Id, Text = x.Text, RoomName = x.Room.Name, UserName = x.Account.UserName, CreatedAt = x.CreatedAt }).FirstOrDefaultAsync(); return(new SuccessDataResponse <ListMessageModel>(resultModel)); }
public ActionResult ListMessages(string date1, string date2, string filter = "", int status = 0, int page = 1) { try { // Validate page page = page > 0 ? page : 1; // Get default pagesize var pageSize = int.Parse(ConfigurationManager.AppSettings["PAGE_SIZE"]); // Get search date range var provider = CultureInfo.InvariantCulture; var d1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); var d2 = DateTime.Now; if (!String.IsNullOrWhiteSpace(date1) && !String.IsNullOrWhiteSpace(date2)) { DateTime.TryParseExact(date1, "dd/MM/yyyy", provider, DateTimeStyles.None, out d1); DateTime.TryParseExact(date2 + " 23:59:59", "dd/MM/yyyy HH:mm:ss", provider, DateTimeStyles.None, out d2); } // Query data var pDate1 = new SqlParameter("date1", d1); var pDate2 = new SqlParameter("date2", d2); var pFilter = new SqlParameter("filter", filter); var pStatus = new SqlParameter("status", status); var pPageIndex = new SqlParameter("pageIndex", page); var pPageSize = new SqlParameter("pageSize", pageSize); var pItemCount = new SqlParameter("itemCount", System.Data.SqlDbType.Int, 4); pPageIndex.Direction = System.Data.ParameterDirection.InputOutput; pItemCount.Direction = System.Data.ParameterDirection.Output; var messages = db.Database.SqlQuery <Message>(@"EXEC [dbo].[usp_searchMessages] @date1, @date2, @filter, @status, @pageIndex OUT, @pageSize, @itemCount OUT", pDate1, pDate2, pFilter, pStatus, pPageIndex, pPageSize, pItemCount).ToList(); // Create view model var totalItems = (int)pItemCount.Value; var pager = new Pager(totalItems, (int)pPageIndex.Value, pageSize); var statusOptions = new SelectListItem[] { new SelectListItem { Value = "0", Text = "--Tất cả--", Selected = (status == 0) }, new SelectListItem { Value = "1", Text = "Chưa đọc", Selected = (status == (int)Message.Status.UNREAD) }, new SelectListItem { Value = "2", Text = "Đã đọc", Selected = (status == (int)Message.Status.READ) }, new SelectListItem { Value = "3", Text = "Đã xóa", Selected = (status == (int)Message.Status.REMOVED) }, }; var model = new ListMessageModel { Date1 = d1, Date2 = d2, Filter = filter, Status = status, StatusOptions = statusOptions, Items = messages, Pager = pager }; return(View(model)); } catch (Exception ex) { ModelState.AddModelError("", ex.ToString()); EventWriter.WriteEventLog("MessageController - ListMessages: " + ex.ToString()); } return(View()); }
public async Task SendMessage(ListMessageModel model, string groupName) { await Clients.Group(groupName).SendAsync("ReceiveMessage", model); }
public async Task <IActionResult> InsertMessage([FromBody] ListMessageModel model) { return(Ok(await _service.InsertMessageAsync(model))); }
public List <ListMessageModel> GetListMessagesData() { List <ListMessageModel> listMessageData = new List <ListMessageModel>(); List <HtmlNode> tbodyMessageList = doc .DocumentNode .Descendants("tbody") .Where(n => n.GetAttributeValue("id", "") .Contains("collapseobj_pmf")) .ToList(); List <HtmlNode> listTrMessage = new List <HtmlNode>(); foreach (var tbodyMessage in tbodyMessageList) { foreach (var trMessage in tbodyMessage.Descendants("tr").ToList()) { listTrMessage.Add(trMessage); } } foreach (var item in listTrMessage) { var tdList = item.Descendants("td").ToList(); if (tdList.Count == 4) { HtmlNode tdMessage = tdList[2]; var divList = tdMessage.Descendants("div").ToList(); if (divList.Count == 2) { ListMessageModel messageData = new ListMessageModel(); // Get Date messageData.Date = HtmlEntity.DeEntitize( divList[0] .Descendants("span") .FirstOrDefault() .InnerText.Trim()) .Replace("-", "/"); // Get Title messageData.Title = HtmlEntity.DeEntitize( divList[0] .Descendants("a") .FirstOrDefault() .InnerText.Trim()) .Replace("\t", string.Empty) .Replace("\n", string.Empty); // Get ID messageData.ID = HtmlEntity.DeEntitize( divList[0] .Descendants("a") .FirstOrDefault() .Attributes["href"] .Value.Trim() .Split('=') .LastOrDefault()); // Check is new message var strongNode = divList[0].Descendants("strong").ToList(); messageData.FontWeight = (strongNode.Count == 0) ? "Normal" : "Bold"; var spanList = divList[1].Descendants("span").ToList(); if (spanList.Count == 2) { // Get Time messageData.Time = HtmlEntity.DeEntitize(spanList[0].InnerText.Trim()); // Get UserName messageData.UserName = HtmlEntity.DeEntitize(spanList[1].InnerText.Trim()); // Get ShortUserName var temp = messageData.UserName.Split(' '); if (temp.Length == 1) { messageData.ShortUserName = temp[0].ToArray()[0].ToString().ToUpper(); } else { messageData.ShortUserName = temp[0].ToArray()[0].ToString().ToUpper() + temp[temp.Length - 1].ToArray()[0].ToString().ToUpper(); } } messageData.Date = messageData.Time + Resource.STR_SPACE + messageData.Date; listMessageData.Add(messageData); } } } return(listMessageData); }