示例#1
0
        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"));
            }
        }
示例#2
0
        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);
        }
示例#3
0
 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
         }));
     }
 }