Exemple #1
0
        public static void Join(TodoContext context, Project project, User user)
        {
            var joined = new ProjectOwner {
                Project = project, User = user
            };

            context.ChangeTracker.TrackGraph(joined, (node => node.Entry.State = node.Entry.IsKeySet ? EntityState.Unchanged : EntityState.Added));
        }
Exemple #2
0
 protected override void OnModelCreating(ModelBuilder builder)
 {
     User.OnModelCreating(this, builder);
     TodoItem.OnModelCreating(this, builder);
     FileRef.OnModelCreating(this, builder);
     StatusSet.OnModelCreating(this, builder);
     ProjectOwner.OnModelCreating(this, builder);
 }
Exemple #3
0
        public static bool Unjoin(TodoContext context, Project project, User user)
        {
            var joined = context.Find <ProjectOwner>(user.Uid, project.Pid);

            System.Console.WriteLine("Found joined: " + joined != null);
            if (joined == null)
            {
                return(false);
            }
            ProjectOwner left  = project.OwnerUsers.First(projOwner => projOwner.SameAs(joined));
            ProjectOwner right = user.OwnedProjects.First(projOwner => projOwner.SameAs(joined));

            if (left == null || right == null)
            {
                return(false);
            }
            context.Remove(joined);
            project.OwnerUsers.Remove(left);
            user.OwnedProjects.Remove(right);
            return(true);
        }
Exemple #4
0
 public bool SameAs(ProjectOwner other)
 {
     return(UserId == other.UserId && ProjectId == other.ProjectId);
 }