public async Task<ActionResult<MasterProductResult>> PostASMasterProduct(ASMasterProductMerge objASMasterProductMerge) { try { await _IMasterProductInterface.InsertASMasterProduct(objASMasterProductMerge); ASMasterProduct objASMasterProduct = objASMasterProductMerge.ASMasterProduct; return CreatedAtAction("GetASMasterProduct", new { id = objASMasterProduct.MasterProductId }, objASMasterProduct); } catch (Exception ex) { throw new Exception(ex.Message); } }
public async Task InsertASMasterProduct(ASMasterProductMerge objASMasterProductMerge) { using (var transaction = _Context.Database.BeginTransaction()) { try { ASMasterProduct objASMasterProduct = objASMasterProductMerge.ASMasterProduct; ASMasterProductChild objASMasterProductChild = objASMasterProductMerge.ASMasterProductChild; ASMasterAssetsAssignment objASMasterAssetsAssignment = objASMasterProductMerge.ASMasterAssetsAssignment; _Context.ASMasterProducts.Add(objASMasterProduct); await _Context.SaveChangesAsync(); objASMasterProductChild.MasterProductId = objASMasterProduct.MasterProductId; objASMasterProductChild.ProductChildTitle = objASMasterProduct.ProductTitle; objASMasterProductChild.IsActive = true; objASMasterProductChild.IsDeadAssets = false; objASMasterProductChild.IsSaleProduct = false; _Context.ASMasterProductChilds.Add(objASMasterProductChild); await _Context.SaveChangesAsync(); //Insert in TransactionProductHistory ASTransactionProductHistory objASTransactionProductHistory = new ASTransactionProductHistory(); if (objASMasterProductChild.MasterEmployeeId != null && objASMasterProductChild.MasterEmployeeId > 0) { objASTransactionProductHistory.MasterProductChildId = objASMasterProductChild.MasterProductChildId; objASTransactionProductHistory.MasterSubscriptionTypeId = 1; objASTransactionProductHistory.MasterSubscriptionVendorId = objASMasterProductChild.MasterVendorId; objASTransactionProductHistory.SubscriptionPrice = objASMasterProductChild.PurchasePrice; objASTransactionProductHistory.SubscriptionDate = objASMasterProductChild.PurchaseDate; objASTransactionProductHistory.SubscriptionStartDate = objASMasterProductChild.WarrantyStartDate; objASTransactionProductHistory.SubscriptionExpiryDate = objASMasterProductChild.WarrantyExpiryDate; _Context.ASTransactionProductHistorys.Add(objASTransactionProductHistory); await _Context.SaveChangesAsync(); } if (objASMasterProductChild.MasterEmployeeId != null && objASMasterProductChild.MasterEmployeeId > 0) { //ASMasterAssetsAssignment objASMasterAssetsAssignment.MasterAssetsAssignmentId = 0; objASMasterAssetsAssignment.IsActive = true; objASMasterAssetsAssignment.AssetsAssignmentDate = objASMasterAssetsAssignment.AssetsAssignmentDate; objASMasterAssetsAssignment.MasterProductChildId = objASMasterProductChild.MasterProductChildId; objASMasterAssetsAssignment.MasterEmployeeId = objASMasterProductChild.MasterEmployeeId; _Context.ASMasterAssetsAssignments.Add(objASMasterAssetsAssignment); await _Context.SaveChangesAsync(); } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } }