public Card EditCard(EditedCard edittedCard) { var parentCard = _cardContext.Card.Where(d => d.Id == edittedCard.Id && d.Version == edittedCard.Version).FirstOrDefault(); if (parentCard == null) { throw new ArgumentException("Edit operation can not be performd as the card doesnt exist"); } int version = _cardContext.Card.Where(d => d.Id == edittedCard.Id).Max(v => v.Version) + 1; var clonedCard = new Card(parentCard, version) { Title = edittedCard.Title, Description = edittedCard.Description, ImageContent = edittedCard.ImageContent, Favicon = edittedCard.Favicon, }; _cardContext.Card.Add(clonedCard); _cardContext.SaveChanges(); _logger.LogInformation("Raising a cardEdited event"); _cardEventHandler.Raise(new CardEditedEvent(clonedCard, parentCard.Version)); return(clonedCard); }
public ActionResult <Card> EditCard([FromBody] EditedCard card) { _logger.LogInformation("Edit of card {id} initiated", card.Id); var editedCard = _cardOperations.EditCard(card); if (editedCard == null) { return(NotFound()); } return(Ok(editedCard)); }