// // POST: /Api/Subjects /// <summary> /// Retrieves and updates Seats Available data for the specified <see cref="Section"/> /// </summary> /// <param name="classID"></param> /// <returns></returns> public ActionResult GetSeats(string classID) { int? seats = null; string friendlyTime = string.Empty; string itemNumber = classID.Substring(0, 4); string yrq = classID.Substring(4, 4); CourseHPQuery query = new CourseHPQuery(); int hpSeats = query.FindOpenSeats(itemNumber, yrq); using (ClassScheduleDb db = new ClassScheduleDb()) { //if the HP query didn't fail, save the changes. Otherwise, leave the SeatAvailability table alone. //This way, the correct number of seats can be pulled by the app and displayed instead of updating the //table with a 0 for seats available. if (hpSeats >= 0) { IQueryable<SectionSeat> seatsAvailableLocal = from s in db.SectionSeats where s.ClassID == classID select s; int rows = seatsAvailableLocal.Count(); if (rows > 0) { // TODO: Should only be updating one record //update the value foreach (SectionSeat seat in seatsAvailableLocal) { seat.SeatsAvailable = hpSeats; seat.LastUpdated = DateTime.Now; } } else { //insert the value SectionSeat newseat = new SectionSeat(); newseat.ClassID = classID; newseat.SeatsAvailable = hpSeats; newseat.LastUpdated = DateTime.Now; db.SectionSeats.AddObject(newseat); } db.SaveChanges(); } // retrieve updated seats data IQueryable<SectionSeat> seatsAvailable = from s in db.SectionSeats where s.ClassID == classID select s; SectionSeat newSeat = seatsAvailable.First(); seats = newSeat.SeatsAvailable; friendlyTime = newSeat.LastUpdated.GetValueOrDefault().ToString("h:mm tt").ToLower(); } string jsonReturnValue = string.Format("{0}|{1}", seats, friendlyTime); return Json(jsonReturnValue); }
public ActionResult UpdateSectionFootnote(string classId, string newFootnoteText) { bool result = false; // Trim any whitespace if (!String.IsNullOrEmpty(newFootnoteText)) { newFootnoteText = newFootnoteText.Trim(); } if (HttpContext.User.Identity.IsAuthenticated == true) { using (ClassScheduleDb db = new ClassScheduleDb()) { IQueryable<SectionsMeta> footnotes = db.SectionsMetas.Where(s => s.ClassID == classId); if (footnotes.Count() > 0) { // Should only update one section foreach (SectionsMeta footnote in footnotes) { if (!String.Equals(footnote.Footnote, newFootnoteText)) { footnote.Footnote = newFootnoteText; footnote.LastUpdated = DateTime.Now; //footnote.LastUpdatedBy result = true; } } } else if (classId != null && !String.IsNullOrWhiteSpace(newFootnoteText)) { // Insert footnote SectionsMeta newFootnote = new SectionsMeta(); newFootnote.ClassID = classId; newFootnote.Footnote = newFootnoteText; newFootnote.LastUpdated = DateTime.Now; db.SectionsMetas.AddObject(newFootnote); result = true; } db.SaveChanges(); } } return Json(new { result = result, footnote = newFootnoteText }); }
public ActionResult ClassEdit(FormCollection collection) { string referrer = collection["referrer"]; if (HttpContext.User.Identity.IsAuthenticated) { string courseId = collection["CourseID"]; string username = HttpContext.User.Identity.Name; string footnote = collection["Footnote"]; footnote = Helpers.StripHtml(footnote); if (ModelState.IsValid) { CourseMeta itemToUpdate; using (ClassScheduleDb db = new ClassScheduleDb()) { bool exists = db.CourseMetas.Any(c => c.CourseID == courseId); itemToUpdate = exists ? db.CourseMetas.Single(c => c.CourseID == courseId) : new CourseMeta(); itemToUpdate.CourseID = courseId; itemToUpdate.Footnote = footnote; itemToUpdate.LastUpdated = DateTime.Now; itemToUpdate.LastUpdatedBy = username; if (!exists) { db.CourseMetas.AddObject(itemToUpdate); } db.SaveChanges(); } } } return Redirect(referrer); }