public async Task <IActionResult> AcceptReviewProposition([FromBody] AcceptReviewProposition acceptReviewProposition) { string email = User.Identity.Name; if (email == null) { return(BadRequest()); } await _orderService.AcceptReviewProposition(email, acceptReviewProposition); return(Ok()); }
public async Task AcceptReviewProposition(string email, AcceptReviewProposition acceptReviewProposition) { var user = await _userManager.FindByEmailAsync(email); using (IUnitOfWork unitOfWork = _unitOfWorkFactory.Create()) { var orderRepository = unitOfWork.Repository <Order>(); var propositionRepository = unitOfWork.Repository <ReviewProposition>(); var order = await orderRepository.GetAsync(acceptReviewProposition.OrderId); var proposition = await propositionRepository.GetAsync(acceptReviewProposition.ReviewPropositionId); if (order == null || proposition == null || order.CustomerId != user.Id || proposition.OrderId != order.Id) { return; } order.Status = OrderStatus.Pending; order.MechanicId = proposition.MechanicId; await unitOfWork.SaveAsync(); } }