public HttpResponseMessage Save(string sellInvoceJson, string invoiceDetailsJson) { string invoiceId = ""; string errMessage = ""; SelInvoiceContract invoiceDTO = JsonConvert.DeserializeObject <SelInvoiceContract>(sellInvoceJson); SelInvoiceDetailContract[] invoiceDetailDTOs = JsonConvert.DeserializeObject <SelInvoiceDetailContract[]>(invoiceDetailsJson); SqlTransaction tran = DataProvider.beginTrans(); try { businessRule.RegistInstants(invoiceDTO); if (invoiceDTO.Id > 0) { invoiceId = invoiceDT.Update(invoiceDTO, tran); changeDetail(invoiceDTO.Id, invoiceDTO.Code, (int)invoiceDTO.Storeid, invoiceDetailDTOs, tran); } else { businessRule.RegistRule("Insert"); if (businessRule.CheckRules(out errMessage)) { invoiceId = invoiceDT.Insert(invoiceDTO, tran); } else { return(handleBRFailed(errMessage, tran)); } } if (Converter.ToInt32(invoiceId) > 0) { invoiceDetailDT.DeleteViaCond("InvoiceId=" + invoiceId); foreach (SelInvoiceDetailContract invoiceDetailDTO in invoiceDetailDTOs) { invoiceDetailDTO.Invoiceid = Converter.ToInt32(invoiceId); invoiceDetailDT.Insert(invoiceDetailDTO, tran); errMessage = StoreModel.Export(invoiceDTO.Storeid.ToString(), invoiceDTO.Code, Converter.ToInt32(invoiceDetailDTO.Quantity), invoiceDetailDTO.Productid.ToString(), tran); if (errMessage != "") { DataProvider.RollbackTrans(tran); return(Request.CreateResponse <string>(HttpStatusCode.OK, errMessage)); } } } DataProvider.CommitTrans(tran); } catch (Exception e) { DataProvider.RollbackTrans(tran); ExceptionHandler.Log(e); } return(Request.CreateResponse <string>(HttpStatusCode.OK, errMessage != string.Empty ? errMessage : invoiceId)); }
public HttpResponseMessage Save(string exportJson, string exportDetailsJson) { string exportId = ""; string errMessage = ""; StoExportContract exportDTO = JsonConvert.DeserializeObject <StoExportContract>(exportJson); StoExportDetailContract[] exportDetailDTOs = JsonConvert.DeserializeObject <StoExportDetailContract[]>(exportDetailsJson); SqlTransaction tran = DataProvider.beginTrans(); try { businessRule.RegistInstants(exportDTO); if (exportDTO.Id > 0) { exportId = exportDT.Update(exportDTO, tran); } else { businessRule.RegistRule("Insert"); if (businessRule.CheckRules(out errMessage)) { exportId = exportDT.Insert(exportDTO, tran); } else { return(handleBRFailed(errMessage, tran)); } } if (Converter.ToInt32(exportId) > 0) { foreach (StoExportDetailContract exportDetailDTO in exportDetailDTOs) { exportDetailDTO.Exportid = Converter.ToInt32(exportId); exportDetailDT.Insert(exportDetailDTO, tran); errMessage = StoreModel.Export(exportDTO.Storeid.ToString(), exportDTO.Code, Converter.ToInt32(exportDetailDTO.Quantity), exportDetailDTO.Productid.ToString(), tran); if (errMessage != "") { DataProvider.RollbackTrans(tran); return(Request.CreateResponse <string>(HttpStatusCode.OK, errMessage)); } } } DataProvider.CommitTrans(tran); } catch (Exception e) { DataProvider.RollbackTrans(tran); ExceptionHandler.Log(e); } return(Request.CreateResponse <string>(HttpStatusCode.OK, errMessage != string.Empty ? errMessage : exportId)); }