Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        /// <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 }));
        }
Ejemplo n.º 3
0
        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));
        }