Exemplo n.º 1
0
        /// <summary>
        /// Save organization.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        protected IActionResult Post(IVmOpenApiOrganizationInVersionBase request)
        {
            if (request == null)
            {
                ModelState.AddModelError("RequestIsNull", CoreMessages.OpenApi.RequestIsNull);
                return(new BadRequestObjectResult(ModelState));
            }

            // Validate the items
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            // Get the base model for organization
            request = request.VersionBase();

            // Check the item values from db and validate
            ValidateParameters(request, true);

            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            var result = organizationService.AddOrganization(request, Settings.AllowAnonymous, versionNumber);

            return(Ok(result));
        }
        private void CheckTranslations(IVmOpenApiOrganizationInVersionBase source, OrganizationVersioned target)
        {
            target.OrganizationNames.First().Name.Should().Be(TestDataFactory.TEXT);

            // organization emails
            source.EmailAddresses.Count.Should().Be(target.OrganizationEmails.Count);
            AssertEmail(
                source.EmailAddresses.Single(e => e.Language == LanguageCode.fi.ToString()),
                target.OrganizationEmails.Single(e => e.Email.LocalizationId == fiId).Email
                );
            AssertEmail(
                source.EmailAddresses.Single(e => e.Language == LanguageCode.sv.ToString()),
                target.OrganizationEmails.Single(e => e.Email.LocalizationId == svId).Email
                );

            // organization phones
            source.PhoneNumbers.Count.Should().Be(target.OrganizationPhones.Count);
            AssertPhone(
                source.PhoneNumbers.Single(p => p.Language == LanguageCode.fi.ToString()),
                target.OrganizationPhones.Single(p => p.Phone.LocalizationId == fiId).Phone
                );
            AssertPhone(
                source.PhoneNumbers.Single(p => p.Language == LanguageCode.sv.ToString()),
                target.OrganizationPhones.Single(p => p.Phone.LocalizationId == svId).Phone
                );
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Change the organization.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="id">The identifier.</param>
        /// <param name="sourceId">The source identifier.</param>
        /// <returns></returns>
        protected IActionResult Put(IVmOpenApiOrganizationInVersionBase request, string id = null, string sourceId = null)
        {
            // check that one of identifiers is defined
            if (string.IsNullOrEmpty(id) && string.IsNullOrEmpty(sourceId))
            {
                return(NotFound(new VmError()
                {
                    ErrorMessage = $"Organization with id '{id}' not found."
                }));
            }

            // check that the resource exists that we are about to update - id is used, not source id
            if (!string.IsNullOrEmpty(id) && !CheckOrganizationExists(id))
            {
                return(NotFound(new VmError()
                {
                    ErrorMessage = $"Organization with id '{id}' not found."
                }));
            }

            if (request == null)
            {
                ModelState.AddModelError("RequestIsNull", CoreMessages.OpenApi.RequestIsNull);
                return(new BadRequestObjectResult(ModelState));
            }

            // Validate the items
            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            // Get the base model for organization
            request = request.VersionBase();

            if (!string.IsNullOrEmpty(id))
            {
                request.Id = id.ParseToGuid();
            }
            if (!string.IsNullOrEmpty(sourceId))
            {
                request.SourceId = sourceId;
            }

            // Validate item values from db and validate
            var validationResult = ValidateRequest(request);

            return(validationResult ?? Ok(organizationService.SaveOrganization(request, Settings.AllowAnonymous, versionNumber)));
        }