예제 #1
0
        public static void AssignTasks(User user, int eventID, int roleID, List<Task> taskList)
        {
            //TODO: Put in after roles management for task up
            if (!user.isAuthorized(EventController.GetEvent(eventID), EnumFunctions.Assign_Task)
                || !user.isAuthorized(EventController.GetEvent(eventID), EnumFunctions.Add_Task))
                throw new FaultException<SException>(new SException(),
                   new FaultReason("Invalid User, User Does Not Have Rights To Assign Tasks!"));

            if (taskList.Count == 0)
            {
                RemoveAllTasksFromRole(eventID, roleID);
                string msg = "Your task(s) assigned by " + user.Name + " for the Event: "
                + EventController.GetEvent(eventID).Name + " has been removed";

                NotificationController.sendNotification(user.UserID, RoleController.GetRole(roleID).UserID,
                                          "Task(s) Allocated Removed", msg);
                return;
            }
            else
            {
                DAL dalDataContext = new DAL();
                using (TransactionScope tScope = new TransactionScope(TransactionScopeOption.Required))
                {
                    try
                    {
                        List<TaskAssignment> taskAssignmentList = new List<TaskAssignment>();

                        RemoveAllTasksFromRole(eventID, roleID);

                        foreach (Task t in taskList)
                        {
                            if (!IsAssignmentCompleted(t.EventID, roleID, t.TaskID)){
                                 TaskAssignment tAssn = new TaskAssignment(t.EventID, t.TaskID, roleID);
                                taskAssignmentList.Add(tAssn);
                            }
                        }

                        RemoveAllTasksFromRole(eventID, roleID);

                        Table<TaskAssignment> taskAssns = dalDataContext.taskAssignments;
                        taskAssns.InsertAllOnSubmit(taskAssignmentList);
                        taskAssns.Context.SubmitChanges();

                        string msg = "You were allocated some tasks by " + user.Name + " for the Event: "
                            + EventController.GetEvent(eventID).Name;

                        NotificationController.sendNotification(user.UserID, RoleController.GetRole(roleID).UserID,
                                                  "New Task Allocated", msg);
                        tScope.Complete();
                    }
                    catch (Exception ex)
                    {
                        throw new FaultException<SException>(new SException(ex.Message),
                          new FaultReason("An Error occured While Adding Assigning Tasks: " + ex.Message));
                    }
                }
            }
        }
예제 #2
0
        public TaskAssignmentState(TaskAssignment tAssn, String name)
        {
            this.taskAssignment = tAssn;

            string temp = name.Replace(Environment.NewLine, "\\");
            string[] temp2 = temp.Split('\\');
            //Name
            this.name = temp2[0];
            //Position
            string[] temp3 = temp.Split(':');
            this.position = temp3[1].Trim();
        }
예제 #3
0
        public static void AddSingleAssignment(User user, int eventID, int roleID, Task task)
        {
            //TODO: Put in after roles management for task up
            if (!user.isAuthorized(EventController.GetEvent(eventID), EnumFunctions.Assign_Task)
                || !user.isAuthorized(EventController.GetEvent(eventID), EnumFunctions.Add_Task))
                throw new FaultException<SException>(new SException(),
                   new FaultReason("Invalid User, User Does Not Have Rights To Assign Tasks!"));

            DAL dalDataContext = new DAL();
            TaskAssignment taskAssn = new TaskAssignment(eventID, task.TaskID, roleID);
            Table<TaskAssignment> assignmentTable = dalDataContext.taskAssignments;

            assignmentTable.InsertOnSubmit(taskAssn);
            assignmentTable.Context.SubmitChanges();
        }
 private List<TaskAssignmentState> GetTaskAssignmentState(TaskAssignment[] tAssns)
 {
     List<TaskAssignmentState> lstTAS = new List<TaskAssignmentState>();
     foreach (TaskAssignment taskAssignment in tAssns)
     {
         foreach (RoleWithUser item in roleByEvent)
         {
             if (item.role.RoleID == taskAssignment.AssignedRoleID)
             {
                 //String name=
                 TaskAssignmentState newTAS = new TaskAssignmentState(taskAssignment, item.user);
                 lstTAS.Add(newTAS);
             }
         }
     }
     return lstTAS;
 }