/// <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); } }
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); }
/// <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); }
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); }
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)); }
public Task <SummaryDeck> Create([FromBody] CreateDeckRequest createDeckRequest) { return(_deckBusiness.CreateAsync(new CreateDeck(UserId, createDeckRequest.Title, createDeckRequest.TextId))); }
public async Task <Deck> Create(CreateDeckRequest deck) { return(await _deckService.CreateDeck(deck)); }