public async Task CreateCommonPlaceMission_Success() { // Действие var missions = await _service.GetMissions(); int count = missions.Count; var newMission = new MissionUi { Name = "CommonPlace mission", Description = "CommonPlace", PhotoUrl = "https://pp.vk.me/c543109/v543109262/11668/-YwppEKJVx0.jpg", Difficulty = 1, ExecutionType = ExecutionType.CommonPlace, CommonPlaceAlias = "CM 5", AgeFrom = 10, AgeTo = 80 }; await _controller.Create(newMission); missions = await _service.GetMissions(); // Утверждение Assert.IsNotEmpty(missions); Assert.AreEqual("CommonPlace mission", missions.Last().Name); Assert.AreEqual(count + 1, missions.Count); }
public async Task CreateRightAnswerMission() { // Действие var missions = await _service.GetMissions(); int count = missions.Count; var newMission = new MissionUi { Name = "RightAnswer mission", Description = "RightAnswer", PhotoUrl = "https://pp.vk.me/c543109/v543109262/11668/-YwppEKJVx0.jpg", Difficulty = 1, ExecutionType = ExecutionType.RightAnswer, CorrectAnswers = "один;два", AgeFrom = 10, AgeTo = 80 }; await _controller.Create(newMission); missions = await _service.GetMissions(); // Утверждение Assert.IsNotEmpty(missions); Assert.AreEqual("RightAnswer mission", missions.Last().Name); Assert.AreEqual(count + 1, missions.Count); }
/// <summary> /// Creates this instance. /// </summary> /// <returns> /// ActionResult. /// </returns> public async Task <ActionResult> Create() { var model = new MissionUi(); SetModelToTempData(model); ViewBag.CommonPlaces = await GetCommonPlaces(); ViewBag.Missions = await GetBaseMissions(); return(View(model)); }
private async Task <ActionResult> ErrorResult(MissionUi mission) { var personQualities = (await _personQualityService.GetPersonQualities()); ViewBag.CommonPlaces = await GetCommonPlaces(); ViewBag.PersonQualities = personQualities; ViewBag.Missions = await GetBaseMissions(mission.Id); SetModelToTempData(mission); SetErrorsToTempData(ModelState); return(View(mission)); }
public async Task Edit() { // Действие var result = (ViewResult)(await _controller.Index(null)); var missions = (IEnumerable <Mission>)result.Model; var oldMission = missions.Last(); var mission = new MissionUi { Id = oldMission.Id, Name = "Updated mission", Description = oldMission.Description, Difficulty = oldMission.Difficulty }; var editResult = (RedirectToRouteResult)(await _controller.Edit(mission)); result = (ViewResult)(await _controller.Details(oldMission.Id)); var missionAfterEdit = (Mission)result.Model; // Утверждение Assert.IsNotNull(editResult); Assert.IsNotNull(missions); Assert.AreEqual("Updated mission", missionAfterEdit.Name); }
private void SetModelToTempData(MissionUi model) { TempData[MissionTempKey] = model; }
private async Task <ActionResult> AddUpdateMission(MissionUi mission, bool createOperation) { if (ModelState.IsValid) { OperationResult result; if (mission.ExecutionType == ExecutionType.CommonPlace) { if (createOperation) { var aliasExist = await _commonPlacesService.CheckAliasExist(mission.CommonPlaceAlias); if (aliasExist) { ViewBag.PersonQualities = await _personQualityService.GetPersonQualities(); ModelState.AddModelError("CommonPlaceAlias", "Указанное имя уже используется"); return(await ErrorResult(mission)); } result = await _commonPlacesService.AddAlias(new CommonPlaceAlias(mission.CommonPlaceAlias)); if (result.Status != OperationResultStatus.Success) { ViewBag.PersonQualities = await _personQualityService.GetPersonQualities(); ModelState.AddModelError(string.Empty, result.Description); return(await ErrorResult(mission)); } } else { if (!string.Equals(mission.CommonPlaceAlias, mission.InitialCommonPlaceAlias)) { var aliasExist = await _commonPlacesService.CheckAliasExist(mission.CommonPlaceAlias); if (aliasExist) { ViewBag.PersonQualities = await _personQualityService.GetPersonQualities(); ModelState.AddModelError("CommonPlaceAlias", "Указанное имя уже используется"); return(await ErrorResult(mission)); } if (string.IsNullOrEmpty(mission.InitialCommonPlaceAlias)) { result = await _commonPlacesService.AddAlias(new CommonPlaceAlias(mission.CommonPlaceAlias)); if (result.Status != OperationResultStatus.Success) { ViewBag.PersonQualities = await _personQualityService.GetPersonQualities(); ModelState.AddModelError(string.Empty, result.Description); return(await ErrorResult(mission)); } } else { var oldAlias = new CommonPlaceAlias(mission.InitialCommonPlaceAlias) { FullName = mission .CommonPlaceAlias }; result = await _commonPlacesService.UpdateAliaseName(oldAlias); if (result.Status != OperationResultStatus.Success) { ViewBag.PersonQualities = await _personQualityService.GetPersonQualities(); ModelState.AddModelError(string.Empty, result.Description); return(await ErrorResult(mission)); } } } } } result = createOperation ? await _missionService.AddNewMission(mission.ConvertToDomain()) : await _missionService.UpdateMission(mission.ConvertToDomain()); if (result.Status != OperationResultStatus.Success) { ModelState.AddModelError(string.Empty, result.Description); return(await ErrorResult(mission)); } return(RedirectToAction("Index")); } return(await ErrorResult(mission)); }
public async Task <ActionResult> Edit(MissionUi mission) { return(await AddUpdateMission(mission, false)); }
public async Task <ActionResult> Create(MissionUi mission) { return(await AddUpdateMission(mission, true)); }