Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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 }));
            }
        }