public async Task <UpdateCategoryResult> UpdateCategoryFromRequestAsync(
            [FromBody] UpdateCategoryRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            AutoResetEvent       resetEvent = new AutoResetEvent(false);
            UpdateCategoryResult result     = null;

            _domainEvents.Register("UpdateCategoryFromRequestAsync", (UpdateCategoryEvent e) =>
            {
                result = new UpdateCategoryResult(request.RequestId, e);

                if (result.IsSuccessful)
                {
                    resetEvent.Set();
                }
            });

            var command = request.GetCommand();

            await _categoryCommandHandler.ExecuteAsync(command, cancellationToken);

            resetEvent.WaitOne(10000);

            _domainEvents.Unregister("UpdateCategoryFromRequestAsync");

            return(result);
        }
        public IActionResult Update(UpdateCategory model)
        {
            if (ModelState.IsValid)
            {
                var result = new UpdateCategoryResult();
                result = Helper.ApiHelper <UpdateCategoryResult> .HttpPostAsync("api/category/update", "PUT", model);

                if (result.CategoryId == 0)
                {
                    return(RedirectToAction("tables"));
                }
                ModelState.AddModelError("", result.Message);
                return(View(model));
            }
            return(View(model));
        }