public void Delete(etblPropertyPromotionMap prop) { try { string tmpStatus = prop.cStatus; if (prop.cStatus == "A") { prop.cStatus = "I"; } else if (prop.cStatus == "I") { prop.cStatus = "A"; } int result = BL_tblPropertyPromotionMap.DeleteRecord(prop); if (result == 1) { if (tmpStatus == "A") { TempData["msg"] = "Record Disabled Successfully"; } else if (tmpStatus == "I") { TempData["msg"] = "Record Enabled Successfully"; } } } catch (Exception) { throw; } }
//Delete a record public static int DeleteRecord(etblPropertyPromotionMap eobj) { int retval = 0; using (OneFineRateEntities db = new OneFineRateEntities()) { try { using (OneFineRateEntities db1 = new OneFineRateEntities()) { var PP = db1.tblPropertyPromotionMaps.Where(a => a.iID == eobj.iID).ToList(); if (eobj.iPromoId != Convert.ToInt32(Promotions.OFRFreebies)) { eobj.bParentActive = (bool)PP[0].bParentActive; } eobj.iPromoId = PP[0].iPromoId; } OneFineRate.tblPropertyPromotionMap obj = (OneFineRate.tblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(eobj, new OneFineRate.tblPropertyPromotionMap()); db.tblPropertyPromotionMaps.Attach(obj); db.Entry(obj).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); retval = 1; } catch (Exception) { throw; } } return(retval); }
public ActionResult OFR() { int id = 0; if (Session["PropId"] != null) { id = Convert.ToInt32(Session["PropId"].ToString()); } etblPropertyPromotionMap obj = new etblPropertyPromotionMap(); obj.iPropId = id; Session["Entrytype"] = "N"; Session["PromoID"] = BL_tblPromotionManagement.GetPromoID("OFR Freebies"); obj.RoomTypeItems = BL_tblPromotionManagement.GetRoomTypeCheckBox(id); obj.Amenties = BL_tblPromotionManagement.GetAmentiesCheckBox(); obj.CancellationPolicy = BL_tblPromotionManagement.GetCancellationPolicy(id); obj.iCancelationChkBox = obj.CancellationPolicy.Count(); return(View(obj)); }
public ActionResult SetData(etblPropertyPromotionMap Modelprop, bool IsError) { try { if (IsError == true && Modelprop != null) { Session["IsError"] = "True"; if (Session["PromoID"] != null) { Modelprop.iPromoId = Convert.ToInt32(Session["PromoID"]); } Modelprop.iIsPlus = Modelprop.bIsPlus == true ? 1 : 0; Modelprop.iIsPercent = Modelprop.bIsPercent == true ? 1 : 0; if (Modelprop.iPromoId == Convert.ToInt32(Promotions.OFRFreebies)) { Modelprop.RoomTypeItems = BL_tblPromotionManagement.GetRoomTypeCheckBox(Convert.ToInt32(Session["PropId"].ToString())); Modelprop.Amenties = BL_tblPromotionManagement.GetAmentiesCheckBox(); } else { if (Modelprop.SelectedRoomType != null) { Modelprop.sRoomTypeId = Modelprop.SelectedRoomType.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2); } if (Modelprop.SelectedAmenityID != null) { Modelprop.sAmenityId = Modelprop.SelectedAmenityID.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2); } Modelprop.RoomTypeItems = BL_tblPromotionManagement.GetRoomTypeCheckBox(Modelprop.iPropId, Modelprop.iID, Modelprop.iRPId); Modelprop.Amenties = BL_tblPromotionManagement.GetAmentiesCheckBox(Modelprop.sAmenityId); Modelprop.CancellationPolicy = BL_tblPromotionManagement.GetCancellationPolicy(Modelprop.iPropId, Modelprop.sCancellationPolicy); Modelprop.iCancelationChkBox = Modelprop.CancellationPolicy.Count(); } ViewData["ValiditFrom"] = Modelprop.dtRPValidFrom; ViewData["ValiditTo"] = Modelprop.dtRPValidTo; var jsonSerialiser = new JavaScriptSerializer(); var json = Modelprop.CancellationPolicyJSonData; ViewData["cancellationJSON"] = json; if (Modelprop.iPromoId == Convert.ToInt32(Promotions.BasicDeal)) { return(View("BasicPromotions", Modelprop)); } if (Modelprop.iPromoId == Convert.ToInt32(Promotions.MinimumStay)) { return(View("MinimumLengthPromotion", Modelprop)); } if (Modelprop.iPromoId == Convert.ToInt32(Promotions.EarlyBooker)) { return(View("EarlyBookerPromotion", Modelprop)); } if (Modelprop.iPromoId == Convert.ToInt32(Promotions.LastMinutes)) { return(View("LastMinutePromotion", Modelprop)); } if (Modelprop.iPromoId == Convert.ToInt32(Promotions.HrsPromotion)) { return(View("HrsPromotions", Modelprop)); } if (Modelprop.iPromoId == Convert.ToInt32(Promotions.OFRFreebies)) { return(View("OFR", Modelprop)); } else { return(View("../PromotionManagement")); } } else { List <etblPropertyPromotionMap> prop = new List <etblPropertyPromotionMap>(); if (HttpContext.Request.Params["Entrytype"] != null) { Session["Entrytype"] = HttpContext.Request.Params["Entrytype"]; } if (HttpContext.Request.Params["promo"] != null) { Session["PromoID"] = Convert.ToInt32(HttpContext.Request.Params["promo"]); } if (HttpContext.Request.Params["id"] != null) { Session["id"] = Convert.ToInt32(HttpContext.Request.Params["id"]); } int a = Convert.ToInt32(Session["id"]) == null ? 0 : Convert.ToInt32(Session["id"]); if (a > 0) { prop = BL_tblPromotionManagement.getPropertyPromoDataByID(a); prop[0].iIsPlus = prop[0].bIsPlus == true ? 1 : 0; prop[0].iIsPercent = prop[0].bIsPercent == true ? 1 : 0; prop[0].dtBValidFrom = prop[0].dtBookingDateFrom.ToString("dd/MM/yyyy"); prop[0].dtBValidTo = prop[0].dtBookingDateTo.ToString("dd/MM/yyyy"); prop[0].dtSValidFrom = prop[0].dtStayDateFrom.ToString("dd/MM/yyyy"); prop[0].dtSValidTo = prop[0].dtStayDateTo.ToString("dd/MM/yyyy"); if (Convert.ToInt32(Session["PromoID"].ToString()) == Convert.ToInt32(Promotions.OFRFreebies)) { prop[0].RoomTypeItems = BL_tblPromotionManagement.GetRoomTypeCheckBox(prop[0].iPropId, prop[0].iID); prop[0].Amenties = BL_tblPromotionManagement.GetAmentiesCheckBox(prop[0].sAmenityId); } else { prop[0].RoomTypeItems = BL_tblPromotionManagement.GetRoomTypeCheckBox(prop[0].iPropId, prop[0].iID, prop[0].iRPId); prop[0].Amenties = BL_tblPromotionManagement.GetAmentiesCheckBox(prop[0].sAmenityId); prop[0].CancellationPolicy = BL_tblPromotionManagement.GetCancellationPolicy(prop[0].iPropId, prop[0].sCancellationPolicy); prop[0].iCancelationChkBox = prop[0].CancellationPolicy.Count(); } ViewData["ValiditFrom"] = prop[0].dtRPValidFrom; ViewData["ValiditTo"] = prop[0].dtRPValidTo; var jsonSerialiser = new JavaScriptSerializer(); var json = jsonSerialiser.Serialize(prop[0].CancellationPolicyGrid); ViewData["cancellationJSON"] = json; if (Session["Entrytype"].ToString() == "D") { Delete(prop[0]); return(RedirectToAction("Index")); } else { if (prop[0].iPromoId == Convert.ToInt32(Promotions.BasicDeal)) { return(View("BasicPromotions", prop[0])); } if (prop[0].iPromoId == Convert.ToInt32(Promotions.MinimumStay)) { return(View("MinimumLengthPromotion", prop[0])); } if (prop[0].iPromoId == Convert.ToInt32(Promotions.EarlyBooker)) { return(View("EarlyBookerPromotion", prop[0])); } if (prop[0].iPromoId == Convert.ToInt32(Promotions.LastMinutes)) { return(View("LastMinutePromotion", prop[0])); } if (prop[0].iPromoId == Convert.ToInt32(Promotions.HrsPromotion)) { return(View("HrsPromotions", prop[0])); } if (prop[0].iPromoId == Convert.ToInt32(Promotions.OFRFreebies)) { return(View("OFR", prop[0])); } else { return(View("../PromotionManagement")); } } } else { if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.BasicDeal)) { return(RedirectToAction("BasicPromotions")); } if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.MinimumStay)) { return(RedirectToAction("MinimumLengthPromotion")); } if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.EarlyBooker)) { return(RedirectToAction("EarlyBookerPromotion")); } if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.LastMinutes)) { return(RedirectToAction("LastMinutePromotion")); } if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.HrsPromotion)) { return(RedirectToAction("HrsPromotions")); } if (Convert.ToInt32(Session["PromoID"]) == Convert.ToInt32(Promotions.OFRFreebies)) { return(RedirectToAction("OFR")); } else { return(View("../PromotionManagement")); } } } } catch (Exception) { throw; } }
public int Update(etblPropertyPromotionMap prop) { try { prop.iPropId = Convert.ToInt32(Session["PropId"].ToString()); prop.iPromoId = Convert.ToInt32(Session["PromoID"].ToString()); prop.iActionBy = ((OneFineRateBLL.BL_Login.UserDetails)(Session["UserDetails"])).iUserId; prop.dtActionDate = DateTime.Now; prop.bIsPlus = Convert.ToBoolean(prop.iIsPlus); prop.bIsPercent = Convert.ToBoolean(prop.iIsPercent); prop.cStatus = "A"; List <CancellationPolicyGrid> jArray = new List <CancellationPolicyGrid>(); if (prop.iPromoId == Convert.ToInt32(Promotions.OFRFreebies)) { //get all Cancellation Policies comma seperated if (prop.SelectedRoomType != null) { prop.sRoomTypeId = prop.SelectedRoomType.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2); } //get all Cancellation Policies comma seperated if (prop.SelectedAmenityID != null) { prop.sAmenityId = prop.SelectedAmenityID.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2); } } else { JArray jsonResponse = JArray.Parse(prop.CancellationPolicyJSonData.Replace("\\", "\"")); jArray = (List <CancellationPolicyGrid>)JsonConvert.DeserializeObject <List <CancellationPolicyGrid> >(jsonResponse.ToString()); //get all Cancellation Policies comma seperated if (prop.SelectedRoomType != null) { prop.sRoomTypeId = prop.SelectedRoomType.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2); } //get all Cancellation Policies comma seperated if (prop.SelectedAmenityID != null) { prop.sAmenityId = prop.SelectedAmenityID.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2); } //get all Cancellation Policies comma seperated if (prop.SelectedCancellationPolicy != null) { prop.sCancellationPolicy = prop.SelectedCancellationPolicy.Select(i => i.ToString(CultureInfo.InvariantCulture)).Aggregate((s1, s2) => s1 + "," + s2); } } int result = BL_tblPropertyPromotionMap.UpdateRecord(prop, jArray); if (result == 1) { TempData["msg"] = "Record Updated Successfully"; return(result); } else { TempData["Error"] = "Something Went Wrong Please check"; return(result); } } catch (Exception) { throw; } }
public ActionResult Save(etblPropertyPromotionMap prop) { foreach (ModelState modelState in ViewData.ModelState.Values) { foreach (ModelError error in modelState.Errors) { if (Session["ErrorMsg"] == null) { Session["ErrorMsg"] = error.ErrorMessage; } //string str; //str = "a"; // DoSomethingWith(error); } } int val = 0; string Entrytype = HttpContext.Session["Entrytype"].ToString(); int id = 0; if (Session["PropId"] != null) { id = Convert.ToInt32(Session["PropId"].ToString()); } if (ModelState.IsValid) { if (Session["PromoID"].ToString() == Convert.ToInt32(Promotions.OFRFreebies).ToString()) { prop.dtBookingDateFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtBValidFrom.ToString()); prop.dtBookingDateTo = clsUtils.ConvertddmmyyyytoDateTime(prop.dtBValidTo.ToString()); prop.dtStayDateFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtSValidFrom.ToString()); prop.dtStayDateTo = clsUtils.ConvertddmmyyyytoDateTime(prop.dtSValidTo.ToString()); #region Date Validations if (prop.dtBookingDateFrom > prop.dtBookingDateTo) { TempData["Error"] = "BookingFrom Date Can't be greater than BookingTo Date"; return(SetData(prop, true)); } if (prop.dtStayDateFrom > prop.dtStayDateTo) { TempData["Error"] = "StayFrom Date Can't be greater than StayTo Date"; return(SetData(prop, true)); } if (prop.dtStayDateFrom < prop.dtBookingDateFrom) { TempData["Error"] = "StayFrom Date Can't be less than BookingFrom Date"; return(SetData(prop, true)); } #endregion } else { prop.dtBookingDateFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtBValidFrom.ToString()); prop.dtBookingDateTo = clsUtils.ConvertddmmyyyytoDateTime(prop.dtBValidTo.ToString()); prop.dtStayDateFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtSValidFrom.ToString()); prop.dtStayDateTo = clsUtils.ConvertddmmyyyytoDateTime(prop.dtSValidTo.ToString()); prop.dtRPValidityFrom = clsUtils.ConvertddmmyyyytoDateTime(prop.dtRPValidFrom.ToString()); prop.dtRPValidityTo = clsUtils.ConvertddmmyyyytoDateTime(prop.dtRPValidTo.ToString()); #region Date Validations if (prop.dtBookingDateFrom > prop.dtBookingDateTo) { TempData["Error"] = "BookingFrom Date Can't be greater than BookingTo Date"; return(SetData(prop, true)); } if (prop.dtStayDateFrom > prop.dtStayDateTo) { TempData["Error"] = "StayFrom Date Can't be greater than StayTo Date"; return(SetData(prop, true)); } if (prop.dtStayDateFrom < prop.dtBookingDateFrom) { TempData["Error"] = "StayFrom Date Can't be less than BookingFrom Date"; return(SetData(prop, true)); } if (prop.iMinLengthStay > prop.iMaxLengthStay) { TempData["Error"] = "Minimum length of stay should be less than Maximum length of stay"; return(SetData(prop, true)); } if ((prop.dtRPValidityFrom <= prop.dtStayDateFrom && prop.dtRPValidityTo >= prop.dtStayDateFrom) && (prop.dtRPValidityFrom <= prop.dtStayDateTo && prop.dtRPValidityTo >= prop.dtStayDateTo)) { } else { TempData["Error"] = "Stay Validity should be within range of Rate Plan Validity"; return(SetData(prop, true)); } if (prop.CancellationPolicyJSonData == "[]" || prop.CancellationPolicyJSonData == null) { TempData["Error"] = "Please Select Cancellation Policy."; return(SetData(prop, true)); } else { JArray jsonResponse = JArray.Parse(prop.CancellationPolicyJSonData.Replace("\\", "\"")); List <CancellationPolicyGrid> jArray = (List <CancellationPolicyGrid>)JsonConvert.DeserializeObject <List <CancellationPolicyGrid> >(jsonResponse.ToString()); var counter = 0; foreach (var item in jArray) { if (clsUtils.ConvertddmmyyyytoDateTime(item.CancellationValidFrom) <= clsUtils.ConvertddmmyyyytoDateTime(item.CancellationValidTo) && prop.dtStayDateFrom <= clsUtils.ConvertddmmyyyytoDateTime(item.CancellationValidFrom) && prop.dtStayDateTo >= clsUtils.ConvertddmmyyyytoDateTime(item.CancellationValidTo)) { } else { counter = counter + 1; } } if (counter > 0) { TempData["Error"] = "Cancellation policy validity should be with in range of stay dates."; return(SetData(prop, true)); } } #endregion } // E => Edit, N=> New, U => Update if (Entrytype == "E" || Entrytype == "N") { val = Edit(prop); } else if (Entrytype == "U") { val = Update(prop); } if (val == 1) { return(RedirectToAction("Index")); } else if (val == 2) { TempData["Error"] = "Record already exists with similar values"; return(SetData(prop, true)); } else if (val == 6) { TempData["Error"] = "Cancellation policy for all dates must be added in selected stay validity range"; return(SetData(prop, true)); } else { TempData["Error"] = "Please select atleast one room type"; return(SetData(prop, true)); } } else { if (Session["ErrorMsg"] != null) { TempData["Error"] = Session["ErrorMsg"].ToString(); Session["ErrorMsg"] = null; } return(SetData(prop, true)); } }
//Update a record public static int UpdateRecord(etblPropertyPromotionMap eobj, List <CancellationPolicyGrid> jArray) { int retval = 0; using (OneFineRateEntities db = new OneFineRateEntities()) { try { if (jArray.Count > 0) { for (int i = 0; i < jArray.Count; i++) { if (eobj.sCancellationPolicy == null) { eobj.sCancellationPolicy = jArray[i].sPolicyId; } else { eobj.sCancellationPolicy = eobj.sCancellationPolicy + "," + jArray[i].sPolicyId; } } } if (eobj.iPromoId != Convert.ToInt32(Promotions.OFRFreebies)) { #region Check Cancellation Policy Dates int CancellationPolicyDateCount = 0; int SelectedValidityDateCount = 0; DateTime SelectedValidityCurrentDate = eobj.dtStayDateFrom; while (SelectedValidityCurrentDate <= eobj.dtStayDateTo) { SelectedValidityDateCount++; SelectedValidityCurrentDate = SelectedValidityCurrentDate.AddDays(1); } for (int i = 0; i < jArray.Count; i++) { DateTime CancellationPolicyCurrentDate = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidFrom)); while (CancellationPolicyCurrentDate <= Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidTo))) { CancellationPolicyDateCount++; CancellationPolicyCurrentDate = CancellationPolicyCurrentDate.AddDays(1); } } if (SelectedValidityDateCount != CancellationPolicyDateCount) { return(retval = 6); } #endregion } int iPropPromoID = 0; if (eobj.iPromoId == Convert.ToInt32(Promotions.OFRFreebies)) { eobj.iRPId = null; } var vRoom = eobj.sRoomTypeId.Split(',').ToList(); iPropPromoID = eobj.iID; if (vRoom != null) { IEnumerable <tblPropertyPromotionRoomTypeMap> list = db.tblPropertyPromotionRoomTypeMaps.Where(u => u.iPropPromoID == iPropPromoID).ToList(); db.tblPropertyPromotionRoomTypeMaps.RemoveRange(list); //db.SaveChanges(); db.tblPropertyPromotionRoomTypeMaps.AddRange(vRoom.Select(x => new tblPropertyPromotionRoomTypeMap() { iPropPromoID = iPropPromoID, iRoomId = Convert.ToInt16(x),//x.iRoomTypeId, dtActionDate = DateTime.Now, iActionBy = eobj.iActionBy }).ToList()); // db.SaveChanges(); } var recChekCancellationData = (from m in db.tblPropertyPromotionCancellationMainMaps select new { m.iID, m.dtCancellationValidFrom, m.dtCancellationValidTo, }).Where(u => u.iID == iPropPromoID).AsQueryable().ToList(); if (jArray.Count > 0 || recChekCancellationData.Count > 0) { List <CancellationPolicyGridMain> objjArray = new List <CancellationPolicyGridMain>(); for (int i = 0; i < jArray.Count; i++) { objjArray.Add(new CancellationPolicyGridMain() { CancellationValidFrom = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidFrom)), CancellationValidTo = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidTo)), sPolicyId = jArray[i].sPolicyId }); } IEnumerable <tblPropertyPromotionCancellationMainMap> list = db.tblPropertyPromotionCancellationMainMaps.Where(u => u.iID == iPropPromoID).ToList(); db.tblPropertyPromotionCancellationMainMaps.RemoveRange(list); //db.SaveChanges(); db.tblPropertyPromotionCancellationMainMaps.AddRange(objjArray.Select(x => new tblPropertyPromotionCancellationMainMap() { iID = iPropPromoID, dtCancellationValidFrom = Convert.ToDateTime(x.CancellationValidFrom), dtCancellationValidTo = Convert.ToDateTime(x.CancellationValidTo), sCancellationPolicyId = x.sPolicyId, dtActionDate = DateTime.Now, iActionBy = eobj.iActionBy }).ToList()); IEnumerable <tblPropertyPromotionCancellationMap> list1 = db.tblPropertyPromotionCancellationMaps.Where(u => u.iID == iPropPromoID).ToList(); db.tblPropertyPromotionCancellationMaps.RemoveRange(list1); List <tblPropertyPromotionCancellationMap> LPRPC = new List <tblPropertyPromotionCancellationMap>(); for (int i = 0; i < objjArray.Count; i++) { string[] IDs = objjArray[i].sPolicyId.Split(','); for (int j = 0; j < IDs.Length; j++) { DateTime CurrentDate = objjArray[i].CancellationValidFrom; while (CurrentDate <= objjArray[i].CancellationValidTo) { tblPropertyPromotionCancellationMap PRPC = new tblPropertyPromotionCancellationMap(); PRPC.dtDate = CurrentDate; PRPC.iCancellationPolicyId = Convert.ToInt32(IDs[j]); PRPC.iID = iPropPromoID; PRPC.iActionBy = eobj.iActionBy; PRPC.dtActionDate = DateTime.Now; LPRPC.Add(PRPC); CurrentDate = CurrentDate.AddDays(1); } } } db.tblPropertyPromotionCancellationMaps.AddRange(LPRPC); } using (OneFineRateEntities db1 = new OneFineRateEntities()) { var PP = db1.tblPropertyPromotionMaps.Where(a => a.iID == eobj.iID).ToList(); if (eobj.iPromoId != Convert.ToInt32(Promotions.OFRFreebies)) { eobj.bParentActive = (bool)PP[0].bParentActive; } eobj.iPromoId = PP[0].iPromoId; } OneFineRate.tblPropertyPromotionMap obj = (OneFineRate.tblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(eobj, new OneFineRate.tblPropertyPromotionMap()); db.tblPropertyPromotionMaps.Attach(obj); db.Entry(obj).State = System.Data.Entity.EntityState.Modified; //db.SaveChanges(); //db.SaveChanges(); //db.uspSetActiveDeactiveByParent(eobj.iRPId); db.SaveChanges(); retval = 1; } catch (Exception) { throw; } } return(retval); }
//Add new record public static int AddRecord(etblPropertyPromotionMap eobj, List <CancellationPolicyGrid> jArray) { int retval = 0; bool chkExists = false; using (var transactionScope = new TransactionScope()) { using (OneFineRateEntities db = new OneFineRateEntities()) { try { if (jArray.Count > 0) { for (int i = 0; i < jArray.Count; i++) { if (eobj.sCancellationPolicy == null) { eobj.sCancellationPolicy = jArray[i].sPolicyId; } else { eobj.sCancellationPolicy = eobj.sCancellationPolicy + "," + jArray[i].sPolicyId; } } } if (eobj.iPromoId != Convert.ToInt32(Promotions.OFRFreebies)) { #region Check Cancellation Policy Dates int CancellationPolicyDateCount = 0; int SelectedValidityDateCount = 0; DateTime SelectedValidityCurrentDate = eobj.dtStayDateFrom; while (SelectedValidityCurrentDate <= eobj.dtStayDateTo) { SelectedValidityDateCount++; SelectedValidityCurrentDate = SelectedValidityCurrentDate.AddDays(1); } for (int i = 0; i < jArray.Count; i++) { DateTime CancellationPolicyCurrentDate = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidFrom)); while (CancellationPolicyCurrentDate <= Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidTo))) { CancellationPolicyDateCount++; CancellationPolicyCurrentDate = CancellationPolicyCurrentDate.AddDays(1); } } if (SelectedValidityDateCount != CancellationPolicyDateCount) { return(retval = 6); } #endregion chkExists = db.tblPropertyPromotionMaps.Any( p => p.dtBookingDateFrom == eobj.dtBookingDateFrom && p.dtBookingDateTo == eobj.dtBookingDateTo && p.dtStayDateFrom == eobj.dtStayDateFrom && p.dtStayDateTo == eobj.dtStayDateTo && p.iRPId == eobj.iRPId && p.bIsPercent == eobj.bIsPercent && p.bIsPlus == eobj.bIsPlus && p.dValue == eobj.dValue && p.sAmenityId == eobj.sAmenityId && p.sAmenity == eobj.sAmenity && p.sCancellationPolicy == eobj.sCancellationPolicy && p.sRoomTypeId == eobj.sRoomTypeId && p.bIsSecretDeal == eobj.bIsSecretDeal && p.cStatus == eobj.cStatus ); } if (chkExists != true) { int iPropPromoID = 0; if (eobj.iPromoId == Convert.ToInt32(Promotions.OFRFreebies)) { eobj.iRPId = null; } else { var RP = db.tblPropertyRatePlanMaps.Where(a => a.iRPId == eobj.iRPId).ToList(); if (RP[0].cStatus == "I" || RP[0].bParentActive == false) { eobj.bParentActive = false; } else { eobj.bParentActive = true; } } OneFineRate.tblPropertyPromotionMap dbuser = (OneFineRate.tblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(eobj, new OneFineRate.tblPropertyPromotionMap()); db.tblPropertyPromotionMaps.Add(dbuser); db.SaveChanges(); var vRoom = eobj.sRoomTypeId.Split(',').ToList(); iPropPromoID = dbuser.iID; if (vRoom != null) { db.tblPropertyPromotionRoomTypeMaps.AddRange(vRoom.Select(x => new tblPropertyPromotionRoomTypeMap() { iPropPromoID = iPropPromoID, iRoomId = Convert.ToInt16(x),//x.iRoomTypeId, dtActionDate = DateTime.Now, iActionBy = eobj.iActionBy }).ToList()); } if (jArray.Count > 0) { List <CancellationPolicyGridMain> objjArray = new List <CancellationPolicyGridMain>(); for (int i = 0; i < jArray.Count; i++) { objjArray.Add(new CancellationPolicyGridMain() { CancellationValidFrom = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidFrom)), CancellationValidTo = Convert.ToDateTime(clsUtils.ConvertddmmyyyytoDateTime(jArray[i].CancellationValidTo)), sPolicyId = jArray[i].sPolicyId }); } db.tblPropertyPromotionCancellationMainMaps.AddRange(objjArray.Select(x => new tblPropertyPromotionCancellationMainMap() { iID = iPropPromoID, dtCancellationValidFrom = Convert.ToDateTime(x.CancellationValidFrom), dtCancellationValidTo = Convert.ToDateTime(x.CancellationValidTo), sCancellationPolicyId = x.sPolicyId, dtActionDate = DateTime.Now, iActionBy = eobj.iActionBy }).ToList()); List <tblPropertyPromotionCancellationMap> LPRPC = new List <tblPropertyPromotionCancellationMap>(); for (int i = 0; i < objjArray.Count; i++) { string[] IDs = objjArray[i].sPolicyId.Split(','); for (int j = 0; j < IDs.Length; j++) { DateTime CurrentDate = objjArray[i].CancellationValidFrom; while (CurrentDate <= objjArray[i].CancellationValidTo) { tblPropertyPromotionCancellationMap PRPC = new tblPropertyPromotionCancellationMap(); PRPC.dtDate = CurrentDate; PRPC.iCancellationPolicyId = Convert.ToInt32(IDs[j]); PRPC.iID = iPropPromoID; PRPC.iActionBy = eobj.iActionBy; PRPC.dtActionDate = DateTime.Now; LPRPC.Add(PRPC); CurrentDate = CurrentDate.AddDays(1); } } } db.tblPropertyPromotionCancellationMaps.AddRange(LPRPC); } db.SaveChanges(); retval = 1; } else { retval = 2; } transactionScope.Complete(); } catch (Exception) { throw; } finally { transactionScope.Dispose(); } } } return(retval); }
public static List <etblPropertyPromotionMap> getPropertyPromoDataByID(int a) { List <etblPropertyPromotionMap> promorec = new List <etblPropertyPromotionMap>(); using (OneFineRateEntities db = new OneFineRateEntities()) { var rec = (from m in db.tblPropertyPromotionMaps join n in db.tblPropertyRatePlanMaps on m.iRPId equals n.iRPId into result from r in result.DefaultIfEmpty() join c in db.tblUserMs on m.iActionBy equals c.iUserId select new { m.iID, m.dtBookingDateFrom, m.dtBookingDateTo, m.dtStayDateFrom, m.dtStayDateTo, m.iRPId, m.sRoomTypeId, m.dValue, m.iActionBy, m.iPromoId, m.iPropId, m.bIsPlus, m.bIsPercent, m.sAmenityId, m.sAmenity, m.sCancellationPolicy, m.bIsSecretDeal, m.iHrsDays, m.iMinLengthStay, m.iMaxLengthStay, m.dtActionDate, m.cStatus, r.dtValidFrom, r.dtValidTo, UserName = c.sFirstName + " " + c.sLastName, m.dNegotiationPer, } ).Where(u => u.iID == a).AsQueryable(); var data = rec.ToList(); etblPropertyPromotionMap objMain = new etblPropertyPromotionMap(); objMain = (etblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(data[0], objMain); promorec.Add(new etblPropertyPromotionMap() { iID = objMain.iID, dtBookingDateFrom = objMain.dtBookingDateFrom, dtBookingDateTo = objMain.dtBookingDateTo, dtStayDateFrom = objMain.dtStayDateFrom, dtStayDateTo = objMain.dtStayDateTo, iRPId = objMain.iRPId, sRoomTypeId = objMain.sRoomTypeId, dValue = objMain.dValue, iActionBy = objMain.iActionBy, iPromoId = objMain.iPromoId, iPropId = objMain.iPropId, bIsPlus = objMain.bIsPlus, bIsPercent = objMain.bIsPercent, sAmenityId = objMain.sAmenityId, sAmenity = objMain.sAmenity, sCancellationPolicy = objMain.sCancellationPolicy, bIsSecretDeal = objMain.bIsSecretDeal, iHrsDays = objMain.iHrsDays, iMinLengthStay = objMain.iMinLengthStay, iMaxLengthStay = objMain.iMaxLengthStay, dtActionDate = objMain.dtActionDate, cStatus = objMain.cStatus, UserName = objMain.UserName, dtRPValidFrom = objMain.dtValidFrom.ToString("dd/MM/yyyy"), dtRPValidTo = objMain.dtValidTo.ToString("dd/MM/yyyy"), dNegotiationPer = objMain.dNegotiationPer }); var CancellationData = (from m in db.tblPropertyPromotionCancellationMainMaps select new { m.iID, m.dtCancellationValidFrom, m.dtCancellationValidTo, m.sCancellationPolicyId, }).Where(u => u.iID == a).AsQueryable(); var data1 = CancellationData.ToList(); List <CancellationPolicyGrid> objPolicy = new List <CancellationPolicyGrid>(); for (int i = 0; i < data1.Count; i++) { objPolicy.Add(new CancellationPolicyGrid() { CancellationPolicyId = data1[i].sCancellationPolicyId.Split(',').ToList(), CancellationValidFrom = data1[i].dtCancellationValidFrom.ToString("dd/MM/yyyy"), CancellationValidTo = data1[i].dtCancellationValidTo.ToString("dd/MM/yyyy"), sPolicyId = data1[i].sCancellationPolicyId }); var sName = objPolicy[i].sPolicyId.Split(',').ToList(); foreach (var item in sName) { int CanId = Convert.ToInt16(item); var getName = (from m in db.tblPropertyCancellationPolicyMaps select new { m.iCancellationPolicyId, m.sPolicyName, m.cStatus }).Where(u => u.iCancellationPolicyId == CanId).AsQueryable().ToList(); if (objPolicy[i].sPolicyName == null) { objPolicy[i].sPolicyName = getName[0].sPolicyName + (getName[0].cStatus == "A" ? "" : "(Disabled)"); } else { objPolicy[i].sPolicyName = objPolicy[i].sPolicyName + "," + getName[0].sPolicyName + (getName[0].cStatus == "A" ? "" : "(Disabled)"); } } objPolicy[i].CancellationPolicyName = objPolicy[i].sPolicyName.Split(',').ToList(); } promorec[0].CancellationPolicyGrid = objPolicy; //foreach (var item in data) //{ // promorec.Add((etblPropertyPromotionMap)OneFineRateAppUtil.clsUtils.ConvertToObject(item, new etblPropertyPromotionMap())); //} return(promorec); } }