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