コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }