Example #1
0
        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);
        }
Example #2
0
        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();
        }
Example #3
0
 public async Task CreateRateRequest([FromBody] UserRateRequestRequest request) =>
 await _salaryRatesService.CreateSalaryRequest(request);