Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
        /// <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;
            }
        }
Ejemplo n.º 9
0
        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();
        }
Ejemplo n.º 10
0
        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();
        }