예제 #1
0
        public async Task <CreateCategoryResult> CreateCategoryFromRequestAsync(
            [FromBody] CreateCategoryRequest request,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            AutoResetEvent       resetEvent = new AutoResetEvent(false);
            CreateCategoryResult result     = null;

            _domainEvents.Register("CreateCategoryFromRequestAsync", (CreateCategoryEvent e) =>
            {
                result = new CreateCategoryResult(request.RequestId, e);

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

            var command = request.GetCommand();

            await _circuitBreaker.ExecuteAsync(async() =>
                                               await _categoryCommandHandler.ExecuteAsync(command, cancellationToken)
                                               , cancellationToken);

            resetEvent.WaitOne(10000);

            _domainEvents.Unregister("CreateCategoryFromRequestAsync");

            return(result);
        }
예제 #2
0
        public IActionResult Create(CreateCatgegory model)
        {
            if (ModelState.IsValid)
            {
                var result = new CreateCategoryResult();
                result = Helper.ApiHelper <CreateCategoryResult> .HttpPostAsync("api/category/create", "POST", model);

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