Ejemplo n.º 1
0
        public async Task <IActionResult> Comment(CommentRequisitionModel model)
        {
            if (ModelState.IsValid)
            {
                var requisition = await _dbContext.Requisitions.GetRequisitionById(model.RequisitionId);

                if ((await _authorizationService.AuthorizeAsync(User, requisition, Policies.Accept)).Succeeded)
                {
                    try
                    {
                        await _requisitionService.Comment(requisition, User.GetUserId(), User.TryGetImpersonatorId(), model.CustomerComment);
                    }
                    catch (InvalidOperationException ex)
                    {
                        _logger.LogError("Failed to comment requisition, RequisitionId: {requisition.RequisitionId}, message {Message}", requisition.RequisitionId, ex.Message);
                        return(RedirectToAction("View", "Order", new { id = requisition.Request.OrderId, errormessage = ex.Message }));
                    }
                    return(RedirectToAction("View", "Order", new { id = requisition.Request.OrderId, tab = "requisition" }));
                }
                return(Forbid());
            }
            return(RedirectToAction(nameof(View), new { id = model.RequisitionId }));
        }