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 }
/// <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 })); }
/// <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); } }
/// <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);