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

            try
            {
                model = await _mailboxService.GetItemAsync(id);

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

                var mailBoxModel = new NotificationMailboxModel()
                {
                    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("_AddOrEdit", mailBoxModel));
            }
            catch (Exception e)
            {
                throw new WebUiException($"Ошибка в контроллере {nameof(MailboxController)} в методе {nameof(Edit)}", e);
            }
        }
コード例 #2
0
        public async Task <ActionResult> Add(NotificationMailboxModel 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.CreateAsync(box);

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

            return(PartialView("_AddOrEdit", model));
        }
コード例 #3
0
        public async Task <ActionResult> Edit(NotificationMailboxModel 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("_AddOrEdit", model));
        }
コード例 #4
0
        public ActionResult Add()
        {
            var model = new NotificationMailboxModel();

            ViewBag.PanelTitle = "Добавление почтового ящика";
            return(PartialView("_AddOrEdit", model));
        }
コード例 #5
0
        public async Task Edit_InputmailboxAddViewModel_ReturnsRedirectToList()
        {
            var model = new NotificationMailboxModel()
            {
                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));
        }