示例#1
0
        public async Task <Item> CreateItem(ItemDtoCreate dtoCreate)
        {
            await using var transaction = await Context.Database.BeginTransactionAsync();

            var item = new Item
            {
                Name        = dtoCreate.Name,
                Description = dtoCreate.Description,
                Price       = dtoCreate.Price
            };
            await Context.Items.AddAsync(item);

            var doneCount = await Context.SaveChangesAsync();

            if (doneCount > 0)
            {
                MemoryCache.Set(item.Id, item, new MemoryCacheEntryOptions
                {
                    AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(5)
                });
                MemoryCache.Remove("items");
            }

            await transaction.CommitAsync();

            return(item);
        }
示例#2
0
        public async Task <IActionResult> Create([FromBody] ItemDtoCreate dtoCreate)
        {
            _logger.LogDebug($"Method {nameof(Create)}");
            var response = await _shopService.CreateItem(dtoCreate);

            return(Ok(response));
        }
示例#3
0
        public async Task <ItemDto> Post(ItemDtoCreate Item)
        {
            var entity = _mapper.Map <ItemEntity>(Item);

            entity = await _repository.Post(entity);

            return(_mapper.Map <ItemDto>(entity));
        }
示例#4
0
        public async Task <ActionResult> Post([FromBody] ItemDtoCreate item)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var result = await _service.Post(item);

                if (result == null)
                {
                    return(BadRequest());
                }

                return(Created(new Uri(Url.Link("Get", new { result.Codigo })), result));
            }
            catch (ArgumentException ex)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }