Exemplo n.º 1
0
        public async Task SaveNewFlag(ClaimsPrincipal claim, Trooper trooper, TrooperFlag flag)
        {
            var user = await _userManager.GetUserAsync(claim);

            if (_dbContext.Entry(trooper).State == EntityState.Detached)
            {
                _dbContext.Attach(trooper);
            }

            flag.AuthorId  = user.Id;
            flag.CreatedOn = DateTime.UtcNow;

            trooper.Flags.Add(flag);

            await _dbContext.SaveChangesAsync();
        }
Exemplo n.º 2
0
        public async Task <Trooper?> AddFlagAsync(Trooper t, TrooperFlag flag)
        {
            var scope = _services.CreateScope();
            var db    = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            var user  = await db.FindAsync <Trooper>(t.Id);

            await db.Entry(user).Collection(i => i.Flags).LoadAsync();

            if (user is null)
            {
                return(null);
            }

            user.Flags.Add(flag);
            db.Update(user);
            await db.SaveChangesAsync();

            return(user);
        }
Exemplo n.º 3
0
        public async Task <Trooper?> RemoveFlagAsync(Trooper t, TrooperFlag flag)
        {
            var scope = _services.CreateScope();
            var db    = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            var user  = await db.FindAsync <Trooper>(t.Id);

            if (user is null)
            {
                return(null);
            }

            await db.Entry(user).Collection(i => i.Flags).LoadAsync();

            var toRemove = user.Flags.Where(x => x.FlagId == flag.FlagId).ToArray();

            foreach (var f in toRemove)
            {
                user.Flags.Remove(f);
            }
            db.Update(user);
            await db.SaveChangesAsync();

            return(user);
        }