Beispiel #1
0
 public static ProjectPrivacyClass GetProjectFilePrivacy(int projectID, string dir, string username, string filename)
 {
     if (Roles.UserIsAllowed_Project(username, ProjectPrivilages.ControlSetting, projectID))
     {
         dir = FormatPath(dir);
         using (boxEntities box = new boxEntities())
         {
             // get the file
             var result = (from o in box.ProjectFiles
                           where o.ProjectID == projectID && o.Directory == dir && o.FileName == filename
                           select new ProjectPrivacyClass()
             {
                 Filename = o.FileName,
                 Privacy = o.Privacy,
                 Usernames = o.ProjectPrivacies.Where(a => a.CanSee == true).Select(a => a.ProjectUser.UserProfile.UserName),
                 PRoles = o.ProjectPrivacies.Where(a => a.CanSee).Select(a => a.ProjectUser.Role.ToLower()).Distinct(),
             }).FirstOrDefault();
             if (result == null)
             {
                 ProjectPrivacyClass pp = new ProjectPrivacyClass();
                 return(pp);
             }
             else
             {
                 result.Public = CheckPublic(result.Privacy);
                 result.By     = GetBy(result.Privacy);
                 return(result);
             }
         }
     }
     else
     {
         throw new Exception("Not allowed to view privacy settings");
     }
 }
Beispiel #2
0
            } // done

            public static TaskClass UpdateProjectFileTask(int taskID, string username, int projectID, string title, string desc, DateTime dueDate, string[] usernames)
            {
                using (boxEntities box = new boxEntities())
                {
                    usernames = usernames.Distinct().ToArray();
                    // get creator username
                    var creator = (from o in box.TaskAssigns
                                   where o.TaskID == taskID
                                   select o.UserProfile.UserName).FirstOrDefault();


                    if (Roles.UserIsAllowed_Project(username, ProjectPrivilages.ControlSetting, projectID) || creator == username)
                    {
                        // get the header
                        var task = (from o in box.TaskAssigns.Include("TaskUsers")
                                    where o.TaskID == taskID
                                    select o).FirstOrDefault();
                        task.TaskTitle = title;
                        task.TaskDesc  = desc;
                        task.DueDate   = dueDate;
                        task.Creator   = Profile.getUserID(username);
                        box.SaveChanges();

                        // get the users
                        int[] NewUsers = { };
                        if (usernames.Contains("All"))
                        {
                            // get all users in meeting ids
                            int t = task.ProjecFileID == null ? 0 : (int)task.ProjecFileID;
                            NewUsers = ProjectPrivacyClass.GetProjectFileUserIDs(t);
                        }
                        else
                        {
                            NewUsers = Profile.GetUserIDs(usernames);
                        }
                        // get old users
                        int[] OldUsers = task.TaskUsers.Select(a => a.UserProfile.UserID).ToArray();
                        int[] same     = NewUsers.Intersect(OldUsers).ToArray();
                        // insert new
                        foreach (var t in NewUsers)
                        {
                            if (!same.Contains(t))
                            {
                                TaskUser u = new TaskUser();
                                u.UserID       = t;
                                u.TaskID       = task.TaskID;
                                u.AssignedDate = DateTime.Now;
                                task.TaskUsers.Add(u);
                            }
                        }
                        // delete
                        foreach (var o in OldUsers)
                        {
                            if (!same.Contains(o))
                            {
                                var dtask = task.TaskUsers.Where(a => a.UserID == o).FirstOrDefault();
                                if (dtask != null)
                                {
                                    task.TaskUsers.Remove(dtask);
                                }
                            }
                        }
                        box.SaveChanges();
                        // return object
                        TaskClass tt = new TaskClass();
                        tt.Title       = task.TaskTitle;
                        tt.Desc        = task.TaskDesc;
                        tt.DueDate     = task.DueDate;
                        tt.TaskID      = task.TaskID;
                        tt.CreatedDate = task.DateCreated;
                        tt.Usernames   = task.TaskUsers.Select(a => a.UserProfile.UserName).ToArray();

                        return(tt);
                    }
                    else
                    {
                        throw new UnauthorizedAccessException();
                    }
                }
            } // done
Beispiel #3
0
            } // done

            public static ProjectTaskClass SaveProjectFileTask(string username, int projectID, string title, string desc, DateTime dueDate, string[] usernames, string fileFullname)
            {
                ProjectTaskClass rObject = new ProjectTaskClass();

                using (boxEntities box = new boxEntities())
                {
                    usernames = usernames.Distinct().ToArray();


                    if (Roles.UserIsAllowed_Project(username, ProjectPrivilages.Manage, projectID))
                    {
                        // get projectfile id
                        var fileid = (from o in box.ProjectFiles
                                      where o.ProjectID == projectID && o.FullName == fileFullname
                                      select o.ID).FirstOrDefault();
                        if (fileid != 0)
                        {
                            // create the header
                            TaskAssign task = new TaskAssign();
                            task.ProjecFileID = fileid;
                            task.TaskTitle    = title;
                            task.TaskDesc     = desc;
                            task.DueDate      = dueDate;
                            task.DateCreated  = DateTime.Now;
                            task.Creator      = Profile.getUserID(username);
                            box.TaskAssigns.AddObject(task);
                            box.SaveChanges();

                            // check if all
                            int[]    users = { };
                            string[] na    = { };
                            if (usernames.Contains("All"))
                            {
                                // get all users in meeting ids
                                users = ProjectPrivacyClass.GetProjectFileUserIDs(fileid);
                                na    = ProjectPrivacyClass.GetProjectFileUsernames(fileid);
                            }
                            else
                            {
                                users = Profile.GetUserIDs(usernames);
                                na    = usernames;
                            }
                            foreach (var t in users)
                            {
                                TaskUser u = new TaskUser();
                                u.UserID       = t;
                                u.TaskID       = task.TaskID;
                                u.AssignedDate = DateTime.Now;
                                task.TaskUsers.Add(u);
                            }
                            box.SaveChanges();
                            rObject.TaskID        = task.TaskID;
                            rObject.CreatedDate   = task.DateCreated;
                            rObject.DueDate       = task.DueDate;
                            rObject.Desc          = task.TaskDesc;
                            rObject.Title         = task.TaskTitle;
                            rObject.ProjectFileID = fileid;
                            rObject.Usernames     = na;
                            rObject.Creator       = username;

                            return(rObject);
                        }
                        else
                        {
                            throw new FileNotFoundException();
                        }
                    }
                    else
                    {
                        throw new UnauthorizedAccessException();
                    }
                }
            } // done