public async Task <IActionResult> Accept([FromBody] ComplaintAcceptModel model) { if (model == null) { return(ReturnError(ErrorCodes.IncomingPayloadIsMissing, nameof(Accept))); } try { var brokerId = User.TryGetBrokerId().Value; var apiUserId = User.UserId(); _ = await _apiOrderService.GetOrderAsync(model.OrderNumber, brokerId); var user = await _apiUserService.GetBrokerUser(model.CallingUser, brokerId); var complaint = await GetCreatedComplaint(model.OrderNumber, brokerId); _complaintService.Accept(complaint, user?.Id ?? apiUserId, user != null ? (int?)apiUserId : null); await _dbContext.SaveChangesAsync(); //End of service return(Ok(new ResponseBase())); } catch (InvalidApiCallException ex) { return(ReturnError(ex.ErrorCode, nameof(Accept))); } }
public void Accept(ComplaintStatus status) { var service = new ComplaintService(_tolkDbContext, _clock, _notificationService, _logger); var complaint = new Complaint { Status = status }; service.Accept(complaint, 1, null); }
public void Accept_InvalidStatus(ComplaintStatus status) { var service = new ComplaintService(_tolkDbContext, _clock, _notificationService, _logger); var complaint = new Complaint { Status = status }; Assert.Throws <InvalidOperationException>(() => service.Accept(complaint, 1, null)); }
public async Task <IActionResult> Accept(int complaintId) { var complaint = await _dbContext.Complaints.GetFullComplaintById(complaintId); if (ModelState.IsValid) { if ((await _authorizationService.AuthorizeAsync(User, complaint, Policies.Accept)).Succeeded) { if (!complaint.CanAnswer) { _logger.LogWarning("Wrong status when trying to Accept complaint. Status: {complaint.Status}, ComplaintId: {complaint.ComplaintId}", complaint.Status, complaint.ComplaintId); return(RedirectToAction("View", "Request", new { id = complaint.RequestId, tab = "complaint" })); } _complaintService.Accept(complaint, User.GetUserId(), User.TryGetImpersonatorId()); await _dbContext.SaveChangesAsync(); return(RedirectToAction("View", "Request", new { id = complaint.RequestId, tab = "complaint" })); } return(Forbid()); } return(RedirectToAction("View", "Request", new { id = complaint.RequestId, tab = "complaint" })); }