Пример #1
0
        public async Task <IActionResult> Edit([FromServices] Utils utils, int id, EditApplicationPostModel model)
        {
            var app = await _db.Applications.Include(a => a.ApplicationVersions).Where(a => a.Id == id).FirstOrDefaultAsync();

            if (app == null)
            {
                return(RedirectToAction("Index"));
            }
            if (ModelState.IsValid)
            {
                var code = (model.Code == app.Code) ? model.Code : ((await utils.ValidateApplicationCode(model.Code)) ? model.Code : "");
                var name = (model.Name == app.Name) ? model.Name : ((await utils.ValidateApplicationName(model.Name)) ? model.Name : "");
                if (string.IsNullOrEmpty(code))
                {
                    return(View(new EditApplicationGetModel {
                        Application = app, Error = 2
                    }));
                }
                if (string.IsNullOrEmpty(name))
                {
                    return(View(new EditApplicationGetModel {
                        Application = app, Error = 3
                    }));
                }
                app.Code = code;
                app.Name = name;
                await _db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(new EditApplicationGetModel {
                Application = app, Error = 1
            }));
        }
        public ActionResult Edit(EditApplicationPostModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectWithViewModel(Mapper.Map <EditApplicationPostModel, EditApplicationViewModel>(viewModel), "edit"));
            }

            var response = _editApplicationCommand.Invoke(new EditApplicationRequest
            {
                Name                  = viewModel.Name,
                IsActive              = viewModel.IsActive,
                CurrentUser           = Core.AppContext.CurrentUser,
                ApplicationId         = viewModel.Id,
                MatchRuleFactoryId    = viewModel.MatchRuleFactoryId,
                HipChatRoomId         = viewModel.HipChatRoomId,
                UserId                = Errordite.Core.Domain.Organisation.User.GetId(viewModel.UserId),
                NotificationGroups    = viewModel.NotificationGroups.Where(n => n.Selected).Select(g => g.Id).ToList(),
                Version               = viewModel.Version,
                CampfireRoomId        = viewModel.CampfireRoomId,
                NotificationFrequency = viewModel.NotificationFrequency
            });

            if (response.Status != EditApplicationStatus.Ok)
            {
                return(RedirectWithViewModel(Mapper.Map <EditApplicationPostModel, EditApplicationViewModel>(viewModel),
                                             "edit",
                                             response.Status.MapToResource(Resources.Application.ResourceManager),
                                             routeValues: new { applicationId = viewModel.Id }));
            }

            ConfirmationNotification(Resources.Application.EditApplicationStatus_Ok.FormatWith(viewModel.Name));
            return(Redirect(Url.Applications()));
        }