// POST api/invoiceLines public virtual HttpResponseMessage Post(InvoiceLine invoiceLine) { if (invoiceLine == null) { return Request.CreateResponse(HttpStatusCode.BadRequest); } else { if (invoiceLine.Product == null) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No se puede crear una línea sin producto"); } if (invoiceLine.Invoice == null) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No se puede crear una línea de factura sin información de su cabecera"); } using (AriUMContext ctx = new AriUMContext("AriUMDBConnection")) { InvoiceLine i = CntWebApiVerbs.PostInvoiceLine(invoiceLine, ctx); InvoiceLine idt = ctx.CreateDetachedCopy<InvoiceLine>(i); var response = Request.CreateResponse<InvoiceLine>(HttpStatusCode.Created, idt); response.Headers.Location = GetInvoiceLineLocation(idt.InvoiceLineId); return response; } } }
// PUT api/invoiceLines/5 public virtual HttpResponseMessage Put(int id, InvoiceLine invoiceLine) { if (invoiceLine == null || id != invoiceLine.InvoiceLineId) { return Request.CreateResponse(HttpStatusCode.BadRequest); } else { using (AriUMContext ctx = new AriUMContext("AriUMDBConnection")) { // Does it exist? InvoiceLine i = CntWebApiVerbs.GetInvoiceLine(id, ctx); if (i == null) { return Request.CreateResponse(HttpStatusCode.NotFound); } else { CntWebApiVerbs.PutInvoiceLine(invoiceLine, ctx); return Request.CreateResponse(HttpStatusCode.NoContent); } } } }
public static InvoiceLine PutInvoiceLine(InvoiceLine invoiceLine, AriUMContext ctx) { int invoiceLineId = invoiceLine.InvoiceLineId; int productId = 0; int invoiceId = 0; if (invoiceLine.Product != null) { productId = invoiceLine.Product.ProductId; invoiceLine.Product = null; } if (invoiceLine.Invoice != null) { invoiceId = invoiceLine.Invoice.InvoiceId; invoiceLine.Invoice = null; } ctx.AttachCopy<InvoiceLine>(invoiceLine); invoiceLine = (from il in ctx.InvoiceLines where il.InvoiceLineId == invoiceLineId select il).FirstOrDefault<InvoiceLine>(); invoiceLine.Product = (from p in ctx.Products where p.ProductId == productId select p).FirstOrDefault<Product>(); invoiceLine.Invoice = (from i in ctx.Invoices where i.InvoiceId == invoiceId select i).FirstOrDefault<Invoice>(); ctx.SaveChanges(); return invoiceLine; }
public static bool DeleteInvoiceLine(InvoiceLine invoiceLine, AriUMContext ctx) { ctx.Delete(invoiceLine); ctx.SaveChanges(); return true; }
public static InvoiceLine PostInvoiceLine(InvoiceLine invoiceLine, AriUMContext ctx) { if (invoiceLine.Invoice != null) { Invoice invoice = (from i in ctx.Invoices where i.InvoiceId == invoiceLine.Invoice.InvoiceId select i).FirstOrDefault<Invoice>(); invoiceLine.Invoice = invoice; } if (invoiceLine.Product != null) { Product product = (from p in ctx.Products where p.ProductId == invoiceLine.Product.ProductId select p).FirstOrDefault<Product>(); invoiceLine.Product = product; } ctx.Add(invoiceLine); ctx.SaveChanges(); return invoiceLine; }