Exemplo n.º 1
0
        public override Project AddProject(string title, string userMail, int id = 0, bool db = false)
        {
            if (title == null || userMail == null) throw new ArgumentNullException();

            Project p = new Project() {
                Title = title
            };
            using (var dbContext = new sliceofpieEntities2()) { //Insert project
                dbContext.Projects.AddObject(p);
                dbContext.SaveChanges();
            }
            User u = new User() {
                Email = userMail
            };
            ProjectUser pu = new ProjectUser() {
                UserEmail = userMail,
                ProjectId = p.Id
            };
            using (var dbContext = new sliceofpieEntities2()) { //Insert projectUser
                if (dbContext.Users.Count(dbUser => dbUser.Email.Equals(u.Email)) < 1) throw new ArgumentException("No user with email " + u.Email + " exists!");
                dbContext.ProjectUsers.AddObject(pu);
                dbContext.SaveChanges();
            }
            return new Project() {
                Title = p.Title,
                Id = p.Id
            };
        }
Exemplo n.º 2
0
        public override void RemoveProject(Project project)
        {
            if (project == null)
            {
                throw new ArgumentNullException();
            }
            IEnumerable <Document> documents;
            IEnumerable <Folder>   folders;

            using (var dbContext = new sliceofpieEntities2()) {
                Project projectToGetFrom = dbContext.Projects.First(proj => project.Id == proj.Id);
                documents = projectToGetFrom.Documents.ToList();
                folders   = projectToGetFrom.Folders.ToList();
            }

            foreach (Document d in documents)
            {
                RemoveDocument(d);
            }

            foreach (Folder f in folders)
            {
                RemoveFolder(f);
            }

            using (var dbContext = new sliceofpieEntities2()) {
                Project     p  = dbContext.Projects.First(proj => project.Id == proj.Id);
                ProjectUser pu = dbContext.ProjectUsers.First(user => project.Id == user.ProjectId);
                dbContext.ProjectUsers.DeleteObject(pu);
                dbContext.Projects.DeleteObject(p);
                dbContext.SaveChanges();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Create a new ProjectUser object.
        /// </summary>
        /// <param name="id">Initial value of the Id property.</param>
        public static ProjectUser CreateProjectUser(global::System.Int64 id)
        {
            ProjectUser projectUser = new ProjectUser();

            projectUser.Id = id;
            return(projectUser);
        }
Exemplo n.º 4
0
        public void ShareProject(int projectId, string userMail)
        {
            if (projectId == 0)
            {
                throw new ArgumentException("Project has to be synced, before it can be shared");
            }
            if (userMail.Length < 1)
            {
                throw new ArgumentException("User email cannot be blank");
            }
            userMail = userMail.Trim();
            bool userExists = false;

            using (var dbContext = new sliceofpieEntities2()) {
                if (dbContext.Users.Count(dbUser => dbUser.Email.Equals(userMail)) > 0)
                {
                    userExists = true;
                }
            }
            if (!userExists)
            {
                throw new ArgumentException("User does not exist");
            }
            bool projectUserExists = true;

            using (var dbContext = new sliceofpieEntities2()) {
                var projectUsers = from projectUser in dbContext.ProjectUsers
                                   where projectUser.ProjectId == projectId && projectUser.UserEmail == userMail
                                   select projectUser;
                if (projectUsers.Count() == 0)
                {
                    projectUserExists = false;
                }
            }
            if (projectUserExists)
            {
                throw new ArgumentException("User is already sharing this project");
            }
            using (var dbContext = new sliceofpieEntities2()) {
                ProjectUser projectUser = new ProjectUser();
                projectUser.ProjectId = projectId;
                projectUser.UserEmail = userMail;
                dbContext.ProjectUsers.AddObject(projectUser);
                dbContext.SaveChanges();
            }
        }
Exemplo n.º 5
0
        public override Project AddProject(string title, string userMail, int id = 0, bool db = false)
        {
            if (title == null || userMail == null)
            {
                throw new ArgumentNullException();
            }

            Project p = new Project()
            {
                Title = title
            };

            using (var dbContext = new sliceofpieEntities2()) { //Insert project
                dbContext.Projects.AddObject(p);
                dbContext.SaveChanges();
            }
            User u = new User()
            {
                Email = userMail
            };
            ProjectUser pu = new ProjectUser()
            {
                UserEmail = userMail,
                ProjectId = p.Id
            };

            using (var dbContext = new sliceofpieEntities2()) { //Insert projectUser
                if (dbContext.Users.Count(dbUser => dbUser.Email.Equals(u.Email)) < 1)
                {
                    throw new ArgumentException("No user with email " + u.Email + " exists!");
                }
                dbContext.ProjectUsers.AddObject(pu);
                dbContext.SaveChanges();
            }
            return(new Project()
            {
                Title = p.Title,
                Id = p.Id
            });
        }
Exemplo n.º 6
0
 public void ShareProject(int projectId, string userMail)
 {
     if (projectId == 0) {
         throw new ArgumentException("Project has to be synced, before it can be shared");
     }
     if (userMail.Length < 1) {
         throw new ArgumentException("User email cannot be blank");
     }
     userMail = userMail.Trim();
     bool userExists = false;
     using (var dbContext = new sliceofpieEntities2()) {
         if (dbContext.Users.Count(dbUser => dbUser.Email.Equals(userMail)) > 0) {
             userExists = true;
         }
     }
     if (!userExists) {
         throw new ArgumentException("User does not exist");
     }
     bool projectUserExists = true;
     using (var dbContext = new sliceofpieEntities2()) {
         var projectUsers = from projectUser in dbContext.ProjectUsers
                            where projectUser.ProjectId == projectId && projectUser.UserEmail == userMail
                            select projectUser;
         if (projectUsers.Count() == 0) {
             projectUserExists = false;
         }
     }
     if (projectUserExists) {
         throw new ArgumentException("User is already sharing this project");
     }
     using (var dbContext = new sliceofpieEntities2()) {
         ProjectUser projectUser = new ProjectUser();
         projectUser.ProjectId = projectId;
         projectUser.UserEmail = userMail;
         dbContext.ProjectUsers.AddObject(projectUser);
         dbContext.SaveChanges();
     }
 }
Exemplo n.º 7
0
 /// <summary>
 /// Deprecated Method for adding a new object to the ProjectUsers EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToProjectUsers(ProjectUser projectUser)
 {
     base.AddObject("ProjectUsers", projectUser);
 }
Exemplo n.º 8
0
 /// <summary>
 /// Create a new ProjectUser object.
 /// </summary>
 /// <param name="id">Initial value of the Id property.</param>
 public static ProjectUser CreateProjectUser(global::System.Int64 id)
 {
     ProjectUser projectUser = new ProjectUser();
     projectUser.Id = id;
     return projectUser;
 }
Exemplo n.º 9
0
 /// <summary>
 /// Deprecated Method for adding a new object to the ProjectUsers EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToProjectUsers(ProjectUser projectUser)
 {
     base.AddObject("ProjectUsers", projectUser);
 }