public async Task <IActionResult> Edit(OrganizationEditViewModel organization) { if (organization == null) { return(BadRequest()); } var errors = _organizationValidator.Validate(organization); errors.ToList().ForEach(e => ModelState.AddModelError(e.Key, e.Value)); if (ModelState.IsValid) { var isNameUnique = await _mediator.SendAsync(new OrganizationNameUniqueQuery { OrganizationName = organization.Name, OrganizationId = organization.Id }); if (isNameUnique) { var id = await _mediator.SendAsync(new EditOrganization { Organization = organization }); return(RedirectToAction(nameof(Details), new { id, area = "Admin" })); } ModelState.AddModelError(nameof(organization.Name), "Organization with same name already exists. Please use different name."); } return(View("Edit", organization)); }
public List <KeyValuePair <string, string> > Validate(OrganizationEditViewModel model) { var result = new List <KeyValuePair <string, string> >(); if (string.IsNullOrEmpty(model.PrivacyPolicy) && string.IsNullOrEmpty(model.PrivacyPolicyUrl)) { result.Add(new KeyValuePair <string, string>(nameof(model.PrivacyPolicyUrl), "You must either supply a URL to a privacy policy or supply the privacy policy content.")); } return(result); }
public async Task EditPostReturnsTheCorrectViewAndViewModelWhenModelStateIsInvalid() { var model = new OrganizationEditViewModel(); var controller = new OrganizationController(new Mock <IMediator>().Object, SuccessValidator()); controller.ModelState.AddModelError("foo", "bar"); var result = (ViewResult)await controller.Edit(model); Assert.Equal("Edit", result.ViewName); Assert.Same(model, result.ViewData.Model); }
public async Task EditGetReturnsCorrectViewAndViewModel_WhenMediatorReturnsOrganizationEditModel() { CreateSut(); var model = new OrganizationEditViewModel(); _mediator.Setup(x => x.SendAsync(It.Is <OrganizationEditQuery>(y => y.Id == Id))).ReturnsAsync(model); var result = (ViewResult)await _sut.Edit(Id); Assert.Equal("Edit", result.ViewName); Assert.Same(model, result.ViewData.Model); }
public async Task EditPostSendsOrganizationNameUniqueQueryWithCorrectParametersWhenModelStateIsValid() { var mediator = new Mock <IMediator>(); var organizationEditModel = new OrganizationEditViewModel { Name = "name", Id = 1 }; var controller = new OrganizationController(mediator.Object, SuccessValidator()); await controller.Edit(organizationEditModel); mediator.Verify(x => x.SendAsync(It.Is <OrganizationNameUniqueQuery>(y => y.OrganizationName == organizationEditModel.Name && y.OrganizationId == organizationEditModel.Id)), Times.Once()); }
public async Task <JsonResult> Edit(OrganizationEditViewModel model) { var organization = _mapper.Map <Organization>(model); var result = await _unitOfWork.Repository <Organization>().UpdateAsync(organization); if (result.IsSuccess) { return(Json(new { status = 200, message = _localizerService["Success"] })); } return(Json(new { status = 406, message = _localizerService["Error"] })); }
private async Task UploadOrganizationLogo(OrganizationEditViewModel organization, IFormFile fileUpload) { var existingImageUrl = organization.LogoUrl; var newImageUrl = await _imageService.UploadOrganizationLogoAsync(organization.Id, fileUpload); if (!string.IsNullOrEmpty(newImageUrl)) { organization.LogoUrl = newImageUrl; if (existingImageUrl != null && existingImageUrl != newImageUrl) { await _imageService.DeleteImageAsync(existingImageUrl); } } }
public OrganizationControllerTests() { _organizationEditModel = new OrganizationEditViewModel { Id = 0, LogoUrl = "http://www.example.com/image.jpg", Name = "Test", PrimaryContactFirstName = "FirstName", PrimaryContactLastName = "LastName", PrimaryContactPhoneNumber = "0123456798", PrimaryContactEmail = "*****@*****.**", WebUrl = "http://www.example.com" }; }
public ActionResult Delete(int id) { if (id > 0) { OrganizationEditViewModel vm = _orgService.GetOrganizationById(id); if (vm == null) { SystemMessages.Add(CommonStrings.No_Record, SystemMessageType.Error, true); return(RedirectToAction("Index")); } return(PartialView("_Delete", vm)); } return(RedirectToAction("Index")); }
public async Task EditPostRedirectsToCorrectActionWithCorrectData_WhenModelStateIsValid_AndOrganizationNameIsUnique() { var model = new OrganizationEditViewModel(); var mockMediator = new Mock <IMediator>(); mockMediator.Setup(y => y.SendAsync(It.IsAny <OrganizationNameUniqueQuery>())).ReturnsAsync(true); mockMediator.Setup(x => x.SendAsync(It.Is <EditOrganizationCommand>(y => y.Organization == model))).ReturnsAsync(Id); var controller = new OrganizationController(mockMediator.Object, SuccessValidator()); var result = (RedirectToActionResult)await controller.Edit(model); Assert.Equal("Details", result.ActionName); Assert.Equal(AreaNames.Admin, result.RouteValues["area"]); Assert.Equal(Id, result.RouteValues["id"]); }
public ActionResult Edit(OrganizationEditViewModel model) { try { InfoFormat("User #{0} going to update Organization #{1}", User.Identity.Name, model.Organization.Id); var record = _repository.GetById(model.Organization.Id); UpdateModel(record, "Organization"); _repository.SubmitChanges(); SetTempOkMessage("Organization {0} was successfully updated", model.Organization.Name); return(RedirectToAction("list", new { parent = model.Organization.ParentId == 0 ? model.Organization.Id : model.Organization.ParentId })); } catch (Exception ex) { Error("Error updating Organization!", ex); ModelState.AddModelError("", ex.Message); } return(View(model)); }
public void UpdateOrganization(OrganizationEditViewModel vm) { Organization model = GetOrganization(vm.Id); model.OrgCategoryId = vm.OrgCategoryId; model.GenderId = vm.GenderId; model.OrganizationNo = vm.OrganizationNo; model.OrganizationName = vm.OrganizationName; model.IsActive = vm.IsActive; model.MeetingFrequency = vm.MeetingFrequencyId; model.MeetingDate = vm.MeetingDate; model.UserId = _userHelper.Get().UserId; model.SetDate = DateTime.Now; model.SystemDate = _userHelper.Get().DayOpenClose.SystemDate; _uow.OrganizationRepository.Update(model); _uow.Save(); }
public async Task <ActionResult> Edit([Bind(Include = "Key, Code, Name, Domain")] OrganizationEditViewModel organization) { if (ModelState.IsValid) { Organization org = await db.Organizations.FindAsync(organization.Key); org.Name = organization.Name; org.Code = organization.Code; org.Domain = organization.Domain; db.Entry(org).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(organization)); }
/// <summary> /// Creates an OrganizationEditModel from an existing Organization /// </summary> /// <param name="organization">An Organization that will be supply the initial values for editing.</param> /// <returns>An OrganizationEditModel that can be used to capture the fields for an Organization /// and it's location and primary contact built from values from the supplied organization. </returns> public static OrganizationEditViewModel ToEditModel_Organization(Organization organization) { var ret = new OrganizationEditViewModel { Id = organization.Id, Name = organization.Name, Location = organization.Location.ToEditModel(), LogoUrl = organization.LogoUrl, WebUrl = organization.WebUrl, PrivacyPolicy = organization.PrivacyPolicy }; if (organization.OrganizationContacts?.SingleOrDefault(tc => tc.ContactType == (int)ContactTypes.Primary)?.Contact != null) { ret = (OrganizationEditViewModel)organization.OrganizationContacts?.SingleOrDefault(tc => tc.ContactType == (int)ContactTypes.Primary)?.Contact.ToEditModel(ret); } return(ret); }
public async Task EditPostInvokesOrganizationValidatorsValidateMethodWithTheCorrectOrganizationEditModel_WhenModelIsNotNull() { //Arrange var organizationValidatorMock = new Mock <IOrganizationEditModelValidator>(); var errors = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("FakeProperty", "FakeError") }; var organizationEditModel = new OrganizationEditViewModel { Id = 1, Name = "Test1" }; organizationValidatorMock.Setup(o => o.Validate(organizationEditModel)).Returns(errors); var sut = new OrganizationController(null, organizationValidatorMock.Object); //Act var result = await sut.Edit(organizationEditModel) as ViewResult; //Assert organizationValidatorMock.Verify(o => o.Validate(organizationEditModel), Times.Once); }
public ActionResult Edit(int id) { InfoFormat("User #{0} is going to edit Organization #{1}", User.Identity.Name, id); Organization model = _repository.Organizations.SingleOrDefault(x => x.Id == id); if (model == null) { WarnFormat("Non-existing organization #{0}!", id); return(RedirectToAction("notfound", "help")); } OrganizationEditViewModel viewModel = new OrganizationEditViewModel(); viewModel.Organization = model; viewModel.Parent = _repository.GetById(model.ParentId); viewModel.Children = _repository.GetByParentId(model.Id); viewModel.Users = _repository.GetUsersInOrganization(model.Id); return(View(viewModel)); }
public void CreateOrganization(OrganizationEditViewModel vm) { Organization org = new Organization { BranchId = _userHelper.Get().BranchId, OrganizationNo = vm.OrganizationNo, OrganizationName = vm.OrganizationName, OrgCategoryId = vm.OrgCategoryId, GenderId = vm.GenderId, SetupDate = _userHelper.Get().DayOpenClose.SystemDate, MeetingFrequency = vm.MeetingFrequencyId, MeetingDate = vm.MeetingDate, IsActive = vm.IsActive, SystemDate = _userHelper.Get().DayOpenClose.SystemDate, UserId = _userHelper.Get().UserId, SetDate = DateTime.Now }; _uow.OrganizationRepository.Insert(org); _uow.Save(); }
public async Task <IActionResult> Edit(OrganizationEditViewModel organization, IFormFile fileUpload) { if (organization == null) { return(BadRequest()); } var errors = _organizationValidator.Validate(organization); errors.ToList().ForEach(e => ModelState.AddModelError(e.Key, e.Value)); if (ModelState.IsValid) { var isNameUnique = await _mediator.SendAsync(new OrganizationNameUniqueQuery { OrganizationName = organization.Name, OrganizationId = organization.Id }); if (isNameUnique) { if (fileUpload != null) { if (fileUpload.IsAcceptableImageContentType()) { await UploadOrganizationLogo(organization, fileUpload); } else { ModelState.AddModelError("ImageUrl", "You must upload a valid image file for the logo (.jpg, .png, .gif)"); return(View("Edit", organization)); } } var id = await _mediator.SendAsync(new EditOrganizationCommand { Organization = organization }); return(RedirectToAction(nameof(Details), new { id, area = AreaNames.Admin })); } ModelState.AddModelError(nameof(organization.Name), "Organization with same name already exists. Please use different name."); } return(View("Edit", organization)); }
public ActionResult Edit(int?id) { if (!id.HasValue) { ViewBag.Title = OrganizationStrings.Organization_Edit_Add_Title; ViewBag.OrgCategoryDropDown = new SelectList(_orgCategoryService.GetOrgCategoryDropDown(), "Value", "Text"); ViewBag.GenderDropDown = new SelectList(_genderService.GetGenderDropDown(), "Value", "Text"); ViewBag.CollectionOptionDropDown = new SelectList(_colcOptionService.GetColcOptionDropDown(), "Value", "Text"); DateTime systemDate = _userHelper.Get().DayOpenClose.SystemDate; return(View(new OrganizationEditViewModel() { SetupDate = systemDate, MeetingDate = systemDate, IsActive = true })); } OrganizationEditViewModel vm = _orgService.GetOrganizationById(id.Value); if (vm != null) { ViewBag.Title = OrganizationStrings.Organization_Edit_Update_Title; ViewBag.OrgCategoryDropDown = new SelectList(_orgCategoryService.GetOrgCategoryDropDown(), "Value", "Text", vm.OrgCategoryId); ViewBag.GenderDropDown = new SelectList(_genderService.GetGenderDropDown(), "Value", "Text", vm.GenderId); ViewBag.CollectionOptionDropDown = new SelectList(_colcOptionService.GetColcOptionDropDown(), "Value", "Text", vm.MeetingFrequencyId); return(View(vm)); } else { SystemMessages.Add(CommonStrings.No_Record, true, true); return(RedirectToAction("Index")); } }
public OrganizationEditPage(Organization item = null) { InitializeComponent(); BindingContext = new OrganizationEditViewModel(item); }