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); } }
public async Task AnswerSalaryRateRequest([FromBody] AnswerSalaryRateRequestRequest req) { req.ReviewerId = this.GetLoggedUserId(); await _salaryRateRequestService.AnswerSalaryRateRequest(req); }