public async void UserCanCreateSalaryRateRequest() { await _context.AuthorizeAsAdmin(); await _context.CreateUser(); var request = new UserRateRequestRequest() { UserId = 4, Rate = 4000, Reasons = "I'm good manager", UpdatedAt = DateTime.Now }; var response = await _context.Client.PostAsJsonAsync("salary/request", request); response.StatusCode.Should().BeEquivalentTo(200); response = await _context.Client.GetAsync("salary/requests/4"); var requestsList = await response.Content.ReadAsAsync <ICollection <UserRateRequestAnswer> >(); var req = requestsList.First(); await _context.RemoveUser(4); req.Reasons.Should().Be(request.Reasons); req.Rate.Should().Be(request.Rate); req.UpdatedAt.Should().BeCloseTo(request.UpdatedAt); }
public async Task CreateSalaryRequest(UserRateRequestRequest request) { var user = await _userService.GetUser(request.UserId); Check.Value(user.ManagerId, "create request").NotEqualsTo(0, ErrorMessages.NoManagerAttachmentMsg); var rateReqRecord = await _dbContext.SalaryRateRequests .FirstOrDefaultAsync(s => s.UserId == request.UserId && s.UpdatedAt == request.UpdatedAt); Check.Value(rateReqRecord, "create request").IsNull(ErrorMessages.IncorrectDateUpdateMsg); var req = _mapper.Map <SalaryRateRequest>(request); req.Guid = Guid.NewGuid(); req.ManagerId = user.ManagerId; req.Status = Status.Pending; req.UserId = user.Id; _dbContext.SalaryRateRequests.Add(req); await _dbContext.SaveChangesAsync(); }
public async Task CreateRateRequest([FromBody] UserRateRequestRequest request) => await _salaryRatesService.CreateSalaryRequest(request);