Esempio n. 1
0
        public IEnumerable <GroupGetResponse> Get(string groupCode = "")
        {
            List <Group>            groups            = _repGroup.Get(filter: f => (f.GroupCode == groupCode || groupCode == ""), includes: "GroupType,CourseUserRoles,Course,Posts").ToList();
            List <GroupGetResponse> groupGetResponses = new List <GroupGetResponse>();

            foreach (Group grp in groups)
            {
                GroupGetResponse ggr = new GroupGetResponse()
                {
                    GroupCode     = grp.GroupCode,
                    GroupName     = grp.GroupName,
                    Objective     = grp.Objective,
                    TimeZone      = grp.TimeZone,
                    UserList      = new List <GroupUser>(),
                    GroupPosts    = new List <DomainDto.Post>(),
                    GroupTypeCode = grp.GroupType.GroupTypeCode,
                    CourseCode    = grp.Course.CourseCode
                };
                foreach (var cur in grp.CourseUserRoles)
                {
                    ggr.UserList.Add(new GroupUser()
                    {
                        emailId = cur.AspNetUsers.Email,
                        name    = cur.AspNetUsers.FirstName + " " + cur.AspNetUsers.LastName
                    });
                }
                Dictionary <int, DomainDto.Post> postBuilder = new Dictionary <int, DomainDto.Post>();
                List <EntityModel.Post>          posts       = grp.Posts.OrderBy(x => x.TimePosted).ToList();
                foreach (EntityModel.Post post in posts)
                {
                    if (post.ParentId.HasValue)
                    {
                        postBuilder[post.PostId].ChildPosts.Add(new DomainDto.Post()
                        {
                            PostText   = post.PostText,
                            TimePosted = post.TimePosted,
                            UserName   = post.UserName
                        });
                    }
                    else
                    {
                        postBuilder.Add(post.PostId, new DomainDto.Post()
                        {
                            PostText   = post.PostText,
                            TimePosted = post.TimePosted,
                            UserName   = post.UserName,
                            ChildPosts = new List <DomainDto.Post>()
                        });
                    }
                }
                ggr.GroupPosts = postBuilder.Values.ToList();
                groupGetResponses.Add(ggr);
            }
            return(groupGetResponses);
        }
Esempio n. 2
0
        // GET: Group
        public ActionResult GroupDetail(string groupCode)
        {
            currentGroupCode = groupCode;
            GroupDetailModel gdm = null;
            GroupGetResponse ggr = _groupCom.GetGroup(groupCode);

            if (ggr != null)
            {
                gdm = new GroupDetailModel()
                {
                    CourseCode    = ggr.CourseCode,
                    GroupCode     = ggr.GroupCode,
                    GroupName     = ggr.GroupName,
                    GroupTypeCode = ggr.GroupTypeCode,
                    Objective     = ggr.Objective,
                    TimeZone      = ggr.TimeZone,
                    UserList      = new List <GroupUserModel>(),
                    GroupPosts    = new List <PostModel>()
                };
                foreach (var user in ggr.UserList)
                {
                    gdm.UserList.Add(new GroupUserModel()
                    {
                        emailId = user.emailId,
                        name    = user.name
                    });
                }
                foreach (var posts in ggr.GroupPosts)
                {
                    PostModel pm = new PostModel()
                    {
                        PostText   = posts.PostText,
                        TimePosted = posts.TimePosted,
                        UserName   = posts.UserName,
                    };
                    if (posts.ChildPosts != null && posts.ChildPosts.Count > 0)
                    {
                        pm.ChildPosts = new List <PostModel>();
                        foreach (var cp in posts.ChildPosts)
                        {
                            pm.ChildPosts.Add(new PostModel()
                            {
                                PostText   = cp.PostText,
                                TimePosted = cp.TimePosted,
                                UserName   = cp.UserName
                            });
                        }
                    }
                    gdm.GroupPosts.Add(pm);
                }
            }
            return(View(gdm));
        }
Esempio n. 3
0
        public async Task As_an_admin_I_can_update_groups()
        {
            var client = await GetAdminClientAsync();

            string groupName = Guid.NewGuid().ToString();

            await CreateGroupAsync(client, groupName, new GroupEntry { Description = "before change" });

            await UpdateGroupAdminAsync(client, groupName, new GroupEntry { Description = "after change" });

            GroupGetResponse group = await GetGroupByNameAdminAsync(client, groupName);

            Assert.Equal("after change", group.Group.Description);
        }
Esempio n. 4
0
        public async Task As_an_admin_I_can_get_a_group_by_name()
        {
            var client = await GetAdminClientAsync();

            string name = Guid.NewGuid().ToString();

            await CreateGroupAsync(client, new GroupEntry
            {
                Name = name
            });

            GroupGetResponse g = await GetGroupByNameAsync(client, name);

            Assert.Equal(name, g.Group.Name);
        }
Esempio n. 5
0
        public async Task As_an_admin_I_can_get_a_group_by_name()
        {
            var client = await GetAdminClientAsync();

            string groupName = Guid.NewGuid().ToString();

            await CreateGroupAsync(client, groupName, new GroupEntry
            {
                Description = "testing..."
            });

            GroupGetResponse g = await GetGroupByNameAdminAsync(client, groupName);

            Assert.Equal(groupName, g.Group.Name);
            Assert.Equal("testing...", g.Group.Description);
        }