public double CalculatePunishment(LateEvent currentEvent) { var lateSettings = db.LateSettings.FirstOrDefault(); IQueryable <LateEvent> eventsForTheSameStudent = db.LateEvents.Where(l => l.StudentId == currentEvent.StudentId); DateTime theFirstPreviousDate = currentEvent.LateDate.AddDays(-1).Date; DateTime theSecondPreviousDate = currentEvent.LateDate.AddDays(-2).Date; DateTime theThirdPreviousDate = currentEvent.LateDate.AddDays(-3).Date; if (eventsForTheSameStudent.Any(e => EntityFunctions.TruncateTime(e.LateDate) == theFirstPreviousDate) && !eventsForTheSameStudent.Any(e => EntityFunctions.TruncateTime(e.LateDate) == theSecondPreviousDate)) { currentEvent.LateMoney = lateSettings.MoneyPerLate * lateSettings.SecondRate; currentEvent.PushCount = lateSettings.PushPerLate * lateSettings.SecondRate; } else if (eventsForTheSameStudent.Any(e => EntityFunctions.TruncateTime(e.LateDate) == theFirstPreviousDate) && eventsForTheSameStudent.Any(e => EntityFunctions.TruncateTime(e.LateDate) == theSecondPreviousDate) && !eventsForTheSameStudent.Any(e => EntityFunctions.TruncateTime(e.LateDate) == theThirdPreviousDate)) { currentEvent.LateMoney = lateSettings.MoneyPerLate * lateSettings.ThirdRate; currentEvent.PushCount = lateSettings.PushPerLate * lateSettings.ThirdRate; } else { currentEvent.LateMoney = lateSettings.MoneyPerLate; currentEvent.PushCount = lateSettings.PushPerLate; } return(currentEvent.LateType == LateEvent.Type.Money ? currentEvent.LateMoney : currentEvent.PushCount); }
public ActionResult DeleteConfirmed(int id) { LateEvent lateEvent = db.LateEvents.Find(id); db.LateEvents.Remove(lateEvent); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: LateEvents/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LateEvent lateEvent = db.LateEvents.Find(id); if (lateEvent == null) { return(HttpNotFound()); } return(View(lateEvent)); }
// GET: LateEvents/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LateEvent lateEvent = db.LateEvents.Find(id); if (lateEvent == null) { return(HttpNotFound()); } ViewBag.StudentId = new SelectList(db.Students, "Id", "Name", lateEvent.StudentId); return(View(lateEvent)); }
public ActionResult Edit([Bind(Include = "Id,LateDate,LateType,LateMoney,PushCount,StudentId")] LateEvent lateEvent) { var currentEventDate = lateEvent.LateDate.Date; if (ModelState.IsValid && !db.LateEvents.Any(l => EntityFunctions.TruncateTime(l.LateDate) == currentEventDate && l.StudentId == lateEvent.StudentId)) { db.Entry(lateEvent).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } else { ViewBag.errorMessage = "This student was attended"; } ViewBag.StudentId = new SelectList(db.Students, "Id", "Name", lateEvent.StudentId); return(View(lateEvent)); }
public ActionResult Create(LateEvent lateEvent) { var currentEventDate = lateEvent.LateDate.Date; if (ModelState.IsValid && !db.LateEvents.Any(l => EntityFunctions.TruncateTime(l.LateDate) == currentEventDate && l.StudentId == lateEvent.StudentId)) { db.LateEvents.Add(lateEvent); db.SaveChanges(); return(RedirectToAction("Index")); } else { ViewBag.errorMessage = "This student was attended"; } ViewBag.StudentId = new SelectList(db.Students, "Id", "Name", lateEvent.StudentId); return(View(lateEvent)); }
private IEnumerator RespondLate() { yield return(waitObj); LateEvent.Invoke(); }