public async Task <Supplier> CreateSupplierAsync(UpdateSupplierRequest createRequest)
        {
            var dbSuppliers = await _context.Suppliers.Where(s => s.CompanyName == createRequest.CompanyName).ToArrayAsync();

            if (dbSuppliers.Length > 0)
            {
                throw new RequestedResourceHasConflictException("company name");
            }

            var dbSupplier = Mapper.Map <UpdateSupplierRequest, DbSupplier>(createRequest);

            _context.Suppliers.Add(dbSupplier);

            await _context.SaveChangesAsync();

            return(Mapper.Map <Supplier>(dbSupplier));
        }
        public async Task <Supplier> UpdateSupplierAsync(int supplierId, UpdateSupplierRequest updateRequest)
        {
            var dbSuppliers = await _context.Suppliers.Where(s => s.CompanyName == updateRequest.CompanyName && s.Id != supplierId).ToArrayAsync();

            if (dbSuppliers.Length > 0)
            {
                throw new RequestedResourceHasConflictException("company name");
            }

            dbSuppliers = await _context.Suppliers.Where(s => s.Id == supplierId).ToArrayAsync();

            if (dbSuppliers.Length == 0)
            {
                throw new RequestedResourceNotFoundException();
            }

            var dbSupplier = dbSuppliers[0];

            Mapper.Map(updateRequest, dbSupplier);

            await _context.SaveChangesAsync();

            return(Mapper.Map <Supplier>(dbSupplier));
        }
 public Task <Supplier> UpdateSupplierAsync(int supplierId, UpdateSupplierRequest updateRequest)
 {
     return(_repository.UpdateSupplierAsync(supplierId, updateRequest));
 }
 public Task <Supplier> CreateSupplierAsync(UpdateSupplierRequest createRequest)
 {
     return(_repository.CreateSupplierAsync(createRequest));
 }