Ejemplo n.º 1
0
        public async Task <Group> EditGroup(string id, GroupCreateRequestDto group)
        {
            var user = await _context.Users.FirstOrDefaultAsync(u => u.Id == group.Creator.Id);

            var groupToEdit = await _context.Groups.FirstOrDefaultAsync(g => g.Id == id);

            if (user == null || groupToEdit == null || !user.Rank.Permissions.CanEditGroup)
            {
                return(null);
            }
            groupToEdit.LogoUrl = group.LogoUrl;
            groupToEdit.Name    = group.Name;
            groupToEdit.Bio     = group.Bio;

            try
            {
                _context.Groups.Update(groupToEdit);
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                Console.Write(ex);
                return(null);
            }
            return(groupToEdit);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> EditGroup([FromRoute] string id, GroupCreateRequestDto group)
        {
            var editedGroup = await _groupService.EditGroup(id, group);

            if (editedGroup == null)
            {
                return(BadRequest());
            }
            return(Ok(editedGroup));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> CreateGroup(GroupCreateRequestDto group)
        {
            var groupCreated = await _groupService.CreateGroup(group);

            if (!groupCreated)
            {
                return(BadRequest());
            }
            return(Ok());
        }
Ejemplo n.º 4
0
        private async Task GenerateGroups()
        {
            var users = await _context.Users.ToListAsync();

            var groups = new GroupCreateRequestDto[] {
                new GroupCreateRequestDto()
                {
                    Bio = "A new bio", Creator = users[0], LogoUrl = "https://www.mylogo.com/group.png", Name = $"Group by: {users[0].Profile.Username}"
                },
                new GroupCreateRequestDto()
                {
                    Bio = "A new bio", Creator = users[1], LogoUrl = "https://www.mylogo.com/group.png", Name = $"Group by: {users[1].Profile.Username}"
                },
            };

            foreach (var group in groups)
            {
                await _groupService.CreateGroup(group);
            }
            await _context.SaveChangesAsync();
        }
Ejemplo n.º 5
0
        public async Task <bool> CreateGroup(GroupCreateRequestDto group)
        {
            var user = await _context.Users.FirstOrDefaultAsync(u => u.Id == group.Creator.Id);

            var groupExists = await _context.Groups.AnyAsync(g => g.Name == group.Name);

            // If a user doesn't exist, they already belong to a group, or the group already exists
            if (user == null || user.Group != null || groupExists)
            {
                return(false);
            }

            var newGroup = new Group();

            newGroup.Bio     = group.Bio;
            newGroup.LogoUrl = group.LogoUrl;
            newGroup.Name    = group.Name;
            newGroup.Owner   = group.Creator;

            try
            {
                await _context.Groups.AddAsync(newGroup);

                var ranks = await CreateDefaultRanks(newGroup);

                // Add this data to the creating user
                user.Group = newGroup;
                user.Rank  = ranks.Find(r => r.Level == 1);
                _context.Users.Update(user);
                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                Console.Write(ex);
                return(false);
            }
            return(true);
        }