public async Task <IActionResult> DisplayTrackTimeDetails(string startDate, string endDate) { if (TempData.Peek("userName") == null) { return(UserNotAllowedAccess()); } //get the track time details for the newly created records var getTrackTimeInput = new GetTrackTimeDatabaseInput(TempData.Peek("userGuid").ToString(), startDate, endDate); var trackTimeDetails = await _ITrackTimeDomain.GetTrackTime(getTrackTimeInput); //Set the UserTrackTimeList property of the ViewModel TrackTimeList trackTimeDetailsList = new TrackTimeList { UserTrackTimeList = trackTimeDetails }; trackTimeDetailsList.IsCurrentRecord = true; if (!_ITrackTimeDomain.IsCurrentRecord(startDate, endDate)) { TempData.Add("ReadonlyTrackTime", "This is record is for a previous week's Track Time."); trackTimeDetailsList.IsCurrentRecord = false; //return RedirectTo("TrackTime", "DisplayReadonlyTrackTime"); } //return the View and pass in the user's track time details list return(View(trackTimeDetailsList)); }
/// <summary> /// Save the user's track time data /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <IActionResult> SaveTrackTime(TrackTimeList input) { if (TempData.Peek("userName") == null) { return(UserNotAllowedAccess()); } var workHourTrackerList = new WorkHourTrackerListResult() { Errors = new List <string>(), WorkHourTrackList = new List <dynamic>() }; //get the start and end dates so we can display the track time details page when this operation is done string startOfWeek = input.UserTrackTimeList[0].StartDate; string lastOfWeek = input.UserTrackTimeList[0].EndDate; //if the ModelState is invalid return the user to the CreateProject page and show them the validation errors if (!ModelState.IsValid) { List <string> errors = ModelState.Values.SelectMany(p => p.Errors.Select(x => x.ErrorMessage)).ToList(); TempData.Add("SaveTrackTimeError", errors); return(RedirectToAction("DisplayTrackTimeDetails", "TrackTime", new { startDate = startOfWeek, endDate = lastOfWeek })); } try { //foreach record in the input list, save the new track time data foreach (var project in input.UserTrackTimeList) { var saveTrackTimeInput = new TrackTimeDatabaseInput(TempData.Peek("userGuid").ToString(), project.ProjectName, project.HourSun, project.HourMon, project.HourTues, project.HourWed, project.HourThurs, project.HourFri, project.HourSat, project.Comments, project.StartDate, project.EndDate); await _ITrackTimeDomain.InsertTrackTime(saveTrackTimeInput); } } catch (Exception) { throw; } workHourTrackerList.Errors.Add("TrackTime data has been saved!"); TempData.Add("SaveTrackTime", workHourTrackerList.Errors); return(RedirectToAction("DisplayTrackTimeDetails", "TrackTime", new { startDate = startOfWeek, endDate = lastOfWeek })); }
public IActionResult DisplayReadonlyTrackTime() { if (TempData.Peek("userName") == null) { return(UserNotAllowedAccess()); } GetTrackTimeDatabaseOutput[] array = (GetTrackTimeDatabaseOutput[])TempData["ReadonlyTrackTime"]; TrackTimeList trackTimeList = new TrackTimeList(); for (int i = 0; i < array.Length; i++) { trackTimeList.UserTrackTimeList.Add(array[i]); } return(View(trackTimeList)); }