public bool SaveBranchClassDeal(int?branchClassId, int?masterDealId, int?hotelMasterDealId, int?busMasterDealId, int?mobileMasterDealId, int appUserId) { if (masterDealId != null) { if (!IsBranchOfficeAirlineDealInserted(branchClassId)) { BranchClassDeals obj = new BranchClassDeals { BranchClassId = branchClassId ?? 0, BranchDealMasterId = masterDealId ?? 0, CreatedBy = appUserId, CreatedDate = DateTime.Now }; ent.AddToBranchClassDeals(obj); } else { if (!IsSameBranchOfficeMasterDealAlreadyExists(branchClassId, masterDealId)) { var objToDelete = ent.BranchClassDeals.Where(z => z.BranchClassId == branchClassId); foreach (var delete in objToDelete) { int productId = GetBranchOfficeProductIdByMasterDealId(delete.BranchDealMasterId); if (productId == 1) { ent.DeleteObject(delete); } } BranchClassDeals obj = new BranchClassDeals { BranchClassId = branchClassId ?? 0, BranchDealMasterId = masterDealId ?? 0, CreatedBy = appUserId, CreatedDate = DateTime.Now }; ent.AddToBranchClassDeals(obj); } } } else { var objToDelete = ent.BranchClassDeals.Where(z => z.BranchClassId == branchClassId); foreach (var delete in objToDelete) { int productId = GetBranchOfficeProductIdByMasterDealId(delete.BranchDealMasterId); if (productId == 1) { ent.DeleteObject(delete); } } } if (hotelMasterDealId != null) { if (!IsBranchOfficeHotelDealInserted(branchClassId)) { BranchClassDeals obj = new BranchClassDeals { BranchClassId = branchClassId ?? 0, BranchDealMasterId = hotelMasterDealId ?? 0, CreatedBy = appUserId, CreatedDate = DateTime.Now }; ent.AddToBranchClassDeals(obj); } else { if (!IsSameBranchOfficeMasterDealAlreadyExists(branchClassId, hotelMasterDealId)) { var objToDelete = ent.BranchClassDeals.Where(z => z.BranchClassId == branchClassId); foreach (var delete in objToDelete) { int productId = GetBranchOfficeProductIdByMasterDealId(delete.BranchDealMasterId); if (productId == 2) { ent.DeleteObject(delete); } } BranchClassDeals obj = new BranchClassDeals { BranchClassId = branchClassId ?? 0, BranchDealMasterId = hotelMasterDealId ?? 0, CreatedBy = appUserId, CreatedDate = DateTime.Now }; ent.AddToBranchClassDeals(obj); } } } else { var objToDelete = ent.BranchClassDeals.Where(z => z.BranchClassId == branchClassId); foreach (var delete in objToDelete) { int productId = GetBranchOfficeProductIdByMasterDealId(delete.BranchDealMasterId); if (productId == 2) { ent.DeleteObject(delete); } } } if (busMasterDealId != null) { if (!IsBranchOfficeHotelDealInserted(branchClassId)) { BranchClassDeals obj = new BranchClassDeals { BranchClassId = branchClassId ?? 0, BranchDealMasterId = busMasterDealId ?? 0, CreatedBy = appUserId, CreatedDate = DateTime.Now }; ent.AddToBranchClassDeals(obj); } else { if (!IsSameBranchOfficeMasterDealAlreadyExists(branchClassId, busMasterDealId)) { var objToDelete = ent.BranchClassDeals.Where(z => z.BranchClassId == branchClassId); foreach (var delete in objToDelete) { int productId = GetBranchOfficeProductIdByMasterDealId(delete.BranchDealMasterId); if (productId == 4) { ent.DeleteObject(delete); } } BranchClassDeals obj = new BranchClassDeals { BranchClassId = branchClassId ?? 0, BranchDealMasterId = busMasterDealId ?? 0, CreatedBy = appUserId, CreatedDate = DateTime.Now }; ent.AddToBranchClassDeals(obj); } } } else { var objToDelete = ent.BranchClassDeals.Where(z => z.BranchClassId == branchClassId); foreach (var delete in objToDelete) { int productId = GetBranchOfficeProductIdByMasterDealId(delete.BranchDealMasterId); if (productId == 4) { ent.DeleteObject(delete); } } } if (mobileMasterDealId != null) { if (!IsBranchOfficeMobileDealInserted(branchClassId)) { BranchClassDeals obj = new BranchClassDeals { BranchClassId = branchClassId ?? 0, BranchDealMasterId = mobileMasterDealId ?? 0, CreatedBy = appUserId, CreatedDate = DateTime.Now }; ent.AddToBranchClassDeals(obj); } else { if (!IsSameBranchOfficeMasterDealAlreadyExists(branchClassId, mobileMasterDealId)) { var objToDelete = ent.BranchClassDeals.Where(z => z.BranchClassId == branchClassId); foreach (var delete in objToDelete) { int productId = GetBranchOfficeProductIdByMasterDealId(delete.BranchDealMasterId); if (productId == 3) { ent.DeleteObject(delete); } } BranchClassDeals obj = new BranchClassDeals { BranchClassId = branchClassId ?? 0, BranchDealMasterId = mobileMasterDealId ?? 0, CreatedBy = appUserId, CreatedDate = DateTime.Now }; ent.AddToBranchClassDeals(obj); } } } else { var objToDelete = ent.BranchClassDeals.Where(z => z.BranchClassId == branchClassId); foreach (var delete in objToDelete) { int productId = GetBranchOfficeProductIdByMasterDealId(delete.BranchDealMasterId); if (productId == 3) { ent.DeleteObject(delete); } } } ent.SaveChanges(); return(true); }