private string CreateParentNetwork(INetworkOperations networkOperations, CompanyServiceIdPair companyServiceIdPair) { var id = networkOperations.Create(new Network() { Service = new Service() { Id = companyServiceIdPair.ServiceId }, Company = new Company() { Id = companyServiceIdPair.CompanyId }, Name = "new network", NetworkKey = Crypto.GenerateSafeRandomToken() }); return(id); }
public string Create(NetworkDto networkDto) { Authenticate(); Validator.ValidateId(networkDto.CompanyId); Validator.ValidateId(networkDto.ServiceId); if (networkDto.ParentNetworkId != null) { Validator.ValidateId(networkDto.ParentNetworkId); } networkDto.Name = Validator.TrimAndValidateAsName(networkDto.Name); var network = Mapper.Map <Network>(networkDto); AuthorizeCompany(network.Company.Id); var service = _serviceOperations.Get(network.Service.Id); AuthorizeCompany(service.Company.Id); if (service.Company.Id != network.Company.Id) { throw new ForbiddenException(); } if (network.ParentNetwork != null) { var parentNetwork = _networkOperations.Get(network.ParentNetwork.Id); if (parentNetwork.Company.Id != network.Company.Id) { throw new ForbiddenException(); } } network.NetworkKey = Crypto.GenerateSafeRandomToken(); return(_networkOperations.Create(network)); }