Esempio n. 1
0
        public async Task <ItemAttributeView> AddItemAttributeView(ItemAttributeView itemAttributeView)
        {
            // check if the attributeNameIa already exist
            var allAttributeValueIdsForItem = await _context.ItemAttributes.Where(a => a.ItemId == itemAttributeView.ItemId).Select(b => b.AttributeValueId).ToListAsync();

            var allAttributeNameIdsForItem = await _context.AttributeValues.Where(a => allAttributeValueIdsForItem.Contains(a.AttributeValueId)).Select(b => b.AttributeNameId).ToListAsync();

            if (allAttributeNameIdsForItem.Contains(itemAttributeView.AttributeNameId))
            {
                throw new Exception("Cannot add itemAttribute with same AttributeNameId");
            }

            ItemAttribute newItemAttribute = _mapper.Map <ItemAttributeView, ItemAttribute>(itemAttributeView);

            var attributeValue = await _context.AttributeValues.Include(a => a.AttributeName).FirstOrDefaultAsync(a => a.AttributeNameId == itemAttributeView.AttributeNameId && a.AttributeValueId == itemAttributeView.AttributeValueId);

            if (attributeValue == null)
            {
                throw new Exception("Invalid AttributeNameId or AttributeValueId");
            }

            Log log = new Log {
                CreatedById = 2, CreatedAt = DateTime.UtcNow, UpdatedById = 2, UpdatedAt = DateTime.UtcNow
            };

            newItemAttribute.Log = log;
            _context.Add(newItemAttribute);
            await _context.SaveChangesAsync();

            ItemAttributeView savedItemAttributeView = _mapper.Map <AttributeValue, ItemAttributeView>(attributeValue);

            savedItemAttributeView.ItemId          = newItemAttribute.ItemId;
            savedItemAttributeView.LogId           = newItemAttribute.LogId;
            savedItemAttributeView.ItemAttributeId = newItemAttribute.ItemAttributeId;

            return(savedItemAttributeView);
        }
Esempio n. 2
0
        public async Task <ActionResult <ItemDataView> > PostItemAttribute(int itemId, [FromBody] ItemAttributeView itemAttributeView)
        {
            try
            {
                itemAttributeView.ItemId = itemId;

                if (ModelState.IsValid)
                {
                    var createdeItemAttributeView = await _itemRepository.AddItemAttributeView(itemAttributeView);

                    return(CreatedAtAction("Get", new { id = createdeItemAttributeView.ItemId }, createdeItemAttributeView));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest("Failed to save the ItemAttribute: " + ex.Message));
            }
        }