Ejemplo n.º 1
0
        public IHttpActionResult DeleteInvoiceItem(InvoiceItemDTO dto)
        {
            if (!ModelState.IsValid)
                return BadRequest(ModelState);

            InvoiceItem itemToDelete = _invoiceItemService.GetById(dto.InvoiceItemId);

            if (itemToDelete == null)
                return NotFound();

            _invoiceItemService.Delete(itemToDelete);

            return Ok();
        }
Ejemplo n.º 2
0
        public IHttpActionResult PutInvoiceItem(InvoiceItemDTO dto)
        {
            if (!ModelState.IsValid)
                return BadRequest(ModelState);

            if (dto.InvoiceItemId == 0)
            {
                // We are adding a new InvoiceItem.

                InvoiceItem item = _mapper.Map(dto);
                _invoiceItemService.Insert(item);
            }
            else
            {
                // We are updating an existing InvoiceItem.

                InvoiceItem invoiceItem = _invoiceItemService.GetById(dto.InvoiceItemId);

                if (invoiceItem == null)
                    return NotFound();
                else
                {
                    if (invoiceItem.InvoiceId != dto.InvoiceId)
                        return BadRequest(string.Format("Invalid data. The InvoiceId provided in your request ({0}) does not match the InvoiceId associated with this InvoiceItem ({1}).", dto.InvoiceId, invoiceItem.InvoiceId));

                    Product myProduct = _productService.GetById(dto.ProductId);

                    if (myProduct == null)
                        return BadRequest(string.Format("The ProductId provided in your request is invalid. There is no product with ID {0}.", dto.ProductId));

                    // Update these fields with the user input.
                    invoiceItem.Notes = dto.Notes;
                    invoiceItem.Quantity = dto.Quantity;
                    invoiceItem.SortOrder = dto.SortOrder;
                    invoiceItem.ProductId = dto.ProductId;
                    invoiceItem.UnitPrice = decimal.Parse(dto.UnitPrice);

                    // Copy these from the database instead of relying on user input.
                    invoiceItem.ProductDescription = myProduct.Description;
                    invoiceItem.IsProductTaxable = myProduct.IsTaxable;
                }

                _invoiceItemService.Update(invoiceItem);
            }

            return Ok();
        }