public ActionResult Proposal(string id, string accept, string decline, string create) { if (TempData["Message"] != null && !string.IsNullOrEmpty(TempData["Message"].ToString())) { ModelState.AddModelError("success", TempData["Message"].ToString()); } else if (TempData["Error"] != null && !string.IsNullOrEmpty(TempData["Error"].ToString())) { ViewBag.FormInvalid = 1; ModelState.AddModelError("error", TempData["Error"].ToString()); } ViewBag.FormInvalid = 0; if (!string.IsNullOrEmpty(accept)) { UpdateProposalStatus(id, "accept"); } else if (!string.IsNullOrEmpty(decline)) { UpdateProposalStatus(id, "decline"); } if (id != null) { UnitOfWork uow = new UnitOfWork(); ProposalDetailModel model = new ProposalDetailModel(); string userId = Session["UserId"].ToString(); StudentProblemDetailModel problemDetail = uow.UserRepository.GetProblemDetailByBidId(id, userId); if (problemDetail != null) { model.ProblemDetail = problemDetail; model.Subject = problemDetail.SubjectID; model.SubjectName = problemDetail.SubjectName; model.SessionType = problemDetail.SessionType; model.SessionTypeName = nameof(problemDetail.SessionType); model.Messages = uow.UserRepository.GetMessagesByBidId(id); model.BidId = id; //display class data Common common = new Common(); model.DurationHourList = new SelectList(common.GetDurationHours()); model.DurationMinuteList = new SelectList(common.GetMinutes()); model.HourList = new SelectList(common.GetHours()); model.MinuteList = new SelectList(common.GetMinutes()); model.AMPMList = new SelectList(common.GetAMPM()); List <TeacherSubject> subjects = uow.TeacherRepository.GetSubjects(problemDetail.TeacherID); model.TimeZones = new SelectList(uow.TimeZones.Get(), "GMT", "Name", "49"); model.Subjects = new SelectList(subjects, "SubjectID", "SubjectName"); model.SessionTypes = GetSessionTypes(); } else { ViewBag.Msg = "No Data Is Available"; } return(View(model)); } else { return(RedirectToAction("student", "problems")); } }
public ProposalDetailModel CreateClassView(ProposalDetailModel model, string userId) { UnitOfWork uow = new UnitOfWork(); Common common = new Common(); model.DurationHourList = new SelectList(common.GetDurationHours()); model.DurationMinuteList = new SelectList(common.GetMinutes()); model.HourList = new SelectList(common.GetHours()); model.MinuteList = new SelectList(common.GetMinutes()); model.AMPMList = new SelectList(common.GetAMPM()); model.SessionTypes = GetSessionTypes(); model.Messages = uow.UserRepository.GetMessagesByBidId(model.BidId); List <TeacherSubject> subjects = uow.TeacherRepository.GetSubjects(model.TeacherID); model.Subjects = new SelectList(subjects, "SubjectID", "SubjectName"); model.TimeZones = new SelectList(uow.TimeZones.Get(), "GMT", "Name", "49"); model.ProblemDetail = uow.UserRepository.GetProblemDetailByBidId(model.BidId, userId); model.SubjectName = model.ProblemDetail.SubjectName; return(model); }
public ActionResult Proposal(ProposalDetailModel model, string accept, string decline) { if (!string.IsNullOrEmpty(accept)) { UpdateProposalStatus(model.BidId, "accept"); } else if (!string.IsNullOrEmpty(decline)) { UpdateProposalStatus(model.BidId, "decline"); } try { UnitOfWork uow = new UnitOfWork(); string userId = Session["UserId"].ToString(); if (Convert.ToInt32(model.DurationHour) < 1 && Convert.ToInt32(model.DurationMinutes) < 30) { ViewBag.FormInvalid = 1; ModelState.AddModelError("classtime-error", Resources.Resources.MsgClassDurationError); return(View(CreateClassView(model, userId))); } else if (!ModelState.IsValid) { ViewBag.FormInvalid = 1; CreateClassView(model, userId); return(View(model)); } else { //calculate duration decimal classDuration = Math.Round(Convert.ToInt16(model.DurationHour) + (Convert.ToInt16(model.DurationMinutes) / 60m), 2); if (Common.UserHasCredits(userId, classDuration)) { ViewBag.FormInvalid = 0; bool record = false; if (model.Record == "1" && model.SessionType == 1) { record = true; } string dateAndTime = model.Date; DateTime classDate = DateTime.ParseExact(dateAndTime, "dd/MM/yyyy", CultureInfo.InvariantCulture); if (Convert.ToInt32(model.DurationHour) > 0 || Convert.ToInt32(model.DurationMinutes) > 0) { dateAndTime = model.Date + " " + model.ClassHour + ":" + model.ClassMinute + " " + model.ClassAMPM; classDate = DateTime.ParseExact(dateAndTime, "dd/MM/yyyy hh:mm tt", CultureInfo.InvariantCulture); } if (model.SessionType == 1) { string classEndTime = classDate.AddHours(Convert.ToDouble(model.DurationHour)).AddMinutes(Convert.ToDouble(model.DurationMinutes)).ToString("HH:mm tt"); model.StartTime = classDate.ToString("hh:mm tt"); // only 30 minute class is allowed in trial period model.ClassEndTime = classDate.AddMinutes(30).ToString("hh:mm tt"); //classEndTime; } Class clsCreate = new Class() { ClassID = Guid.NewGuid().ToString(), Title = model.Title, ClassDate = classDate, StartTime = model.StartTime, EndTime = model.ClassEndTime, Duration = classDuration, CreationDate = DateTime.Now, Type = model.SessionType, Record = record, CreatedBy = Session["UserId"].ToString(), TeacherID = model.TeacherID, Description = model.Description, SubjectID = model.Subject, ProblemID = model.ProblemID, Status = (int)ClassStatus.BidAccepted, CreatedByStudent = true, TimeZone = model.TimeZone, BrainCertId = 0 }; uow.Classes.Insert(clsCreate); uow.Save(); UpdateProposalStatus(model.BidId, "accept"); DeclineAllOtherProposals(model.ProblemID, model.BidId); model.ProblemDetail = uow.UserRepository.GetProblemDetailByBidId(model.BidId, userId); ModelState.AddModelError("success", Resources.Resources.MsgClassRequested); return(View(model)); } else { ViewBag.FormInvalid = 1; CreateClassView(model, userId); ModelState.AddModelError("error", Resources.Resources.MsgNoBalance); return(View(model)); } } } catch (Exception) { TempData["Error"] = Resources.Resources.MsgErrorTryAgain; return(RedirectToAction("proposal", "problem", new { id = model.BidId })); } }