public async Task <OrganizationDto> CreateOrganizationAsync(OrganizationSpecDto specDto) { if (specDto == null) { return(null); } _log.Info($"Creating new organization \"{specDto.Name}\"..."); var supportPerson = await _supportPersonOrgTypeDefaultRepository .GetSupportPersonByOrganizationTypeAsync(specDto.TypeId) .ConfigureAwait(false); specDto.SupportPersonId = supportPerson.SupportPersonId; var contactEmails = specDto.Contacts.Select(u => u.Email); var existingEmails = await GetExistingContactEmailsAsync(contactEmails, default) .ConfigureAwait(false); if (existingEmails.Any()) { ValidationDictionary.AddModelError("Already Existing Emails", string.Join(", ", existingEmails)); return(null); } var createdDto = await AddAsync <OrganizationSpecDto>(specDto) .ConfigureAwait(false); return(createdDto); }
public async Task <ActionResult <Guid> > CreateOrganization([FromBody] OrganizationSpecDto specDto) { var createdDto = await _organizationsService .CreateOrganizationAsync(specDto) .ConfigureAwait(false); if (createdDto == null) { return(BadRequest(new { errors = _organizationsService.ValidationDictionary.GetErrorMessages() })); } return(Ok(createdDto.Id)); }