コード例 #1
0
        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));
        }
コード例 #2
0
 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();
 }
コード例 #3
0
        // 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();
        }
コード例 #4
0
        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());
        }
コード例 #5
0
        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));
        }
コード例 #6
0
ファイル: MessageController.cs プロジェクト: locnpsaigon/LMW
        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());
        }
コード例 #7
0
 public async Task SendMessage(ListMessageModel model, string groupName)
 {
     await Clients.Group(groupName).SendAsync("ReceiveMessage", model);
 }
コード例 #8
0
 public async Task <IActionResult> InsertMessage([FromBody] ListMessageModel model)
 {
     return(Ok(await _service.InsertMessageAsync(model)));
 }
コード例 #9
0
        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);
        }