public OperationResult <OrganizationModel> CreateOrganization(UpdateOrganizationRequest request) { if (request.IncludeHostname) { foreach (var hostName in request.HostNames) { var existingHost = _hostDefinitionRepository.FindByName(hostName); if (existingHost != null) { return(new OperationResult <OrganizationModel>(false, Constants.Messages.ORGANIZATION_DUPLICATE_HOST)); } } } var address = new Address(); address.AddressLine = request.AddressLine; address.CountryId = request.CountryId; address.ProvinceId = request.ProvinceId; address.DistrictId = request.DistrictId; var newAddress = _addressRepository.Insert(address); _addressRepository.SaveChanges(); var organization = request.ToEntity(); organization.AddressId = newAddress.ID; var newOrganization = _organizationRepository.Insert(organization); _organizationRepository.SaveChanges(); if (request.IncludeHostname) { foreach (var hostName in request.HostNames) { _hostDefinitionRepository.Insert(new HostDefinition() { HostName = hostName, OrganizationId = newOrganization.ID }); } _hostDefinitionRepository.SaveChanges(); } return(new OperationResult <OrganizationModel>(newOrganization.ToModel(), true)); }