Ejemplo n.º 1
0
        public void CanDeleteGuildAndSaveToDatabase()
        {
            DbContextOptions <GuildAPIDbContext> options = new DbContextOptionsBuilder <GuildAPIDbContext>()
                                                           .UseInMemoryDatabase("CanDeleteGuildAndSaveToDatabase")
                                                           .Options;

            using GuildAPIDbContext context = new GuildAPIDbContext(options);
            GamesService gameService = new GamesService(context);
            GamesDTO     gamesDTO    = new GamesDTO()
            {
                Name = "Odins Game"
            };
            var          createdGame  = gameService.Create(gamesDTO);
            GuildService guildService = new GuildService(context, gameService);

            Assert.Equal(1, context.Games.CountAsync().Result);
            GuildsDTO guild = new GuildsDTO()
            {
                Name = "Odin Slayers"
            };
            var creation    = guildService.Create(guild);
            var association = gameService.AddGameGuild(createdGame.Result.Id, creation.Result.Id);

            Assert.Equal(1, context.Guilds.CountAsync().Result);
            var delete = guildService.Delete(creation.Result.Id);

            Assert.Equal(0, context.Guilds.CountAsync().Result);
        }
Ejemplo n.º 2
0
        public void CanGetGuildFromDatabase()
        {
            DbContextOptions <GuildAPIDbContext> options = new DbContextOptionsBuilder <GuildAPIDbContext>()
                                                           .UseInMemoryDatabase("CanGetGuildFromDatabase")
                                                           .Options;

            using GuildAPIDbContext context = new GuildAPIDbContext(options);
            GamesService gameService = new GamesService(context);
            GamesDTO     gamesDTO    = new GamesDTO()
            {
                Name = "Odins Game"
            };
            var          createdGame  = gameService.Create(gamesDTO);
            GuildService guildService = new GuildService(context, gameService);

            Assert.Equal(1, context.Games.CountAsync().Result);
            GuildsDTO guild = new GuildsDTO()
            {
                Name = "Odin Slayers"
            };
            var creation    = guildService.Create(guild);
            var association = gameService.AddGameGuild(createdGame.Result.Id, creation.Result.Id);
            var actual      = guildService.GetGuild(creation.Result.Id).Result;

            Assert.Equal(1, context.Guilds.CountAsync().Result);
            Assert.IsType <GuildsDTO>(actual);
            Assert.Equal(1, actual.Id);
            Assert.Equal("Odin Slayers", actual.Name);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets a specific guild from the Guilds database table
        /// </summary>
        /// <param name="id">Unique ID of the targeted guild</param>
        /// <returns>Targeted guild object</returns>
        public async Task <GuildsDTO> GetGuild(int id)
        {
            Guilds guild = await _context.Guilds.FindAsync(id);

            List <GameGuilds> gameGuilds = await _context.GameGuilds.Where(x => x.GuildId == id).ToListAsync();

            List <GamesDTO> games = new List <GamesDTO>();

            foreach (var item in gameGuilds)
            {
                games.Add(await _games.GetGame(item.GameId));
            }
            GuildsDTO dto = new GuildsDTO()
            {
                Name  = guild.Name,
                Games = games,
                Id    = guild.Id
            };

            foreach (var item in games)
            {
                item.Guilds = null;
            }
            return(dto);
        }
Ejemplo n.º 4
0
        public void GetterForGuild()
        {
            GuildsDTO guildsDTO = new GuildsDTO();

            guildsDTO.Name = "Bryant";
            guildsDTO.Id   = 1;

            Assert.Equal("Bryant", guildsDTO.Name);
            Assert.Equal(1, guildsDTO.Id);
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> PutGuilds(int id, GuildsDTO guilds)
        {
            if (id != guilds.Id)
            {
                return(BadRequest());
            }
            await _guilds.Update(guilds);

            return(NoContent());
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Updates a specific guild from the Guilds database table
        /// </summary>
        /// <param name="guild">The guild object with ID that will be updated to current ID'd object</param>
        /// <returns>Updated object</returns>
        public async Task <GuildsDTO> Update(GuildsDTO guildDTO)
        {
            var guild = await _context.Guilds.FindAsync(guildDTO.Id);

            guild.Name = guildDTO.Name;

            _context.Entry(guild).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(guildDTO);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Creates a new guild and adds it to the Guilds database table
        /// </summary>
        /// <param name="guild">Guild object to be added</param>
        /// <returns>Created Guild</returns>
        public async Task <GuildsDTO> Create(GuildsDTO dto)
        {
            Guilds guild = new Guilds()
            {
                Name = dto.Name
            };

            _context.Entry(guild).State = EntityState.Added;
            await _context.SaveChangesAsync();

            dto.Id = guild.Id;
            return(dto);
        }
Ejemplo n.º 8
0
        public async Task <ActionResult <GuildsDTO> > PostGuilds(GuildsDTO guilds, int gameId)
        {
            var email = HttpContext.User.Claims.First(e => e.Type == "Email").Value;
            var user  = await _userManager.FindByEmailAsync(email);

            var roles = await _userManager.GetRolesAsync(user);

            if (await _guilds.VerifyManager(user.Id, gameId) || roles.Contains("Administrator"))
            {
                await _guilds.Create(guilds);

                await _games.AddGameGuild(gameId, guilds.Id);

                return(CreatedAtAction("GetGuilds", new { id = guilds.Id }, guilds));
            }
            return(BadRequest("Manager does not have access"));
        }