public async Task CreateNewTrackTimeRecord() { //Arrange var createNewRecordInput = new CreateNewTrackTimeRecordDatabaseInput("ca0e7040-b42c-4cf3-9b4e-4a9a06129cec", "ProjectPaper", "11/11/18", "11/17/18"); var getTrackTimeInput = new GetTrackTimeDatabaseInput("ca0e7040-b42c-4cf3-9b4e-4a9a06129cec", "11/11/18", "11/17/18"); var trackTimeList = new List <GetTrackTimeDatabaseOutput>(); //Act await _trackTimeRepo.CreateNewTrackTimeRecord(createNewRecordInput); trackTimeList = await _trackTimeRepo.GetTrackTime(getTrackTimeInput); //Assert Assert.NotNull(trackTimeList); }
public async Task <bool> IsTrackTimeRecordCreatedForProject(CreateNewTrackTimeRecordDatabaseInput input) { var p = new DynamicParameters(); p.Add("@p_UserGuid", input.UserGuid); p.Add("@p_ProjectName", input.ProjectName); p.Add("@p_StartDate", input.StartDate); p.Add("@p_EndDate", input.EndDate); bool isCreated = false; using (IDbConnection connection = new SqlConnection(_connectionString)) { isCreated = await connection.QueryFirstAsync <bool>("sp_IsProjectTrackTimeCreated", p, commandType : CommandType.StoredProcedure); } return(isCreated); }
/// <summary> /// Create a new TrackTime record /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task CreateNewTrackTimeRecord(CreateNewTrackTimeRecordDatabaseInput input) { var p = new DynamicParameters(); p.Add("@p_UserGuid", input.UserGuid); p.Add("@p_ProjectName", input.ProjectName); p.Add("@p_StartDate", input.StartDate); p.Add("@p_EndDate", input.EndDate); var checkRecordExists = new DynamicParameters(); checkRecordExists.Add("@p_UserGuid", input.UserGuid); checkRecordExists.Add("@p_StartDate", input.StartDate); checkRecordExists.Add("@p_EndDate", input.EndDate); using (IDbConnection connection = new SqlConnection(_connectionString)) { await connection.ExecuteAsync("sp_CreateNewTrackTimeRecord", p, commandType : CommandType.StoredProcedure); } }
public async Task <bool> IsTrackTimeRecordCreatedForProject(CreateNewTrackTimeRecordDatabaseInput input) { return(await _ITrackTimeRepo.IsTrackTimeRecordCreatedForProject(input)); }
/// <summary> /// Creates a new TrackTime record for new week /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task CreateNewTrackTimeRecord(CreateNewTrackTimeRecordDatabaseInput input) { await _ITrackTimeRepo.CreateNewTrackTimeRecord(input); }
/// <summary> /// Create a new TrackTime record /// </summary> /// <returns></returns> public async Task <IActionResult> CreateNewTrackTimeRecord() { if (TempData.Peek("userName") == null) { return(UserNotAllowedAccess()); } string startOfWeek; string lastOfWeek; //see if there was at least one track time record created bool anyUpdates = false; try { var getProjectNamesInput = new GetProjectsByUserGuidDatabaseInput(TempData.Peek("userGuid").ToString()); //get the projects the user has been assigned var projectNamesList = await _ITrackTimeDomain.GetProjectsByUserGuid(getProjectNamesInput); //if the user has not been assigned a project yet throw this error if (projectNamesList.Count == 0) { throw new TrackTimeRecordAlreadyExistsException("You do not have any projects assigned. Please contact your Project Manager or Manager."); } //Get today's date var currentDay = DateTime.Now; //using today's date get the start and end dates of the week startOfWeek = _ITrackTimeDomain.FirstDayOfWeek(currentDay).ToShortDateString(); lastOfWeek = _ITrackTimeDomain.LastDayOfWeek(currentDay).ToShortDateString(); //foreach assigned project, create a new TrackTime record bool isRecordCreated = false; foreach (var project in projectNamesList) { var createTrackTimeInput = new CreateNewTrackTimeRecordDatabaseInput(TempData.Peek("userGuid").ToString(), project.ProjectName, startOfWeek, lastOfWeek ); //check to see if there already is a track time record for a proejct for the week isRecordCreated = await _ITrackTimeDomain.IsTrackTimeRecordCreatedForProject(createTrackTimeInput); //if no record exists then create one if (!isRecordCreated) { await _ITrackTimeDomain.CreateNewTrackTimeRecord(createTrackTimeInput); anyUpdates = true; } } if (!anyUpdates) { throw new TrackTimeRecordAlreadyExistsException($"A TrackTime entry has already been created for the week: {startOfWeek} - {lastOfWeek}"); } } catch (TrackTimeRecordAlreadyExistsException ex) { //The user clicked 'Create New Record' for a week in which a record is already created TempData.Add("CreateTrackTimeError", ex.Message); return(RedirectTo("TrackTime", "DisplayTrackTimeDateRange")); } catch (Exception ex) { TempData.Add("CreateTrackTimeError", ex.Message); return(RedirectTo("TrackTime", "DisplayTrackTimeDateRange")); } return(RedirectToAction("DisplayTrackTimeDetails", "TrackTime", new { startDate = startOfWeek, endDate = lastOfWeek })); }