public TimeRequestModelBuilder() { _timeRequest = new MoreTimeRequest() { Alerted = false, Expired = false, LengthInMinutes = TimeConstants.DefaultRequestLengthInMinutes, MinutesToAdjustClockBy = TimeConstants.DefaultRequestLengthInMinutes, TimeAdjustmentAtCreationTime = 0, RequestTimeStamp = DateTime.Now, UserId = "Some user" }; }
public int GetTimeDifferenceSinceRequest( MoreTimeRequest request, int accumulatedTime, ITimeTravelClock clock) { var negativeTimeDifference = request.TimeAdjustmentAtCreationTime * -1; var timeNowFromRequestUserPerspective = RemoveSeconds(clock.Now.AddMinutes(negativeTimeDifference)); var requestTimeWithoutSeconds = RemoveSeconds(request.RequestTimeStamp); var timeDifference = Convert.ToInt32( timeNowFromRequestUserPerspective .Subtract(requestTimeWithoutSeconds) .TotalMinutes); return(timeDifference); }
public bool IsTimeRequestReadyForAlert( MoreTimeRequest timeRequest, int accumulatedTime, ITimeTravelClock clock) { bool alert = false; if (timeRequest.Alerted == false) { var timeDifference = GetTimeDifferenceSinceRequest( timeRequest, accumulatedTime, clock); if (timeDifference >= timeRequest.LengthInMinutes) { alert = true; } } return(alert); }
public bool HasTimeRequestJustExpired( MoreTimeRequest timeRequest, int accumulatedTime, ITimeTravelClock clock) { bool expired = false; if (timeRequest.Expired == false) { var timeDifference = GetTimeDifferenceSinceRequest( timeRequest, accumulatedTime, clock); if (timeDifference >= timeRequest.LengthInMinutes) { expired = true; } } return(expired); }
public IActionResult Create(MoreTimeRequest newRequest) { CancelAnyUnexpiredRequestsForThisUser(newRequest.UserId); var negativeTimeDifference = _timeTracker.AccumulatedTimeDifference * -1; var newItem = new MoreTimeRequest { RequestTimeStamp = _clock.Now.AddMinutes(negativeTimeDifference), Expired = false, Alerted = false, LengthInMinutes = newRequest.LengthInMinutes, MinutesToAdjustClockBy = newRequest.LengthInMinutes, TimeAdjustmentAtCreationTime = _timeTracker.AccumulatedTimeDifference, UserId = newRequest.UserId }; _timeRequestData.AddTimeRequest(_dbContext, newItem); _timeRequestData.SaveChanges(_dbContext); return(CreatedAtRoute( "GetAlert", new { userId = newRequest.UserId }, newItem)); }
public void UpdateTimeRequest(MoreTimeRequestContext context, MoreTimeRequest request) { var timeRequestToUpdate = _moreTimeRequests.Where(x => x.Id == request.Id).First(); timeRequestToUpdate.Update(request); }
public void AddTimeRequest(MoreTimeRequestContext context, MoreTimeRequest moreTimeRequest) { _idIncrementer++; moreTimeRequest.Id = _idIncrementer; _moreTimeRequests.Add(moreTimeRequest); }