public async virtual Task <IActionResult> SetOrderAsync(ResourceOrderModel <TResource> resourceOrderModel)
        {
            if (!User.IsAuthorized(ResourceType))
            {
                return(Unauthorized());
            }

            var orderResourceEvent = new OrderResource <TResource>(resourceOrderModel);
            var context            = await _mediator.Send(orderResourceEvent);

            if (context != null)
            {
                resourceOrderModel = context;
            }

            if (resourceOrderModel.Errors.Any())
            {
                foreach (var error in resourceOrderModel.Errors)
                {
                    ModelState.AddModelError(error.Key, error.Value);
                }
            }

            if (!ModelState.IsValid)
            {
                return(PartialView("_Order", resourceOrderModel));
            }

            var update = await _repository.SetOrderAsync(resourceOrderModel);

            if (update <= 0)
            {
                return(BadRequest());
            }

            _logger.LogResourceOrdered(ResourceType);

            var resourceOrderedEvent = new ResourceOrdered <TResource>();
            await _mediator.Publish(resourceOrderedEvent);

            var resourcePersistedEvent = new ResourcePersisted <TResource>();
            await _mediator.Publish(resourcePersistedEvent);

            return(Ok());
        }
        public async virtual Task <IActionResult> GetOrderAsync(string facets = "")
        {
            if (!User.IsAuthorized(ResourceType))
            {
                return(Unauthorized());
            }

            var model = new ResourceOrderModel <TResource>()
            {
                Facets = facets
            };

            var resourceList = await _repository.GetOrderAsync(model);

            if (resourceList is null)
            {
                return(NotFound());
            }

            model.Resources = resourceList;

            return(PartialView("_Order", model));
        }