/// <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 ); }
/// <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); }
/// <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))); }