Exemple #1
0
        public IActionResult BroadcastCreate()
        {
            var viewModel = new BroadcastDetailViewModel
            {
                Action = "Create"
            };

            PageTitle = "Create Broadcast";
            return(View("BroadcastDetail", viewModel));
        }
Exemple #2
0
        public async Task <IActionResult> BroadcastCreate(BroadcastDetailViewModel model)
        {
            if (model == null)
            {
                return(RedirectToAction(nameof(BroadcastCreate)));
            }

            if (!model.SendNow)
            {
                if (model.Broadcast.SendAt == null)
                {
                    ModelState.AddModelError("Broadcast.SendAt", "Please select a date to send the Broadcast.");
                }
                else if (model.Broadcast.SendAt < _dateTimeProvider.Now)
                {
                    ModelState.AddModelError("Broadcast.SendAt", "Please select a date not in the past.");
                }
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (model.SendNow)
                    {
                        model.Broadcast.SendAt = _dateTimeProvider.Now;
                    }

                    await _mailService.AddBroadcastAsync(model.Broadcast);

                    ShowAlertSuccess($"Broadcast {model.Broadcast.Subject} successfully scheduled.");

                    return(RedirectToAction("Broadcasts",
                                            new { Upcoming = (model.SendNow ? "False" : null) }));
                }
                catch (GraException gex)
                {
                    ShowAlertDanger("Unable to create broadcast: ", gex);
                }
            }
            return(View("BroadcastDetail", model));
        }
Exemple #3
0
        public async Task <IActionResult> BroadcastEdit(int id)
        {
            var viewModel = new BroadcastDetailViewModel
            {
                Broadcast = await _mailService.GetBroadcastByIdAsync(id),
                Action    = "Edit"
            };

            if (viewModel.Broadcast.SendAt <= _dateTimeProvider.Now)
            {
                viewModel.Sent = true;
                PageTitle      = "View Broadcast";
            }
            else
            {
                PageTitle = "Edit Broadcast";
            }

            return(View("BroadcastDetail", viewModel));
        }