//public ActionResult PunchOut([Bind(Include = "Id,user_Id,project_Id,org_id,clockInTime,clockOutTime")] TimeSheet timeSheet)
        public ActionResult PunchOut(PunchOutVM punchOutVM)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    TimeSheet timeSheet = new TimeSheet();
                    timeSheet.Id           = punchOutVM.timeSheetNumber;
                    timeSheet.user_Id      = punchOutVM.userNumber;
                    timeSheet.project_Id   = punchOutVM.projectNumber;
                    timeSheet.org_Id       = punchOutVM.orgNumber;
                    timeSheet.clockInTime  = punchOutVM.inTime;
                    timeSheet.clockOutTime = DateTime.Now;

                    //TODO: add handling to ensure timesheet was properly updated
                    Repository.UpdateTimeSheet(timeSheet);

                    return(RedirectToAction("VolunteerPortal", "User", new { justPunched = 1 }));
                }
                return(View(punchOutVM));
            }
            catch
            {
                return(View("Error"));
            }
        }
        public ActionResult _PunchOut(int id)
        {
            try
            {
                ReturnStatus rs = Repository.GetClockedInUserTimeSheet(id);

                if (rs.errorCode != 0)
                {
                    ViewBag.status = "Sorry, system is temporarily down.";
                    return(PartialView("_ErrorPunchOut"));
                }
                PunchOutVM punchOutVM = new PunchOutVM((TimeSheet)rs.data);
                return(PartialView("_PunchOut", punchOutVM));
            }
            catch
            {
                return(View("_Error"));
            }
        }