public ActionResult ProcessSelectedTimecards(TimecardApprovalViewModel vm)
        {
            Guid userId = new Guid(User.Identity.GetUserId());

            if (vm != null && vm.Timecards != null)
            {
                foreach (var item in vm.Timecards)
                {
                    Timecard  timecard = timecardService.GetById(item.Id);
                    Applicant employee = timecardService.GetEmployeeByTimecardId(timecard);
                    if (vm.ApprovalStatus == "Approve")
                    {
                        timecard.ApprovalStatus = "Approved";
                        timecard.Approved       = true;
                        timecard.ApprovedDate   = DateTime.Now;
                        //EmailTemplate template = SendGridEmailService.GetEmailTemplate("Timecard Approved");
                        string path = string.Empty;
                        //if (template.Active)
                        //{
                        //    if (!string.IsNullOrWhiteSpace(employee.Email))
                        //    {
                        //        //SendGridEmailService.SendEmail(template, employee.Email, userId.ToString(), employee.FirstName, employee.LastName, "", path);
                        //    }
                        //    if (!string.IsNullOrWhiteSpace(employee.CellPhone))
                        //    {
                        //        //SMSService.SendSMS(template, employee.CellPhone, userId.ToString(), null);
                        //    }
                        //}
                    }
                    else if (vm.ApprovalStatus == "Reject")
                    {
                        timecard.ApprovalStatus   = "Rejected";
                        timecard.Approved         = false;
                        timecard.LastRejectedDate = DateTime.Now;
                        //EmailTemplate template = SendGridEmailService.GetEmailTemplate("Timecard Rejected");
                        string path = string.Empty;
                        //if (template.Active)
                        //{
                        //    if (!string.IsNullOrWhiteSpace(employee.Email))
                        //    {
                        //        //SendGridEmailService.SendEmail(template, employee.Email, userId.ToString(), employee.FirstName, employee.LastName, "", path);
                        //    }
                        //    if (!string.IsNullOrWhiteSpace(employee.CellPhone))
                        //    {
                        //        //SMSService.SendSMS(template, employee.CellPhone, userId.ToString(), null);
                        //    }
                        //}
                    }
                    var errors = ModelState.Values.SelectMany(v => v.Errors);
                    // try / catch please
                    // put this in a try/catch
                    if (ModelState.IsValid)
                    {
                        timecardService.Update(timecard);
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult ProcessAllTimecards(string submit)
        {
            List <Timecard> timecards = timecardService.GetSubmittedTimecards().ToList();

            if (timecards != null)
            {
                TimecardApprovalViewModel vm = new TimecardApprovalViewModel
                {
                    ApprovalStatus = submit,
                    Timecards      = timecards
                };
                return(PartialView("_processAllTimecards", vm));
            }
            return(View("Index"));
        }
        public ActionResult ProcessSelectedTimecards(int[] selectedTimecardIds, string submit)
        {
            List <Timecard> timecards = new List <Timecard>();

            if (selectedTimecardIds != null)
            {
                foreach (int id in selectedTimecardIds)
                {
                    Timecard timecard = timecardService.GetById(id);
                    timecards.Add(timecard);
                }
                TimecardApprovalViewModel vm = new TimecardApprovalViewModel
                {
                    ApprovalStatus = submit,
                    Timecards      = timecards,
                };
                return(PartialView("_processSelectedTimecards", vm));
            }
            return(View("Index"));
        }