Beispiel #1
0
        public async Task AnswerSalaryRateRequest(AnswerSalaryRateRequestRequest req)
        {
            req.Validate(new Validator());
            var requestsInChain = await _db.GetSalaryRequestsByChainIdNewestFirst(req.RequestChainId);

            Check.Value(requestsInChain.Count).NotEqualsTo(0, "Request chain with specified ID does not exist");

            var salaryRateRequest  = req.ConvertToSalaryRateRequest();
            var previousSRRInChain = requestsInChain.First();

            salaryRateRequest.SuggestedRate           = previousSRRInChain.SuggestedRate;
            salaryRateRequest.SenderId                = previousSRRInChain.SenderId;
            salaryRateRequest.Reason                  = previousSRRInChain.Reason;
            salaryRateRequest.SalaryRateRequestStatus = previousSRRInChain.SalaryRateRequestStatus;
            await _db.InsertSalaryRequest(salaryRateRequest);
        }
        public async Task ManagerCanAnswerRequest()
        {
            var request = new AnswerSalaryRateRequestRequest
            {
                InternalComment         = "Test",
                RequestChainId          = 1,
                ReviewerComment         = "Test",
                SalaryRateRequestStatus = SalaryRateRequestStatus.Fulfilled
            };

            using (new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var amountOfSRRsBefore = (await Api.ConnectionFactory.GetAllSalaryRequests()).Count();
                var response           = await Api.ManagerUser.PostAsJsonAsync("api/v1/manager/requests", request);

                var amountOfSRRsAfter = (await Api.ConnectionFactory.GetAllSalaryRequests()).Count();

                response.StatusCode.Should().BeEquivalentTo(200);
                amountOfSRRsAfter.Should().BeGreaterThan(amountOfSRRsBefore);
            }
        }
        public async Task ManagerCannotMakeInvalidRequestAnswer(int chainId,
                                                                string reviewerComment, SalaryRateRequestStatus status)

        {
            var request = new AnswerSalaryRateRequestRequest
            {
                RequestChainId          = chainId,
                ReviewerComment         = reviewerComment,
                SalaryRateRequestStatus = status
            };

            using (new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var amountOfSRRsBefore = (await Api.ConnectionFactory.GetAllSalaryRequests()).Count();
                var response           = await Api.ManagerUser.PostAsJsonAsync("api/v1/manager/requests", request);

                var amountOfSRRsAfter = (await Api.ConnectionFactory.GetAllSalaryRequests()).Count();

                response.StatusCode.Should().BeEquivalentTo(400);
                amountOfSRRsAfter.Should().Be(amountOfSRRsBefore);
            }
        }
Beispiel #4
0
 public async Task AnswerSalaryRateRequest([FromBody] AnswerSalaryRateRequestRequest req)
 {
     req.ReviewerId = this.GetLoggedUserId();
     await _salaryRateRequestService.AnswerSalaryRateRequest(req);
 }