public async Task TestGameCollectionsByNullParam_OK()
        {
            try
            {
                var result = await _gamesController.GetGameCollections(null);

                Assert.IsNotNull(result);
                Assert.IsInstanceOfType(((ObjectResult)result).Value, typeof(GameCollectionDTOOut));
                GameCollectionDTOOut gameCollectionDTOOut = (GameCollectionDTOOut)((ObjectResult)result).Value;
                Assert.IsFalse(gameCollectionDTOOut.Gamecollections.Count == 0);
            }
            catch (Exception ex)
            {
                Assert.Fail();
            }
        }
        public async Task TestGameCollectionsByAnotherGameCollectionId_OK()
        {
            try
            {
                var result = await _gamesController.GetGameCollections(2);

                Assert.IsNotNull(result);
                Assert.IsInstanceOfType(((ObjectResult)result).Value, typeof(GameCollectionDTOOut));
                GameCollectionDTOOut gameCollectionDTOOut = (GameCollectionDTOOut)((ObjectResult)result).Value;
                Assert.IsFalse(gameCollectionDTOOut.Gamecollections.Count == 0);
                Assert.AreEqual(gameCollectionDTOOut.Gamecollections.Select(x => x.Games).ToList()[0].Count, 8);
            }
            catch (Exception ex)
            {
                Assert.Fail();
            }
        }
Пример #3
0
        /// <summary>
        /// Used for fetching Game colections information based on gamecollectonId or fecth  all by passing NUll from Databse.
        /// </summary>
        /// <param name="gameCollectionId"></param>
        /// <returns></returns>
        public static async Task <GameCollectionDTOOut> GetGameCollections(int?gameCollectionId)
        {
            GameCollectionDTOOut gameCollectionDTOOut = new GameCollectionDTOOut();

            try
            {
                using (POCDB_testContext pOCDB_testContext = new POCDB_testContext())
                {
                    var gameCollectionIdParam = new SqlParameter("@gameCollectionId", SqlDbType.Int);
                    gameCollectionIdParam.Value = (object)gameCollectionId ?? DBNull.Value;

                    gameCollectionDTOOut.Gamecollections = await pOCDB_testContext.GetGameCollectionsSP
                                                           .FromSql("Exec dbo.[GetGameCollections] @gameCollectionId=@gameCollectionId", gameCollectionIdParam)
                                                           .GroupBy(g => g.GameCollectionId)
                                                           .Select(x => new GamecollectionView
                    {
                        CollectionId = x.Key,
                        Name         = x.Select(z => z.GameCollectionName).FirstOrDefault(),
                        Games        = x.GroupBy(g => g.GameId)
                                       .Select(a => new Game
                        {
                            GameId = a.Key,
                            Name   = a.Select(b => b.GameName).FirstOrDefault(),
                        }).ToList(),
                        SubCollections = x.GroupBy(g => g.SubCollectionId)
                                         .Select(a => new GameSubCollection
                        {
                            SubCollectionId = a.Key,
                            Name            = a.Select(b => b.SubCollectionName).FirstOrDefault()
                        }).ToList()
                    }).ToListAsync();

                    return(gameCollectionDTOOut);
                };
            }
            catch (Exception ex)
            {
                return(new GameCollectionDTOOut());
            }
        }