示例#1
0
        public async Task Load(params string[] s)
        {
            string name = string.Join(" ", s);

            if (string.IsNullOrEmpty(name))
            {
                var characterString = "```yaml" + Environment.NewLine + "\u200b";

                var animaChars = CharacterRepository.Characters.OfType <AnimaCharacter>().Where(x => x.Player == Context.Message.Author.Mention);
                if (animaChars.Any())
                {
                    characterString += "Anima:" + Environment.NewLine;
                    foreach (AnimaCharacter character in animaChars)
                    {
                        characterString += "   " + character.Name + " - LVL " + character.Level + (character.IsCurrent ? " (loaded)" : "") + Environment.NewLine;
                    }
                }

                var lChars = CharacterRepository.Characters.OfType <L5RCharacter>().Where(x => x.Player == Context.Message.Author.Mention);
                if (lChars.Any())
                {
                    characterString += "Legend of the five Rings:" + Environment.NewLine;
                    foreach (var character in lChars)
                    {
                        characterString += "   " + character.Name + " - " + character.Clan + (character.IsCurrent ? " (loaded)" : "") + Environment.NewLine;
                    }
                }
                characterString += "```";

                await Context.Message.DeleteAsync();

                await Context.Channel.SendMessageAsync("List of playable characters :" + Environment.NewLine + characterString);
            }
            else
            {
                PlayableCharacter character = null;
                try
                {
                    CharacterRepository.Characters.Where(x => x.Player == Context.Message.Author.Mention).ToList().ForEach(x => x.IsCurrent = false);
                    character           = CharacterRepository.Find <PlayableCharacter>(Context.Message.Author.Mention, name);
                    character.IsCurrent = true;

                    //await (Context.Message.Author as IGuildUser).ModifyAsync(x => x.Nickname = character.Name);
                }
                catch (InvalidOperationException ex)
                {
                    await Context.Channel.SendMessageAsync("Error 404: Character not found!");

                    throw;
                }
                //catch (Exception)
                //{
                //    await Context.Channel.SendMessageAsync("Nickname could not be changed for " + Context.Message.Author.Mention);
                //}

                await Context.Message.DeleteAsync();

                await Context.Channel.SendMessageAsync($"Character : {character.Name} successfully loaded !");
            }
        }
示例#2
0
        public async Task DeleteCharacter(params string[] s)
        {
            _ = Context.Message.DeleteAsync();
            string            expr      = string.Join(' ', s);
            PlayableCharacter character = CharacterRepository.Find <PlayableCharacter>(Context.Message.Author.Mention, expr);

            if (character == null)
            {
                await Context.Channel.SendMessageAsync("Error 404: Character not found or currently loaded!");

                return;
            }

            try
            {
                CharacterRepository.DeleteExcelCharacter(character);
            }
            catch (Exception ex)
            {
                await Context.Channel.SendMessageAsync($"Erreur lors de la suppression du fichier.{Environment.NewLine}{ex.Message}");

                throw;
            }
            await Context.Channel.SendMessageAsync("Suppression effectuée.");
        }
        public void Find_given_id_exists_returns_dto()
        {
            var builder = new DbContextOptionsBuilder <FuturamaContext>()
                          .UseInMemoryDatabase(databaseName: nameof(Find_given_id_exists_returns_dto));
            var options = builder.Options;

            using (var context = new FuturamaContext(options))
            {
                var entity = new Character
                {
                    Name    = "Fry",
                    Species = "Human",
                    Planet  = "Earth",
                    Actor   = new Actor {
                        Name = "Billy West"
                    }
                };
                context.Characters.Add(entity);
                context.SaveChanges();
            }
            using (var context = new FuturamaContext(options))
            {
                var repository = new CharacterRepository(context);

                var character = repository.Find(1);

                Assert.Equal(1, character.Id);
                Assert.Equal("Fry", character.Name);
                Assert.Equal("Human", character.Species);
                Assert.Equal("Earth", character.Planet);
                Assert.Equal(1, character.ActorId);
                Assert.Equal("Billy West", character.ActorName);
            }
        }
        public void Find_given_42_returns_character()
        {
            using (var repository = new CharacterRepository(_context))
            {
                var dto = repository.Find(1);

                Assert.Equal("Fry", dto.Name);
                Assert.Equal("Billy West", dto.ActorName);
                Assert.Equal(1, dto.NumberOfEpisodes);
            }
        }
        public void PullOutPersistedCharacter()
        {
            var characterRepository = new CharacterRepository();
            var frank = new Character();
            var key   = "fff";

            characterRepository.Save(frank, key);

            var found = characterRepository.Find(key);

            Assert.AreEqual(frank, found);
        }
        public void Find_given_id_exists_returns_dto_with_episodeCount()
        {
            var builder = new DbContextOptionsBuilder <FuturamaContext>()
                          .UseInMemoryDatabase(databaseName: nameof(Find_given_id_exists_returns_dto_with_episodeCount));
            var options = builder.Options;

            int id;

            using (var context = new FuturamaContext(options))
            {
                var episode1 = new Episode {
                    Title = "Space Pilot 3000"
                };
                var episode2 = new Episode {
                    Title = "The Series Has Landed"
                };

                var character = new Character
                {
                    EpisodeCharacters = new[]
                    {
                        new EpisodeCharacter {
                            Episode = episode1
                        },
                        new EpisodeCharacter {
                            Episode = episode2
                        }
                    }
                };

                context.Characters.Add(character);
                context.SaveChanges();

                id = character.Id;
            }

            using (var context = new FuturamaContext(options))
            {
                var repository = new CharacterRepository(context);

                var dto = repository.Find(id);

                Assert.Equal(2, dto.NumberOfEpisodes);
            }
        }