public async Task <ActionResult <PharmacyInventoryDto> > Create(PharmacyInventoryDto pharmacyInventory)
        {
            try
            {
                bool itemExists = await _context.Item.AnyAsync(x => x.ItemId == pharmacyInventory.ItemId);

                if (!itemExists)
                {
                    return(new NotFoundObjectResult("ItemId doesn't exist"));
                }

                bool pharmacyExists = await _context.Pharmacy.AnyAsync(x => x.PharmacyId == pharmacyInventory.PharmacyId);

                if (!pharmacyExists)
                {
                    return(new NotFoundObjectResult("PharmacyId doesn't exist"));
                }

                if (!pharmacyInventory.QuantityOnHand.HasValue)
                {
                    return(new NotFoundObjectResult("QuantityOnHand needs a value"));
                }
                else
                {
                    if (pharmacyInventory.QuantityOnHand.Value <= 0)
                    {
                        return(new NotFoundObjectResult("QuantityOnHand must be non-zero value"));
                    }
                }

                int itemNumber = (await _context.Item.FirstOrDefaultAsync(x => x.ItemId == pharmacyInventory.ItemId)).ItemNumber;

                PharmacyInventory newPharmacyInventory = _mapper.Map <PharmacyInventory>(pharmacyInventory);
                newPharmacyInventory.PharmacyInventoryId = Guid.NewGuid();
                newPharmacyInventory.ItemNumber          = itemNumber;
                await _context.PharmacyInventory.AddAsync(newPharmacyInventory);

                await _context.SaveChangesAsync();

                return(_mapper.Map <PharmacyInventoryDto>(newPharmacyInventory));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        public async Task <ActionResult <ItemDto> > Create(ItemDto item)
        {
            try
            {
                if (string.IsNullOrEmpty(item.Upc))
                {
                    return(new NotFoundObjectResult("UPC must have a value"));
                }
                else
                {
                    if (item.Upc.Length != 12)
                    {
                        return(new NotFoundObjectResult("UPC must have 12 digits"));
                    }
                    else
                    {
                        long isNumeric;
                        if (!long.TryParse(item.Upc, out isNumeric))
                        {
                            return(new NotFoundObjectResult("UPC must contain only numbers"));
                        }
                    }
                }

                bool itemVendorExists = await _context.ItemVendor.AnyAsync(x => x.ItemVendorId == item.ItemVendorId);

                if (!itemVendorExists)
                {
                    return(new NotFoundObjectResult("ItemVendor doesn't exist"));
                }

                Item newItem = _mapper.Map <Item>(item);
                newItem.ItemId = Guid.NewGuid();
                await _context.Item.AddAsync(newItem);

                await _context.SaveChangesAsync();

                return(_mapper.Map <ItemDto>(newItem));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }