public void UpdateGroup(GroupDetailModelDTO group) { using (var connection = chatterDbContextFactory.CreateDbContext()) { var entity = mapper.MapDetailToEntity(group); connection.Groups.Update(entity); connection.SaveChanges(); } }
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)) }); }
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)); } }
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); }
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(); } }