コード例 #1
0
        public async Task <ActionResult> Edit(int id)
        {
            NotificationMailBox model;

            try
            {
                model = await _mailboxService.GetItemAsync(id);
            }
            catch (Exception e)
            {
                throw new WebUiException($"Ошибка в контроллере {nameof(MailboxController)} в методе {nameof(Edit)}",
                                         e);
            }

            if (model == null)
            {
                return(RedirectToAction("Index"));
            }

            var mailBoxModel = new MailboxAddViewModel()
            {
                Id                   = model.Id,
                MailBoxName          = model.MailBoxName,
                MailFrom             = model.MailFrom,
                Password             = model.Password,
                PasswordConfirmation = string.Empty,
                Port                 = model.Port,
                Server               = model.Server,
                UserName             = model.UserName,
                UseSsl               = model.UseSsl
            };

            ViewBag.PanelTitle = "Редактирование почтового ящика";
            return(PartialView("_Mailbox", mailBoxModel));
        }
コード例 #2
0
        public async Task <ActionResult> Add(MailboxAddViewModel model)
        {
            if (ModelState.IsValid)
            {
                var box = new NotificationMailBox
                {
                    MailBoxName = model.MailBoxName,
                    MailFrom    = model.MailFrom,
                    UserName    = model.UserName,
                    Password    = model.Password,
                    Server      = model.Server,
                    Port        = model.Port,
                    UseSsl      = model.UseSsl
                };
                try
                {
                    await _mailboxService.AddAsync(box);

                    return(RedirectToAction("Index"));
                }
                catch (ServiceException e)
                {
                    throw new WebUiException($"Ошибка в контроллере {nameof(MailboxController)} в методе {nameof(Add)}",
                                             e);
                }
            }

            return(PartialView("_Mailbox"));
        }
コード例 #3
0
        public async Task <ActionResult> Edit(MailboxAddViewModel model)
        {
            if (model == null)
            {
                return(RedirectToAction("Index"));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var itemToUpdate = await _mailboxService.GetItemAsync(model.Id);

                    itemToUpdate.MailBoxName = model.MailBoxName;
                    itemToUpdate.MailFrom    = model.MailFrom;
                    itemToUpdate.Password    = model.Password;
                    itemToUpdate.UserName    = model.UserName;
                    itemToUpdate.Server      = model.Server;
                    itemToUpdate.Port        = model.Port;
                    itemToUpdate.UseSsl      = model.UseSsl;

                    await _mailboxService.UpdateAsync(itemToUpdate);
                }
                catch (Exception e)
                {
                    throw new WebUiException(
                              $"Ошибка в контроллере {nameof(MailboxController)} в методе {nameof(Edit)}", e);
                }

                return(RedirectToAction("Index"));
            }

            return(PartialView("_Mailbox"));
        }
コード例 #4
0
        public ActionResult Add()
        {
            var model = new MailboxAddViewModel();

            ViewBag.PanelTitle = "Добавление почтового ящика";
            return(PartialView("_Mailbox", model));
        }
コード例 #5
0
        public async Task Edit_InputmailboxAddViewModel_ReturnsRedirectToList()
        {
            var model = new MailboxAddViewModel()
            {
                Id = 2, MailBoxName = "M2"
            };

            _mailboxService.Setup(x => x.GetItemAsync(It.IsAny <int>())).ReturnsAsync(new NotificationMailBox()
            {
                Id = 1, MailBoxName = "M1"
            });

            var result = await _controller.Edit(model);

            var redirectResult = ((RedirectToRouteResult)result);

            Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));
            Assert.AreEqual(redirectResult.RouteValues["action"], "Index");
            _mailboxService.Verify(x => x.UpdateAsync(It.IsAny <NotificationMailBox>()), Times.Exactly(1));
        }