public async Task <ApiResponse <WorkLogDto> > CreateWorkLog(WorkLogDto dto) { try { var issueFoundResponse = await _issueService.GetIssueByIdAsync(dto.IssueId); if (!issueFoundResponse.IsSuccess) { return(issueFoundResponse.ToFailed <WorkLogDto>()); } var entityToAdd = _worklogMapper.MapToEntity(dto); entityToAdd.IssueId = dto.IssueId; entityToAdd.UserId = _userProvider.GetUserId(); entityToAdd = await _worklogRepository.AddAsync(entityToAdd); if (entityToAdd != null) { return(new ApiResponse <WorkLogDto>(dto)); } _logger.LogWarning("Failed to create entity {0}", JsonConvert.SerializeObject(dto)); return(new ApiResponse <WorkLogDto>() { StatusCode = 400, IsSuccess = false, ResponseException = new ApiError(ErrorCode.WorkLogCreationFailed, ErrorCode.WorkLogCreationFailed.GetDescription()) }); } catch (Exception ex) { _logger.LogWarning(ex, "An error occured while creating new worklog {0} ", JsonConvert.SerializeObject(dto)); return(ApiResponse <WorkLogDto> .InternalError()); } }
/// <summary> /// 恢复数据 /// </summary> /// <param name="Id"></param> /// <returns></returns> public JsonResult Recovery(int Id) { WorkLogDto dto = _workLogContract.Edit(Id); OperationResult oper = _workLogContract.Recovery(Id); AddWorkLogCount(dto.WorkLogAttributeId, -1); return Json(oper); }
public JsonResult Create(WorkLogDto dto) { dto.StaffId = AuthorityHelper.OperatorId ?? 0; OperationResult oper = _workLogContract.Insert(dto); AddWorkLogCount(dto.WorkLogAttributeId, 1); return Json(oper); }
private async Task CheckWorkLogAddedToDatabase(WorkLogDto workLog, int expectedCount) { var context = GetService <TimeTrackingDbContext>(); var workLogInDatabase = await context.WorkLogs.LastAsync(); context.WorkLogs.Should().HaveCount(expectedCount); workLog.Should().BeEquivalentTo(workLogInDatabase, opt => opt.ExcludingMissingMembers()); }
public JsonResult Update(WorkLogDto dto) { //数据提交时StaffId莫名丢失,在此重新赋值 WorkLogDto dto_old = _workLogContract.Edit(dto.Id); dto.StaffId = dto_old.StaffId; OperationResult res = _workLogContract.Update(dto); return Json(res); }
public JsonResult AddWorkLog(WorkLogDto dto) { try { OperationResult oper = _workLogContract.Insert(dto); return(Json(oper)); } catch (Exception) { return(Json(new OperationResult(OperationResultType.Error, "系统错误"))); } }
public async Task CreateWorkLog_WhenIssueNotFound_ReturnsIssueNotFound() { var request = new WorkLogDto() { Description = "description", StartDate = DateTimeOffset.Now, IssueId = Guid.NewGuid(), ActivityType = ActivityType.Research, TimeSpent = TimeSpan.FromDays(2).Seconds, }; var httpResponse = await PostAsync(WorkLogControllerRoutes.CreateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); var response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.VerifyNotSuccessResponseWithErrorCodeAndMessage(ErrorCode.IssueNotFound); }
public async Task CreateWorkLog_WhenNotValidModelPassed_ReturnsValidationError() { //issue id not valid var request = new WorkLogDto() { Description = "description", StartDate = DateTimeOffset.Now, ActivityType = ActivityType.Research, TimeSpent = TimeSpan.FromDays(2).Seconds }; var httpResponse = await PostAsync(WorkLogControllerRoutes.CreateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); var response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.CheckValidationException(1); request = new WorkLogDto() { StartDate = DateTimeOffset.Now, ActivityType = ActivityType.Research, TimeSpent = TimeSpan.FromDays(2).Seconds }; httpResponse = await PostAsync(WorkLogControllerRoutes.CreateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.CheckValidationException(3); request = new WorkLogDto() { StartDate = DateTimeOffset.Now, ActivityType = ActivityType.Research }; httpResponse = await PostAsync(WorkLogControllerRoutes.CreateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.CheckValidationException(4); }
public async Task CreateWorkLog_WhenModelValid_CreatesWorkLogInDbAndReturnSuccessResponse() { var workLogCount = WorklogsDbSet.Get().Count(); var request = new WorkLogDto() { Description = "description", StartDate = DateTimeOffset.Now, IssueId = IssuesDbSet.Get().First().Id, ActivityType = ActivityType.Research, TimeSpent = TimeSpan.FromDays(2).Seconds, }; var httpResponse = await PostAsync(WorkLogControllerRoutes.CreateWorkLog, request); httpResponse.EnsureSuccessStatusCode(); var response = await httpResponse.BodyAs <ApiResponse <WorkLogDto> >(); response.VerifySuccessResponse(); await CheckWorkLogAddedToDatabase(response.Data, workLogCount + 1); response.VerifySuccessResponse(); await ReSeedDatabase(); }
public async Task <ApiResponse <WorkLogDto> > CreateWorkLog([FromBody] WorkLogDto dto) { return(await _workLogService.CreateWorkLog(dto)); }
/// <summary> /// 备注展示 /// </summary> /// <returns></returns> public ActionResult ShowNotes(int Id) { WorkLogDto dto = _workLogContract.Edit(Id); ViewBag.Notes = dto.Notes; return PartialView(); }
/// <summary> /// 初始化修改数据界面 /// </summary> /// <returns></returns> public ActionResult Update(int Id) { WorkLogDto dto = _workLogContract.Edit(Id); return PartialView(dto); }