private Result ValidateRequest(Models.Requests.ServiceSupplier serviceSupplierRequest)
 => ValidationHelper.Validate(serviceSupplierRequest, new ServiceSupplierValidator());
        public Task <Result <Models.Responses.ServiceSupplier> > ModifyServiceSupplier(Models.Requests.ServiceSupplier serviceSupplierRequest)
        {
            return(_managerContext.GetManagerRelation()
                   .Ensure(managerRelation => HasManagerModifyServiceSupplier(managerRelation), "The manager does not have enough rights")
                   .Check(managerRelation => ValidateRequest(serviceSupplierRequest))
                   .Bind(Modify)
                   .Map(Build));


            async Task <Result <Common.Models.ServiceSupplier> > Modify(Common.Models.ManagerServiceSupplierRelation managerRelation)
            {
                var serviceSupplier = await _dbContext.ServiceSuppliers
                                      .SingleOrDefaultAsync(serviceSupplier => serviceSupplier.Id == managerRelation.ServiceSupplierId);

                serviceSupplier.Name       = serviceSupplierRequest.Name;
                serviceSupplier.Address    = serviceSupplierRequest.Address;
                serviceSupplier.PostalCode = serviceSupplierRequest.PostalCode;
                serviceSupplier.Phone      = serviceSupplierRequest.Phone;
                serviceSupplier.Website    = serviceSupplierRequest.Website;
                serviceSupplier.Modified   = _dateTimeProvider.UtcNow();

                _dbContext.ServiceSuppliers.Update(serviceSupplier);
                await _dbContext.SaveChangesAsync();

                return(serviceSupplier);
            }
        }