Ejemplo n.º 1
0
        public async Task InsertTrackTime_Sucess()
        {
            //Arrange
            var input = new TrackTimeDatabaseInput("67d537cb-123d-424b-a6d1-2cc5b2920430",
                                                   "ProjectBeets",
                                                   5, 1, 2, 2, 0, 2, 3, "Started working on setting the project up.",
                                                   "11/04/18", "11/10/18");
            //Act
            await _trackTimeRepo.InsertTrackTime(input);

            //Assert
        }
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
        /// <summary>
        /// Save user TrackTime data to the database
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task InsertTrackTime(TrackTimeDatabaseInput input)
        {
            var p = new DynamicParameters();

            p.Add("@p_UserGuid", input.UserGuid);
            p.Add("@p_ProjectName", input.ProjectName);
            p.Add("@p_Comments", input.Comments);
            p.Add("@p_StartDate", input.StartDate);
            p.Add("@p_EndDate", input.EndDate);
            p.Add("@p_Sun", input.HourSun);
            p.Add("@p_Mon", input.HourMon);
            p.Add("@p_Tues", input.HourTues);
            p.Add("@p_Wed", input.HourWed);
            p.Add("@p_Thurs", input.HourThurs);
            p.Add("@p_Fri", input.HourFri);
            p.Add("@p_Sat", input.HourSat);

            using (IDbConnection connection = new SqlConnection(_connectionString))
            {
                await connection.ExecuteAsync("sp_InsertTrackTime", p, commandType : CommandType.StoredProcedure);
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Inserts a new record in the database. If a record is already there for the date range then update it
 /// </summary>
 /// <param name="input"></param>
 /// <returns></returns>
 public async Task InsertTrackTime(TrackTimeDatabaseInput input)
 => await _ITrackTimeRepo.InsertTrackTime(input);