/// <summary> ///异步验证 /// </summary> public static async Task DoValidationAsync(IOrganizationRespository organizationRespository, Organization organization, string validatorType) { var organizationValidator = new OrganizationValidator(organizationRespository); var validatorReresult = await organizationValidator.DoValidateAsync(organization, validatorType); if (!validatorReresult.IsValid) { throw new DomainException(validatorReresult); } }
/// <summary> /// Validates the parameters. /// </summary> /// <param name="request">The request.</param> /// <param name="createOperation">if set to <c>true</c> [create operation].</param> protected void ValidateParameters(IVmOpenApiOrganizationInVersionBase request, bool createOperation = false) { IList <string> newLanguages = new List <string>(); IList <string> availableLanguages = new List <string>(); if (createOperation) { if (request.PublishingStatus != PublishingStatus.Published.ToString()) { request.PublishingStatus = PublishingStatus.Draft.ToString(); } newLanguages = request.GetAvailableLanguages(versionNumber); if (request.ParentOrganizationId.IsNullOrEmpty()) { // Check the user role - Pete user is not allowed to create main organization var userRole = userService.UserHighestRole(); if (userRole != UserRoleEnum.Eeva) { this.ModelState.AddModelError("Organization", "User has no rights to create this entity!"); } } } else { // We are updating existing service. // Get the current version and data related to it var currentVersion = request.Id.IsAssigned() ? organizationService.GetOrganizationById(request.Id.Value, 0, false) : organizationService.GetOrganizationBySource(request.SourceId, 0, false); if (currentVersion == null || string.IsNullOrEmpty(currentVersion.PublishingStatus)) { if (request.Id.IsAssigned()) { this.ModelState.AddModelError("Organization id", $"Version for organization with id '{request.Id.Value}' not found."); } else { this.ModelState.AddModelError("Organization id", $"Version for service with source id '{request.SourceId}' not found."); } } else { request.CurrentPublishingStatus = currentVersion.PublishingStatus; // Check if user has added new language versions. New available languages and data need to be validated (required fields need to exist in request). availableLanguages = currentVersion.GetAvailableLanguages(versionNumber).ToList(); newLanguages = request.GetAvailableLanguages(versionNumber).Where(i => !availableLanguages.Contains(i)).ToList(); } } OrganizationValidator organization = new OrganizationValidator(request, codeService, organizationService, newLanguages, availableLanguages, commonService, versionNumber, createOperation); organization.Validate(this.ModelState); }
public void OnlyPublishingStatusDefined() { // Arrange var validator = new OrganizationValidator (new VmOpenApiOrganizationInVersionBase() { PublishingStatus = PublishingStatus.Published.ToString() }, codeService, organizationService, null, null, commonService, 7, true); // Act validator.Validate(controller.ModelState); // Assert controller.ModelState.IsValid.Should().BeTrue(); }
public void OrganizationTypeIsNotMunicipality_MunicipalityNotNull() { // Arrange var validator = new OrganizationValidator (new VmOpenApiOrganizationInVersionBase() { OrganizationType = OrganizationTypeEnum.Company.ToString(), Municipality = "municipality_code" }, codeService, organizationService, null, null, commonService, 7, true); // Act validator.Validate(controller.ModelState); // Assert controller.ModelState.IsValid.Should().BeFalse(); }
public void OrganizationType_AreaType_Valid(OrganizationTypeEnum type, AreaInformationTypeEnum areType) { // Arrange var validator = new OrganizationValidator (new VmOpenApiOrganizationInVersionBase() { OrganizationType = type.ToString(), AreaType = areType.ToString() }, codeService, organizationService, null, null, commonService, 7, true); // Act validator.Validate(controller.ModelState); // Assert controller.ModelState.IsValid.Should().BeTrue(); }
public void OrganizationType_AreaTypeOrSubAreaType_NotValid(OrganizationTypeEnum?type, AreaInformationTypeEnum?areaType, AreaTypeEnum?subArea) { // Arrange var validator = new OrganizationValidator (new VmOpenApiOrganizationInVersionBase() { OrganizationType = type.HasValue ? type.Value.ToString() : null, AreaType = areaType.HasValue ? areaType.Value.ToString() : null, SubAreaType = subArea.HasValue ? subArea.Value.ToString() : null, }, codeService, organizationService, null, null, commonService, 7, true); // Act validator.Validate(controller.ModelState); // Assert controller.ModelState.IsValid.Should().BeFalse(); }
public void OrganizationType_AreasSet_NotValid(OrganizationTypeEnum?type) { // Arrange var validator = new OrganizationValidator (new VmOpenApiOrganizationInVersionBase() { OrganizationType = type.HasValue ? type.Value.ToString() : null, Areas = new List <string> { "areaCode" } }, codeService, organizationService, null, null, commonService, 7, true); // Act validator.Validate(controller.ModelState); // Assert controller.ModelState.IsValid.Should().BeFalse(); }
/// <summary> ///异步验证 /// </summary> public static async Task DoValidationAsync(IOrganizationRespository organizationRespository, IEnumerable <Organization> organizations, string validatorType) { var organizationValidator = new OrganizationValidator(organizationRespository); var domainException = new DomainException(); foreach (var organization in organizations) { var validatorReresult = await organizationValidator.DoValidateAsync(organization, validatorType); if (!validatorReresult.IsValid) { domainException.AddErrors(validatorReresult); } } if (domainException.ValidationErrors.ErrorItems.Any()) { throw domainException; } }
public void InvalidAreaType_With_Areas() { // Arrange var validator = new OrganizationValidator (new VmOpenApiOrganizationInVersionBase() { OrganizationType = OrganizationTypeEnum.Company.ToString(), // State, Organization or Company AreaType = AreaInformationTypeEnum.WholeCountry.ToString(), // something else than AreaType Areas = new List <string> { "areaCode" } }, codeService, organizationService, null, null, commonService, 7, true); // Act validator.Validate(controller.ModelState); // Assert controller.ModelState.IsValid.Should().BeFalse(); }
public void OrganizationTypeIsMunicipality_MunicipalityNotNull() { // Arrange var code = "municipality_code"; codeServiceMockSetup.Setup(s => s.GetMunicipalityByCode(code, true)).Returns(new VmListItem() { Id = Guid.NewGuid() }); var validator = new OrganizationValidator (new VmOpenApiOrganizationInVersionBase() { OrganizationType = OrganizationTypeEnum.Municipality.ToString(), Municipality = code }, codeService, organizationService, null, null, commonService, 7, true); // Act validator.Validate(controller.ModelState); // Assert controller.ModelState.IsValid.Should().BeTrue(); }