/// <summary> /// Переводит информацию для редактирования карты из клиентской модели в серверную /// </summary> /// <param name="viewCard">Карта в клиентской модели</param> /// <returns>Карта в серверной модели</returns> public static Model.CardPatchInfo ConvertPatchInfo(View.CardPatchInfo viewCard) { if (viewCard == null) { throw new ArgumentNullException(nameof(viewCard)); } var modelCard = new Model.CardPatchInfo { Id = Guid.Empty, Answer = ConvertCardContent(viewCard.Answer), Question = ConvertCardContent(viewCard.Question) }; return(modelCard); }
public async Task <IActionResult> UpdateCardByIdAsync(string id, [FromBody] View.CardPatchInfo cardToUpdate, CancellationToken cancellationToken) { try { Guid.TryParse(HttpContext.User.Identity.Name, out var userId); Guid.TryParse(id, out var cardId); var card = CardItemConverter.ConvertPatchInfo(cardToUpdate); card.Id = cardId; var result = await cardsService.GetCardByIdAsync(cardId, cancellationToken); cardsService.CheckOwnership(result, userId); cardsService.UpdateCardByIdAsync(card, cancellationToken); return(Ok()); } catch (AppException ex) { return(BadRequest(new { message = ex.Message })); } }