public async Task <ApiResponse <WorkLogDto> > UpdateWorkLog(WorkLogUpdateRequest workLogUpdateRequest) { try { var workLog = await _worklogRepository.GetByIdAsync(workLogUpdateRequest.WorkLogId); if (workLog == null) { return(new ApiResponse <WorkLogDto>() { StatusCode = 400, IsSuccess = false, ResponseException = new ApiError(ErrorCode.WorkLogNotFound, ErrorCode.WorkLogNotFound.GetDescription()) }); } workLog.Description = workLogUpdateRequest.Description; workLog.ActivityType = workLogUpdateRequest.ActivityType; workLog.StartDate = workLogUpdateRequest.StartDate; workLog.TimeSpent = workLogUpdateRequest.TimeSpent; workLog = await _worklogRepository.UpdateAsync(workLog); return(new ApiResponse <WorkLogDto>(_worklogMapper.MapToModel(workLog))); } catch (Exception e) { _logger.LogError(e, "An error occured while updating workLog"); return(ApiResponse <WorkLogDto> .InternalError()); } }
public async Task UpdateWorkLog_WhenModelValid_UpdatesWorkLogInDatabase() { var request = new WorkLogUpdateRequest() { Description = "description", ActivityType = ActivityType.Coding, StartDate = DateTimeOffset.MaxValue.AddDays(-3333), TimeSpent = TimeSpan.FromDays(2).Seconds, WorkLogId = WorklogsDbSet.Get().First().Id }; var httpResponse = await PostAsync(WorkLogControllerRoutes.UpdateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); var response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.VerifySuccessResponse(); var worklog = await GetWorkLogFromDatabase(request.WorkLogId); worklog.Description.Should().Be(request.Description); worklog.ActivityType.Should().Be(request.ActivityType); worklog.StartDate.Should().Be(request.StartDate); worklog.TimeSpent.Should().Be(request.TimeSpent); await ReSeedDatabase(); }
public async Task UpdateWorkLog_WhenWorkLogNotFound_ReturnsWorkLogNotFound() { var request = new WorkLogUpdateRequest() { Description = "description", ActivityType = ActivityType.Coding, StartDate = DateTimeOffset.MaxValue.AddDays(-3333), TimeSpent = TimeSpan.FromDays(2).Seconds, WorkLogId = Guid.NewGuid() }; var httpResponse = await PostAsync(WorkLogControllerRoutes.UpdateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); var response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.VerifyNotSuccessResponseWithErrorCodeAndMessage(ErrorCode.WorkLogNotFound); }
public async Task UpdateWorkLog_WhenModelNotValid_UpdatesWorkLogInDatabase() { var request = new WorkLogUpdateRequest() { ActivityType = ActivityType.Coding, StartDate = DateTimeOffset.MaxValue.AddDays(-3333), TimeSpent = TimeSpan.FromDays(2).Seconds, WorkLogId = WorklogsDbSet.Get().First().Id }; var httpResponse = await PostAsync(WorkLogControllerRoutes.UpdateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); var response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.CheckValidationException(2); request = new WorkLogUpdateRequest() { ActivityType = ActivityType.Coding, TimeSpent = TimeSpan.FromDays(2).Seconds, WorkLogId = WorklogsDbSet.Get().First().Id }; httpResponse = await PostAsync(WorkLogControllerRoutes.UpdateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.CheckValidationException(3); request = new WorkLogUpdateRequest() { ActivityType = ActivityType.Coding, WorkLogId = WorklogsDbSet.Get().First().Id }; httpResponse = await PostAsync(WorkLogControllerRoutes.UpdateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.CheckValidationException(4); }
public async Task <ApiResponse <WorkLogDto> > UpdateWorkLog([FromBody] WorkLogUpdateRequest request) { return(await _workLogService.UpdateWorkLog(request)); }