public ActionResult Put(string id, [FromBody] VacationRequestDto value) { var vacationModel = new VacationModel { Comment = value.Comment, From = value.From, To = value.To, Id = Guid.Parse(id) }; if (!string.IsNullOrWhiteSpace(value.Type)) { vacationModel.Type = Enum.Parse <VacationType>(value.Type, true); } if (!string.IsNullOrWhiteSpace(value.State)) { vacationModel.State = Enum.Parse <VacationState>(value.State, true); } var success = _service.UpdateVacation(vacationModel); Console.WriteLine($" update success? { success }"); return(Ok()); }
public IActionResult Patch([FromBody] VacationRequestDto request) { var user = _accessTokenProvider.GetTokenPayload(); if (user == null) { return(Unauthorized()); } if (!user.IsManager) { return(StatusCode(403)); } if (request?.NewState == null || !Enum.IsDefined(typeof(VacationRequestState), request.NewState)) { _logger.Warning("Invalid request update", new { user, request }); return(BadRequest()); } if (!_vacationRepository.UpdateVacationRequest(request, user.UserId)) { return(StatusCode(403)); } if (request.NewState != VacationRequestState.Pending) { var updatedRequest = _vacationRepository.GetVacationRequest(request.RequestId); var requestUser = _userRepository.GetUser(updatedRequest.UserId, null); _mailHelper.SendVacationRequestStateMail(requestUser, updatedRequest); } return(Accepted()); }
public async Task AddVacation([FromBody] VacationRequestDto vacationRequestDto) { CreateVacation command = new CreateVacation(vacationRequestDto.EmployeeId, new Vacation.Contract.Vacation.ValueObject.VacationInfo() { EmployeeId = vacationRequestDto.EmployeeId, Start = vacationRequestDto.StartDate, End = vacationRequestDto.EndDate, Status = Vacation.Contract.Vacation.ValueObject.Status.Pending }); await _commandBus.Send(command); }
public bool UpdateVacationRequest(VacationRequestDto request, int userId) { const string cmd = "[spUpdateVacationRequest]"; var param = new DynamicParameters(new { requestId = request.RequestId, newState = request.NewState, userId }); param.Add("@isAllowed", direction: ParameterDirection.ReturnValue); using (var con = _dbHelper.GetConnection()) { con.Execute(cmd, param, commandType: CommandType.StoredProcedure); return(param.Get <int>("@isAllowed") == 1); } }
public VacationRequestDto GetVacation(string id) { var vacationModel = _service.Vacations.FirstOrDefault(x => x.Id.ToString() == id); if (vacationModel == null) { throw new ArgumentException(); } var dto = new VacationRequestDto { Id = vacationModel.Id.ToString(), To = vacationModel.To, From = vacationModel.From, Comment = vacationModel.Comment, State = vacationModel.State.ToString().ToLowerInvariant(), Type = vacationModel.Type.ToString().ToLowerInvariant() }; dto._links.Add("self", new RelationDataDto(Url.RouteUrl(nameof(VacationRequestController) + "." + nameof(GetVacation), new { id = dto.Id }))); return(dto); }
public VacationRequestListDto GetVacationList() { var dto = new VacationRequestListDto(); dto.Values.AddRange( _service.Vacations.Select(vacation => { var vacationRequestDto = new VacationRequestDto { Id = vacation.Id.ToString(), To = vacation.To, From = vacation.From, Comment = vacation.Comment, State = vacation.State.ToString().ToLowerInvariant(), Type = vacation.Type.ToString().ToLowerInvariant() }; vacationRequestDto._links.Add("self", new RelationDataDto(Url.RouteUrl(nameof(VacationRequestController) + "." + nameof(GetVacationView), new { id = vacation.Id }))); return(vacationRequestDto); })); dto._links.Add("self", new RelationDataDto(Url.RouteUrl(nameof(VacationRequestController) + "." + nameof(GetVacationList)))); return(dto); }
public ActionResult Post([FromBody] VacationRequestDto value) { var vacationModel = new VacationModel { Comment = value.Comment, From = value.From, To = value.To, }; if (!string.IsNullOrWhiteSpace(value.Type)) { vacationModel.Type = Enum.Parse <VacationType>(value.Type, true); } if (!string.IsNullOrWhiteSpace(value.State)) { vacationModel.State = Enum.Parse <VacationState>(value.State, true); } var vacationRequest = _service.RequestVacation(vacationModel); return(Created(Url.RouteUrl(nameof(VacationRequestController) + "." + nameof(GetVacation), new { id = vacationRequest.ToString() }), _service.Vacations.FirstOrDefault(id => id.Id == vacationRequest))); }