예제 #1
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