public async Task <IActionResult> PutGift(Guid id, V1DTO.GiftDTO giftDTO) { // Don't allow wrong data if (id != giftDTO.Id) { _logger.LogError($"EDIT. Gift IDs do not match: giftId {giftDTO.Id}, id {id}"); return(BadRequest(new V1DTO.MessageDTO($"Could not change gift with this id: {id}"))); } var gift = await _bll.Gifts.FirstOrDefaultAsync(giftDTO.Id, User.UserGuidId()); if (gift == null) { _logger.LogError($"EDIT. No such gift: {giftDTO.Id}, user: {User.UserGuidId()}"); return(NotFound(new V1DTO.MessageDTO($"No gift found for id {id}"))); } // Allow changing own gifts only var personalGift = await _bll.Gifts.GetForUserAsync(id, User.UserGuidId()); if (personalGift == null) { _logger.LogError($"EDIT. Gift {giftDTO.Id} is not owned by user {User.UserGuidId()}"); return(NotFound(new V1DTO.MessageDTO($"No gift found for id {id}"))); } // Update existing Gift await _bll.Gifts.UpdateAsync(_mapper.Map(giftDTO), User.UserGuidId()); // Save changes to db await _bll.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult <V1DTO.GiftDTO> > PostGift(V1DTO.GiftDTO giftDTO) { // Create gift var bllEntity = _mapper.Map(giftDTO); // TODO: Move to BLL bllEntity.StatusId = new Guid(_activeId); // Active bllEntity.ActionTypeId = new Guid(_reservedId); // Reserve _bll.Gifts.Add(bllEntity, User.UserGuidId()); // Save to db await _bll.SaveChangesAsync(); giftDTO.Id = bllEntity.Id; return(CreatedAtAction( "GetGift", new { id = giftDTO.Id, version = HttpContext.GetRequestedApiVersion()?.ToString() ?? "0" }, giftDTO )); }