Exemplo n.º 1
0
 public void UpdateGroup(GroupDetailModelDTO group)
 {
     using (var connection = chatterDbContextFactory.CreateDbContext())
     {
         var entity = mapper.MapDetailToEntity(group);
         connection.Groups.Update(entity);
         connection.SaveChanges();
     }
 }
Exemplo n.º 2
0
        public Group MapDetailToEntity(GroupDetailModelDTO group)
        {
            if (group == null)
            {
                return(new Group());
            }

            return(new Group()
            {
                Id = group.Id,
                Name = group.Name,
                Description = group.Description,
                Posts = new ObservableCollection <Post>(group.Posts.Select(MapDetailToEntity))
            });
        }
Exemplo n.º 3
0
        public GroupDetailModelDTO AddGroup(GroupDetailModelDTO group)
        {
            using (var connection = chatterDbContextFactory.CreateDbContext())
            {
                var newGroup = mapper.MapDetailToEntity(group);

                foreach (var admin in group.Admins)
                {
                    var adminDet = connection.Users.Single(x => x.Id == admin.Id);
                    connection.Users.Attach(adminDet);

                    connection.Admin_Group.Add(new Admin_Group()
                    {
                        Id         = Guid.NewGuid(),
                        Admin      = adminDet,
                        AdminRefId = adminDet.Id,
                        Group      = newGroup,
                        GroupRefId = newGroup.Id
                    });
                }

                foreach (var user in group.Users)
                {
                    var userDet = connection.Users.Single(x => x.Id == user.Id);
                    connection.Users.Attach(userDet);

                    connection.User_Group.Add(new User_Group()
                    {
                        Id         = Guid.NewGuid(),
                        User       = userDet,
                        UserRefId  = userDet.Id,
                        Group      = newGroup,
                        GroupRefId = newGroup.Id
                    });
                }

                connection.Groups.Add(newGroup);
                connection.SaveChanges();
                return(mapper.MapEntityToDetailModel(newGroup));
            }
        }
Exemplo n.º 4
0
        public void Create_WithNonExistingItem_DoesNotThrow()
        {
            Guid GroupId = new Guid();

            var model = new GroupDetailModelDTO
            {
                Posts = new List <PostDetailModelDTO>()
                {
                    new PostDetailModelDTO()
                    {
                        Id = GroupId
                    }
                },
                Description = "test description",
                Name        = "test name"
            };

            var returnedModel = fixture.Repository.AddGroup(model);

            Assert.IsNotNull(returnedModel);

            fixture.Repository.RemoveGroup(returnedModel.Id);
        }
Exemplo n.º 5
0
        public void EditGroup(GroupDetailModelDTO group)
        {
            using (var connection = chatterDbContextFactory.CreateDbContext())
            {
                Group edit_group = new Group()
                {
                    Id = group.Id
                };
                edit_group = connection.Groups.Where(x => x.Id == group.Id).SingleOrDefault();
                connection.Groups.Attach(edit_group);

                edit_group.Description = group.Description;
                edit_group.Name        = group.Name;

                foreach (var admin in group.Admins)
                {
                    if (connection.Admin_Group.SingleOrDefault(x => x.AdminRefId == admin.Id && x.GroupRefId == edit_group.Id) == null)
                    {
                        var adminDet = connection.Users.Single(x => x.Id == admin.Id);
                        connection.Users.Attach(adminDet);

                        connection.Admin_Group.Add(new Admin_Group()
                        {
                            Id         = Guid.NewGuid(),
                            Group      = edit_group,
                            GroupRefId = edit_group.Id,
                            Admin      = adminDet,
                            AdminRefId = adminDet.Id
                        });
                    }
                    else
                    {
                        connection.Admin_Group.Attach(connection.Admin_Group.Single(x => x.AdminRefId == admin.Id && x.GroupRefId == edit_group.Id));
                    }
                }

                foreach (var user in group.Users)
                {
                    if (connection.User_Group.SingleOrDefault(x => x.UserRefId == user.Id && x.GroupRefId == edit_group.Id) == null)
                    {
                        var userDet = connection.Users.Single(x => x.Id == user.Id);
                        connection.Users.Attach(userDet);

                        connection.User_Group.Add(new User_Group()
                        {
                            Id         = Guid.NewGuid(),
                            Group      = edit_group,
                            GroupRefId = edit_group.Id,
                            User       = userDet,
                            UserRefId  = userDet.Id
                        });
                    }
                    else
                    {
                        connection.User_Group.Attach(connection.User_Group.Single(x => x.UserRefId == user.Id && x.GroupRefId == edit_group.Id));
                    }
                }

                foreach (var post in group.Posts)
                {
                    connection.Users.Attach(connection.Users.Single(x => x.Id == post.User.Id));

                    if (connection.Groups.Include(x => x.Posts).Single(x => x.Id == group.Id).Posts.FirstOrDefault(x => x.Id == post.Id) != null)
                    {
                        if (edit_group.Posts.Select(x => x.Id).Contains(post.Id))
                        {
                            continue;
                        }
                        else
                        {
                            connection.Posts.Attach(mapper.MapDetailToEntity(post));
                        }
                    }
                    else
                    {
                        edit_group.Posts.Add(mapper.MapDetailToEntity(post));
                    }
                }

                connection.SaveChanges();
            }
        }