public async Task <Result> UpdateWorkAsync(WorkUpdateDto workDto) { var resultValidation = ValidateRanteDateTime(workDto.StartTime, workDto.EndTime); if (!resultValidation.Success) { return(resultValidation); } var existWork = await _workRepository.ExistAsync(workDto.Id); if (!existWork) { return(new Result(Status.NotFund, $"Work with {nameof(workDto.Id)} does not exist")); } var work = await _workRepository.GetByIdAsync(workDto.Id); work.SetData( startTime: workDto.StartTime, endTime: workDto.EndTime, comment: workDto.Comment, hours: workDto.Hours ); await _workRepository.UpdateAsync(work); var result = await _mockyService.SendNotificationAsync("Lançamento de horas", "Um lançamento de horas foi atualizado"); if (!result.Success || !result.Data) { return(new Result(Status.Error, result.ErrorMessages)); } return(new Result()); }
public IActionResult UpdateWork(WorkUpdateDto model) { ViewBag.Priorities = new SelectList(_priorityService.GetAll(), "Id", "Description", model.PriorityId); if (ModelState.IsValid) { _workService.Update(_mapper.Map <Work>(model)); return(RedirectToAction("Index")); } return(View(model)); }
public async void UpdateWorkTest( Status expectedStatus, DateTime startTime, DateTime endTime ) { var developer = EntitiesFactory.NewDeveloper().Save(); var project = EntitiesFactory.NewProject(developerIds: new[] { developer.Id }).Save(); var work = EntitiesFactory.NewWork( id: Guid.NewGuid(), developerProjectId: project.DeveloperProjects.Single().Id ).Get(); var workDto = new WorkUpdateDto { Id = work.Id, StartTime = startTime, EndTime = endTime, Comment = RandomHelper.RandomString(180), Hours = 250 }; _workRepository.Setup(d => d.ExistAsync(workDto.Id)) .ReturnsAsync(expectedStatus != Status.NotFund); _workRepository.Setup(d => d.GetByIdAsync(workDto.Id)) .ReturnsAsync(work); _mockyRepository.Setup(m => m.SendNotificationAsync(It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(new Result <bool>(expectedStatus != Status.Error)); var service = new WorkService( _workRepository.Object, _developerRepository.Object, _projectRepository.Object, _mockyRepository.Object ); var result = await service.UpdateWorkAsync(workDto); Assert.Equal(expectedStatus, result.Status); if (expectedStatus == Status.Success) { _workRepository.Verify(d => d.UpdateAsync(work), Times.Once); _mockyRepository.Verify(d => d.SendNotificationAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once); Assert.Equal(workDto.Comment, work.Comment); Assert.Equal(workDto.StartTime, work.StartTime); Assert.Equal(workDto.EndTime, work.EndTime); Assert.Equal(workDto.Hours, work.Hours); } }
public async Task <ActionResult <Work> > UpdateWork(int workId, WorkUpdateDto workUpdateDto) { var work = await _unitOfWork.WorkRepository.GetWorkByIdAsync(workId); if (work == null) { return(NotFound("There is no work with given id")); } var workToUpdate = _mapper.Map(workUpdateDto, work); if (await _unitOfWork.SaveAll()) { return(Ok(workToUpdate)); } return(BadRequest("Saving work didn't succeed")); }
public IActionResult UpdateWork(WorkUpdateDto model) { if (ModelState.IsValid) { _workService.Update(new Work { Id = model.Id, Description = model.Description, Name = model.Name, UrgencyId = model.UrgencyId }); return(RedirectToAction("Index")); } ViewBag.Urgencies = new SelectList(_urgenyService.GetAll(), "Id", "Description", model.UrgencyId); return(View(model)); }