public async Task <IActionResult> EditOnlyName(TimeOffRequestDTO req) { User curentUser = await _userManager.GetUserAsync(HttpContext.User); await requestService.UpdateAsync(req, curentUser); return(RedirectToAction(nameof(List))); }
public Task UpdateAsync(TimeOffRequestDTO requestDTO, User user) { if (requestDTO == null) { throw new ArgumentNullException(nameof(requestDTO)); } var request = unitOfWork.TimeOffRequests.Get(requestDTO.Id); if (request == null) { throw new EntityNotFoundException <TimeOffRequest>(requestDTO.Id); } if (IfApprovedAtLeastOnce(requestDTO.Id)) { request.Note = requestDTO.Note; } else { request.StartsAt = requestDTO.StartsAt; request.EndsOn = requestDTO.EndsOn; request.Note = requestDTO.Note; if (request.TypeId != (int)requestDTO.TypeId) { request.TypeId = (int)requestDTO.TypeId; request.Policy = GetEmployeePositionTimeOffPolicyByTypeAndPosition( (int)requestDTO.TypeId, user.PositionId); } var currentUsersApproveRequestId = request.Approvals.Select(i => i.UserId); var newUsersApproveRequestId = requestDTO.ApproversId; bool isEqual = (currentUsersApproveRequestId.Count() == newUsersApproveRequestId.Count() && (!currentUsersApproveRequestId.Except(newUsersApproveRequestId).Any() || !newUsersApproveRequestId.Except(currentUsersApproveRequestId).Any()));//equality test of current and new approvers if (!isEqual) { foreach (var approval in request.Approvals) { unitOfWork.RequestApprovals.Delete(approval.Id); } CreateTimeOffRequestApprovalsForRequest(request, requestDTO.ApproversId); } } return(unitOfWork.SaveAsync()); }
public async Task <IActionResult> Create(TimeOffRequestDTO req) { User curentUser = await _userManager.GetUserAsync(HttpContext.User); if (ModelState.IsValid) { await requestService.CreateAsync(req, curentUser); return(RedirectToAction(nameof(List))); } return(Create()); }
public Task CreateAsync(TimeOffRequestDTO requestDTO, User user) { if (requestDTO == null) { throw new ArgumentNullException(nameof(requestDTO)); } var entry = mapper.Map <TimeOffRequestDTO, TimeOffRequest>(requestDTO); entry.UserId = user.Id; entry.Policy = GetEmployeePositionTimeOffPolicyByTypeAndPosition((int)requestDTO.TypeId, user.PositionId); unitOfWork.TimeOffRequests.Create(entry); CreateTimeOffRequestApprovalsForRequest(entry, requestDTO.ApproversId); return(unitOfWork.SaveAsync()); }
public IActionResult EditGetRequest(int id) { TransferringRequestToEdit = requestService.GetById(id, true); return(RedirectToAction("Edit")); }