Exemplo n.º 1
0
        /// <summary>
        /// создание колоды
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <Deck> CreateDeck(CreateDeckRequest request)
        {
            using (var db = new DeckContext())
            {
                var result = new Deck();
                var exist  = db.Decks.FirstOrDefault(x => x.Title.ToLower() == request.Title.ToLower());
                if (exist != null)
                {
                    throw new Exception($"deck with title {request.Title} exist");
                }
                var cardsToDeck = string.Empty;
                if (request.Cards.Any())
                {
                    var selectedCards = request.Cards.Where(x => x.IsEnabled).OrderBy(x => x.SuitTitle).ThenBy(x => x.ValueTitle).ToList();
                    var cardsIds      = selectedCards.Select(x => x.Id).ToList();
                    cardsToDeck = cardsIds.SerializeToJson();
                }
                else
                {
                    cardsToDeck = new List <long>().SerializeToJson();
                }
                db.Decks.Add(new Deck()
                {
                    Title      = request.Title,
                    CardsIds   = cardsToDeck,
                    DateModify = DateTime.UtcNow
                });
                await db.SaveChangesAsync();

                return(result);
            }
        }
Exemplo n.º 2
0
        public async Task <long> AddDeck(string userId, Data.Deck deck, long lastModificationTimestamp)
        {
            RepeatedField <CardCollection> cards = new RepeatedField <CardCollection>();

            for (int i = 0; i < deck.Cards.Count; i++)
            {
                CardCollection cardInCollection = new CardCollection
                {
                    CardName = deck.Cards[i].CardName,
                    Amount   = deck.Cards[i].Amount
                };
                Debug.Log("Card in collection = " + cardInCollection.CardName + " , " + cardInCollection.Amount);
                cards.Add(cardInCollection);
            }

            CreateDeckRequest request = new CreateDeckRequest
            {
                UserId = userId,
                Deck   = new Deck
                {
                    Name   = deck.Name,
                    HeroId = deck.HeroId,
                    Cards  =
                    {
                        cards
                    }
                },
                LastModificationTimestamp = lastModificationTimestamp
            };

            CreateDeckResponse createDeckResponse = await Contract.CallAsync <CreateDeckResponse>(AddDeckMethod, request);

            return(createDeckResponse.DeckId);
        }
Exemplo n.º 3
0
        /// <summary>
        /// создание модели создания колоды
        /// </summary>
        /// <returns></returns>
        public async Task <CreateDeckRequest> CreateDeckModel()
        {
            var result = new CreateDeckRequest();
            var cards  = await _cardService.GetAllCards();

            result.Cards = cards.Select(x => x.Transform <CardDeckResponse>()).OrderBy(x => x.SuitTitle).ThenBy(x => x.ValueTitle).ToList();

            return(result);
        }
Exemplo n.º 4
0
        public async Task <ActionResult> Create(CreateDeckRequest deck)
        {
            if (ModelState.IsValid)
            {
                await service.CreateDeck(deck);

                return(RedirectToAction("Index"));
            }

            return(View(deck));
        }
        public CreateDeckRequestResponse Post(CreateDeckRequest request)
        {
            var agent = new UserModel();

            var createDeckInteractor = TryResolve <CreateDeckInteractor>();
            var createDeckInput      = request.ConvertTo <CreateDeckInput>();
            var createDeckOutput     = createDeckInteractor.Handle(agent, createDeckInput);

            var response = new CreateDeckRequestResponse {
                Result = createDeckOutput.DeckId
            };

            return(response);
        }
Exemplo n.º 6
0
        public async Task <IActionResult> CreateDeck([FromBody] CreateDeckRequest request)
        {
            var decks = await Services.DeckService.Find(request.DeckName);

            if (decks.Any())
            {
                return(BadRequest(string.Format(Resource.DeckAlreadyExists, request.DeckName)));
            }

            await Services.DeckService.Create(request.DeckName);

            decks = await Services.DeckService.Find(request.DeckName);

            var response = Mapper.MapToDeck(decks.First());
            await LinksService.AddLinksAsync(response);

            return(CreatedAtAction(nameof(CreateDeck), response));
        }
Exemplo n.º 7
0
 public Task <SummaryDeck> Create([FromBody] CreateDeckRequest createDeckRequest)
 {
     return(_deckBusiness.CreateAsync(new CreateDeck(UserId, createDeckRequest.Title, createDeckRequest.TextId)));
 }
Exemplo n.º 8
0
 public async Task <Deck> Create(CreateDeckRequest deck)
 {
     return(await _deckService.CreateDeck(deck));
 }