Esempio n. 1
0
        public async Task <IActionResult> Post([FromBody] AddressRequest request)
        {
            if (request == null)
            {
                return(BadRequest("Invalid payload"));
            }

            var command  = new AddressCreatorCommand(request);
            var response = await creatorAddress.handleAsync(command);

            if (response.error)
            {
                return(BadRequest("Registration error"));
            }

            var responseApi = response.results;

            return(Ok(responseApi));
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        public async Task <Response <Address> > handleAsync(AddressCreatorCommand model)
        {
            var response = new Response <Address>();

            var filter = new StateFilter();

            filter.setQuery(StateProjections.basicOne.Key);

            var msg    = new StateFindFromCacheMsg(filter);
            var result = await searchState.handleAsync(msg);

            using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) {
                try {
                    foreach (var item in model.request.listRequest)
                    {
                        var idState = result.Where(x => x.initials == item.initialsState).Select(x => x.id).FirstOrDefault();

                        if (idState == 0)
                        {
                            response.error = true;
                            return(response);
                        }

                        var form = new AddressForm(item.name, idState);

                        var entity = await creator.create(form);

                        response.results.Add(entity);
                    }

                    transaction.Complete();
                }
                catch (System.Exception) {
                    response.error = true;
                }
            }

            return(response);
        }