Exemplo n.º 1
0
        public async Task <AddUserPayload> AddUserAsync(AddUserInput input, [ScopedService] LeagueDbContext context)
        {
            User user = new User
            {
                Username = input.Username,
                Password = input.Password
            };

            context.Users.Add(user);
            await context.SaveChangesAsync();

            return(new AddUserPayload(user));
        }
Exemplo n.º 2
0
        public async Task <AddPostPayload> AddPostAsync(
            AddPostInput input,
            [ScopedService] LeagueDbContext context)
        {
            Post post = new Post {
                UserId   = input.UserId,
                Champion = input.Champion,
                Role     = input.Role
            };

            foreach (var inputBuild in input.Build)
            {
                Build build = new Build
                {
                    Post = post,
                    Type = inputBuild.Type
                };
                foreach (var inputItem in inputBuild.Items)
                {
                    Item item = new Item
                    {
                        Name = inputItem
                    };
                    BuildItem buildItem = new BuildItem
                    {
                        Build = build,
                        Item  = item
                    };

                    context.BuildItems.Add(buildItem);
                    // context.Items.Add(item);
                }
                post.Builds.Add(build);
            }

            foreach (var inputRune in input.Rune)
            {
                Page primary   = new Page();
                Page secondary = new Page();
                Rune rune      = new Rune
                {
                    Post          = post,
                    PrimaryPage   = primary,
                    SecondaryPage = secondary
                };

                foreach (var inputSkill in inputRune.Primary)
                {
                    Skill skill = new Skill
                    {
                        Name = inputSkill
                    };

                    PageSkill pageSkill = new PageSkill
                    {
                        Page  = primary,
                        Skill = skill
                    };
                    context.PageSkills.Add(pageSkill);
                }

                foreach (var inputSkill in inputRune.Secondary)
                {
                    Skill skill = new Skill
                    {
                        Name = inputSkill
                    };

                    PageSkill pageSkill = new PageSkill
                    {
                        Page  = secondary,
                        Skill = skill
                    };
                    context.PageSkills.Add(pageSkill);
                }
                context.Runes.Add(rune);
            }

            context.Add(post);

            await context.SaveChangesAsync();

            return(new AddPostPayload(post));
        }