Example #1
0
        //===========Message management=================//

        public ActionResult MessageManagement(int?page)
        {
            int pageNumber = page ?? 1;
            int pageSize   = 6;
            IPagedList <MessageSending> listMs = _messageSendingService.GetAll().OrderByDescending(d => d.time).ToPagedList(pageNumber, pageSize);
            MessageSendingViewModel     model  = new MessageSendingViewModel();

            model.listMessage = listMs;

            return(View(model));
        }
Example #2
0
        public async Task <IActionResult> Create(MessageSendingViewModel ViewModel)
        {
            if (ModelState.IsValid)
            {
                Message message = await messageService.GetByIdAsync(ViewModel.Id);

                if (ViewModel.SelectableReceiverList is not null)
                {
                    Parallel.ForEach(ViewModel.SelectableReceiverList, el =>
                    {
                        if (el.Selected)
                        {
                            message.AddReceiver(el.Value);
                        }
                    });
                }

                if (ViewModel.SelectableCCList is not null)
                {
                    Parallel.ForEach(ViewModel.SelectableCCList, el =>
                    {
                        if (el.Selected &&
                            !message.Receivers.Contains(el.Value))
                        {
                            message.AddCcUser(el.Value);
                        }
                    });
                }

                if (ViewModel.SelectableBCCList is not null)
                {
                    Parallel.ForEach(ViewModel.SelectableBCCList, el =>
                    {
                        if (el.Selected &&
                            !message.Receivers.Contains(el.Value) &&
                            !message.CC.Contains(el.Value))
                        {
                            message.AddBccUser(el.Value);
                        }
                    });
                }

                message.Sender = await userService.GetOrCreateAsync(this.User);

                message.ReceivedTime = DateTime.Now;
                message.Subject      = ViewModel.Message.Subject;
                message.MessageBody  = ViewModel.Message.MessageBody;

                if (string.IsNullOrEmpty(message.Subject) ||
                    (message.Receivers.Count == 0 && message.CC.Count == 0 && message.BCC.Count == 0))
                {
                    return(View(ViewModel));
                }

                await messageService.UpdateAsync(message);

                return(RedirectToAction("Index", "Inbox"));
            }

            return(View(ViewModel));
        }