//// POST: RoomTypeOptions/Edit/5 //// To protect from overposting attacks, please enable the specific properties you want to bind to, for //// more details see https://go.microsoft.com/fwlink/?LinkId=317598. public JsonResult UpdateRoomTypeOptions(Facilitiy roomTypeOption) { try { if (roomTypeOption.SelectedValues != null) { if (ModelState.IsValid) { var roomTypeOptions = (from rto in db.RoomTypeOptions join rtof in db.RoomTypeOptionsFacilities on rto.RoomTypeOptionID equals rtof.RoomTypeOptionID where rto.RoomTypeOptionID == roomTypeOption.RoomTypeOptionID select new { rto, rtof }); if (roomTypeOptions.Count() > 0) { using (DbContextTransaction dbTran = db.Database.BeginTransaction()) { try { RoomTypeOption rto = db.RoomTypeOptions.Where(x => x.RoomTypeOptionID == roomTypeOption.RoomTypeOptionID).FirstOrDefault(); rto.RoomTypeID = roomTypeOption.RoomtypeId; rto.Price = roomTypeOption.Price; rto.IsRefundable = roomTypeOption.IsRefundable; rto.Description = roomTypeOption.Description; rto.UpdatedBy = (Session["User"] as SessionEntity).UserID; rto.UpdatedDate = DateTime.Now; db.Entry(rto).State = EntityState.Modified; db.SaveChanges(); var rtoDel = db.RoomTypeOptionsFacilities.Where(x => x.RoomTypeOptionID == roomTypeOption.RoomTypeOptionID); //Removing all records from RoomTypeOptions with Room type if (rtoDel.Count() > 0) { db.RoomTypeOptionsFacilities.RemoveRange(rtoDel); db.SaveChanges(); } //Readding the all foreach (var item in roomTypeOption.SelectedValues) { RoomTypeOptionsFacility rtof = new RoomTypeOptionsFacility(); rtof.RoomTypeOptionID = roomTypeOption.RoomTypeOptionID; rtof.OfficeFacilityID = Int32.Parse(item); rtof.CreatedBy = roomTypeOption.CreatedBy; rtof.CreatedDate = roomTypeOption.CreatedDate; rtof.UpdatedBy = (Session["User"] as SessionEntity).UserID; rtof.UpdatedDate = DateTime.Now; db.RoomTypeOptionsFacilities.Add(rtof); db.SaveChanges(); } dbTran.Commit(); } catch (Exception e) { dbTran.Rollback(); return(Json(new { StatusCode = HttpStatusCode.Created, StatusMessage = e.Message }, JsonRequestBehavior.AllowGet)); } } } return(Json(new { StatusCode = HttpStatusCode.Created, StatusMessage = "Office falility Updated Successfully" }, JsonRequestBehavior.AllowGet)); } } } catch (Exception e) { return(Json(new { StatusCode = HttpStatusCode.MethodNotAllowed, StatusMessage = e.Message }, JsonRequestBehavior.AllowGet)); } return(Json(new { StatusCode = HttpStatusCode.MethodNotAllowed, StatusMessage = "Please enter required fields" }, JsonRequestBehavior.AllowGet)); }
//// POST: RoomTypeOptions/Create //// To protect from overposting attacks, please enable the specific properties you want to bind to, for //// more details see https://go.microsoft.com/fwlink/?LinkId=317598. public JsonResult CreateRoomTypeOption(Facilitiy roomTypeOption) { try { if (roomTypeOption.SelectedValues != null) { if (ModelState.IsValid) { var roomTypeOptions = (from rto in db.RoomTypeOptions join rt in db.RoomTypes on rto.RoomTypeID equals rt.RoomTypeID join rtof in db.RoomTypeOptionsFacilities on rto.RoomTypeOptionID equals rtof.RoomTypeOptionID join facl in db.OfficeFacilities on rtof.OfficeFacilityID equals facl.OfficeFacilityID where rt.RoomTypeID == roomTypeOption.RoomtypeId select new { rto, rt, rtof, facl }); if (roomTypeOptions.Count() > 0) { var oids = roomTypeOption.SelectedValues.Select(id => int.Parse(id)).ToList(); var OfficeFacilities = roomTypeOptions.Where(t => oids.Contains(t.facl.OfficeFacilityID)); if (OfficeFacilities.Count() == roomTypeOptions.Select(c => c.facl.OfficeFacilityID).Count()) { return(Json(new { StatusCode = HttpStatusCode.Found, StatusMessage = "Office falilities already present" }, JsonRequestBehavior.AllowGet)); } } using (DbContextTransaction dbTran = db.Database.BeginTransaction()) { try { RoomTypeOption rto = new RoomTypeOption(); //rto.OfficeFacilityID = Int32.Parse(item); rto.RoomTypeID = roomTypeOption.RoomtypeId; rto.Price = roomTypeOption.Price; rto.IsRefundable = roomTypeOption.IsRefundable; rto.Description = roomTypeOption.Description; rto.CreatedBy = (Session["User"] as SessionEntity).UserID; rto.CreatedDate = DateTime.Now; db.RoomTypeOptions.Add(rto); db.SaveChanges(); foreach (var item in roomTypeOption.SelectedValues) { RoomTypeOptionsFacility rtof = new RoomTypeOptionsFacility(); rtof.RoomTypeOptionID = rto.RoomTypeOptionID; rtof.OfficeFacilityID = Int32.Parse(item); rtof.CreatedBy = (Session["User"] as SessionEntity).UserID; rtof.CreatedDate = DateTime.Now; db.RoomTypeOptionsFacilities.Add(rtof); db.SaveChanges(); } dbTran.Commit(); } catch (Exception e) { dbTran.Rollback(); return(Json(new { StatusCode = HttpStatusCode.Created, StatusMessage = e.Message }, JsonRequestBehavior.AllowGet)); } } return(Json(new { StatusCode = HttpStatusCode.Created, StatusMessage = "Office falilities Saved Successfully" }, JsonRequestBehavior.AllowGet)); } } ViewBag.OfficeFacilityID = new SelectList(db.OfficeFacilities, "OfficeFacilityID", "OfficeFacilityName", roomTypeOption.OfficeFacilityID); ViewBag.CreatedBy = new SelectList(db.Users, "UserID", "FirstName", roomTypeOption.CreatedBy); ViewBag.RoomTypeID = new SelectList(db.RoomTypes, "RoomTypeID", "RoomTypeName", roomTypeOption.RoomtypeId); ViewBag.UpdatedBy = new SelectList(db.Users, "UserID", "FirstName", roomTypeOption.UpdatedBy); } catch (Exception e) { return(Json(new { StatusCode = HttpStatusCode.MethodNotAllowed, StatusMessage = e.Message }, JsonRequestBehavior.AllowGet)); } return(Json(new { StatusCode = HttpStatusCode.MethodNotAllowed, StatusMessage = "Please enter required fields" }, JsonRequestBehavior.AllowGet)); }