Exemple #1
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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)));
        }