public virtual ActionResult Add() { var model = new InstitutionalAgreementConfigurationForm(); // find the configuration for the currently signed in user's default affiliation var configuration = _queryProcessor.Execute(new GetMyInstitutionalAgreementConfigurationQuery(User)); // if configuration exists, cannot add if (configuration != null) { model = Mapper.Map<InstitutionalAgreementConfigurationForm>(configuration); } else { // when configuration does not exist, get the default affiliation for the currently signed in user var person = GetConfigurationSupervisor(); if (person == null) return HttpNotFound(); // allow the viewmodel to disclose the establishment official name model.ForEstablishmentOfficialName = person.DefaultAffiliation.Establishment.OfficialName; // add default options DefaultTypes.ForEach(option => model.AllowedTypeValues.Add( new InstitutionalAgreementTypeValueForm { IsAdded = true, Text = option })); DefaultStatuses.ForEach(option => model.AllowedStatusValues.Add( new InstitutionalAgreementStatusValueForm { IsAdded = true, Text = option })); DefaultContactTypes.ForEach(option => model.AllowedContactTypeValues.Add( new InstitutionalAgreementContactTypeValueForm { IsAdded = true, Text = option })); // add a default empty allowed options AddEmptyAllowedOptions(model); } return View(model); }
public virtual ActionResult Add(InstitutionalAgreementConfigurationForm model) { // do nothing without a viewmodel if (model != null) { if (ModelState.IsValid) { // make sure configuration does not already exist var configuration = _queryProcessor.Execute(new GetMyInstitutionalAgreementConfigurationQuery(User)); if (configuration != null) { SetFeedbackMessage("Your configuration has already been set up."); return RedirectToAction(MVC.InstitutionalAgreements.ConfigurationForms.Add()); } // configuration must have a ForEstablishmentId, and all items should be added var person = _queryProcessor.Execute(new GetMyPersonQuery(User)); var establishment = person.DefaultAffiliation.Establishment; model.ForEstablishmentId = establishment.RevisionId; var command = new CreateOrUpdateConfigurationCommand(User) { IsCustomTypeAllowed = model.IsCustomTypeAllowed, IsCustomStatusAllowed = model.IsCustomStatusAllowed, IsCustomContactTypeAllowed = model.IsCustomTypeAllowed, AllowedTypeValues = model.AllowedTypeValues.Select(x => x.Text), AllowedStatusValues = model.AllowedStatusValues.Select(x => x.Text), AllowedContactTypeValues = model.AllowedContactTypeValues.Select(x => x.Text), }; _commandHandler.Handle(command); SetFeedbackMessage("Module configuration was set up successfully."); return RedirectToAction(MVC.InstitutionalAgreements.ManagementForms.Browse()); } // add a default empty allowed options AddEmptyAllowedOptions(model); return View(model); } return HttpNotFound(); }
public void ViewModel_InstitutionalAgreements_ConfigurationForms_InstitutionalAgreementConfigurationForm_ShouldBeConstructible() { var model = new InstitutionalAgreementConfigurationForm { RevisionId = 1, ForEstablishmentId = null, EntityId = Guid.NewGuid(), IsCustomTypeAllowed = false, IsCustomStatusAllowed = false, IsCustomContactTypeAllowed = false, AllowedTypeValues = new List <InstitutionalAgreementTypeValueForm>(), AllowedStatusValues = new List <InstitutionalAgreementStatusValueForm>(), AllowedContactTypeValues = new List <InstitutionalAgreementContactTypeValueForm>(), ExampleTypeInput = "Example", ExampleStatusInput = "Example", ExampleContactTypeInput = "Example", }; model.ShouldNotBeNull(); model.EntityId.ShouldNotEqual(Guid.Empty); model.ForEstablishmentId.ShouldBeNull(); }
public void ViewModel_InstitutionalAgreements_ConfigurationForms_InstitutionalAgreementConfigurationForm_ShouldBeConstructible() { var model = new InstitutionalAgreementConfigurationForm { RevisionId = 1, ForEstablishmentId = null, EntityId = Guid.NewGuid(), IsCustomTypeAllowed = false, IsCustomStatusAllowed = false, IsCustomContactTypeAllowed = false, AllowedTypeValues = new List<InstitutionalAgreementTypeValueForm>(), AllowedStatusValues = new List<InstitutionalAgreementStatusValueForm>(), AllowedContactTypeValues = new List<InstitutionalAgreementContactTypeValueForm>(), ExampleTypeInput = "Example", ExampleStatusInput = "Example", ExampleContactTypeInput = "Example", }; model.ShouldNotBeNull(); model.EntityId.ShouldNotEqual(Guid.Empty); model.ForEstablishmentId.ShouldBeNull(); }
private static void AddEmptyAllowedOptions(InstitutionalAgreementConfigurationForm model) { model.AllowedTypeValues.Insert(0, new InstitutionalAgreementTypeValueForm { ConfigurationId = model.RevisionId }); model.AllowedStatusValues.Insert(0, new InstitutionalAgreementStatusValueForm { ConfigurationId = model.RevisionId }); model.AllowedContactTypeValues.Insert(0, new InstitutionalAgreementContactTypeValueForm { ConfigurationId = model.RevisionId }); }
public virtual JsonResult ValidateDuplicateOption(string type, List<string> values) { var model = new InstitutionalAgreementConfigurationForm(); var validationResults = new List<ValidationResult>(); var validationContext = new ValidationContext(model, null, null); var isValid = false; if (string.Compare(type, typeof(InstitutionalAgreementTypeValueForm).FullName, false, CultureInfo.InvariantCulture) == 0) { values.ForEach(t => model.AllowedTypeValues.Add(new InstitutionalAgreementTypeValueForm { Text = t })); validationContext.MemberName = "AllowedTypeValues"; isValid = Validator.TryValidateProperty(model.AllowedTypeValues, validationContext, validationResults); } else if (string.Compare(type, typeof(InstitutionalAgreementStatusValueForm).FullName, false, CultureInfo.InvariantCulture) == 0) { values.ForEach(t => model.AllowedStatusValues.Add(new InstitutionalAgreementStatusValueForm { Text = t })); validationContext.MemberName = "AllowedStatusValues"; isValid = Validator.TryValidateProperty(model.AllowedStatusValues, validationContext, validationResults); } else if (string.Compare(type, typeof(InstitutionalAgreementContactTypeValueForm).FullName, false, CultureInfo.InvariantCulture) == 0) { values.ForEach(t => model.AllowedContactTypeValues.Add(new InstitutionalAgreementContactTypeValueForm { Text = t })); validationContext.MemberName = "AllowedContactTypeValues"; isValid = Validator.TryValidateProperty(model.AllowedContactTypeValues, validationContext, validationResults); } var errorMessage = (isValid) ? null : validationResults[0].ErrorMessage; return Json(new { IsValid = isValid, ErrorMessage = errorMessage, }, JsonRequestBehavior.AllowGet); }
public virtual ActionResult Edit(InstitutionalAgreementConfigurationForm model) { if (model != null) { // look for current entity var existingEntity = _queryProcessor.Execute( new GetInstitutionalAgreementConfigurationByGuidQuery(model.EntityId) { EagerLoad = new Expression<Func<InstitutionalAgreementConfiguration, object>>[] { c => c.ForEstablishment.Affiliates.Select(a => a.Person.User), c => c.AllowedTypeValues, c => c.AllowedStatusValues, c => c.AllowedContactTypeValues, }, }); if (existingEntity == null) return HttpNotFound(); var compareConfiguration = _queryProcessor.Execute(new GetMyInstitutionalAgreementConfigurationQuery(User)); if (existingEntity.RevisionId != compareConfiguration.RevisionId || existingEntity.EntityId != compareConfiguration.EntityId) ModelState.AddModelError(string.Empty, string.Format( "You are not authorized to configure the Institutional Agreements module for {0}.", existingEntity.ForEstablishment.OfficialName)); if (ModelState.IsValid) { var command = new CreateOrUpdateConfigurationCommand(User, model.RevisionId) { IsCustomTypeAllowed = model.IsCustomTypeAllowed, IsCustomStatusAllowed = model.IsCustomStatusAllowed, IsCustomContactTypeAllowed = model.IsCustomTypeAllowed, AllowedTypeValues = model.AllowedTypeValues.Select(x => x.Text), AllowedStatusValues = model.AllowedStatusValues.Select(x => x.Text), AllowedContactTypeValues = model.AllowedContactTypeValues.Select(x => x.Text), }; _commandHandler.Handle(command); SetFeedbackMessage("Module configuration was saved successfully."); return RedirectToAction(MVC.InstitutionalAgreements.ConfigurationForms.Edit()); } AddEmptyAllowedOptions(model); return View(model); } return HttpNotFound(); }
public virtual ActionResult Edit() { // even if there is no configuration, return default affiliation establishment info to view var model = new InstitutionalAgreementConfigurationForm(); // find a configuration for the currently signed in user's default affiliation establishment var configuration = _queryProcessor.Execute(new GetMyInstitutionalAgreementConfigurationQuery(User)); // when configuration exists, return corresponding viewmodel if (configuration != null) { model = Mapper.Map<InstitutionalAgreementConfigurationForm>(configuration); AddEmptyAllowedOptions(model); } else { // when configuration does not exist, get the default affiliation for the currently signed in user var person = GetConfigurationSupervisor(); if (person == null) return HttpNotFound(); // allow the viewmodel to disclose the establishment official name model.ForEstablishmentOfficialName = person.DefaultAffiliation.Establishment.OfficialName; } return View(model); }