Esempio n. 1
0
        public async Task <IActionResult> CreateItem([FromBody] SaveItemResource saveItemResource)
        {
            saveItemResource.SellerId = getUserId();

            var validator            = new SaveItemResourceValidator();
            ValidationResult results = validator.Validate(saveItemResource);

            if (!results.IsValid)
            {
                return(BadRequest(results.Errors));
            }

            Item itemToCreate = _mapper.Map <SaveItemResource, Item>(saveItemResource);

            var newItem = await _itemService.CreateItem(itemToCreate);

            if (newItem == null)
            {
                return(NotFound());
            }

            var item = await _itemService.GetItemById(newItem.Id);

            // map item to itemResource before returning in an OkResult object
            ItemResource itemResource = _mapper.Map <Item, ItemResource>(item);

            return(Ok(itemResource));
        }
Esempio n. 2
0
        public async Task <IActionResult> UpdateItem(int id, [FromBody] SaveItemResource saveItemResource)
        {
            var currentItem = await _itemService.GetItemById(id);

            if (currentItem == null)
            {
                return(NotFound());
            }

            bool IsValid = await CheckIfUserIsItemSeller(id);

            if (!IsValid)
            {
                return(Unauthorized());
            }

            var validator            = new SaveItemResourceValidator();
            ValidationResult results = await validator.ValidateAsync(saveItemResource);

            if (!results.IsValid)
            {
                return(BadRequest(results.Errors));
            }

            Item modifiedItem = _mapper.Map <SaveItemResource, Item>(saveItemResource);

            await _itemService.UpdateItem(currentItem, modifiedItem);

            Item updatedItem = await _itemService.GetItemById(id);

            ItemResource updatedItemResource = _mapper.Map <Item, ItemResource>(updatedItem);

            return(Ok(updatedItemResource));
        }