private void InitUpdateRows()
        {
            selectedTaskID = DataHandling.GetTaskID(selectedTask.taskName, selectedTask.details);
            noOfUpdates    = DataHandling.GetTaskUpdates(selectedTaskID);

            for (int i = 0; i < noOfUpdates; i++)
            {
                RowDefinition updateRow = new RowDefinition();
                updateRow.Height = new GridLength(100, GridUnitType.Auto);
                TaskDetailsGrid.RowDefinitions.Add(updateRow);

                string updateHeaderString = DataStructures.updateRows[i].updatedBy + " at " + DataStructures.updateRows[i].updateTimeDate.ToString("HH:mm dd/MM/yyyy")
                                            + ": ";
                string updateContentString = DataStructures.updateRows[i].updateDetails;

                TextBlock updateHeaderTextBlock = new TextBlock();
                updateHeaderTextBlock.Text       = updateHeaderString;
                updateHeaderTextBlock.Foreground = (SolidColorBrush) new BrushConverter().ConvertFrom("#FFFF4F5A");
                updateHeaderTextBlock.Margin     = new Thickness(0, 10, 0, 10);
                updateHeaderTextBlock.FontSize   = 12;

                TextBlock updateContentTextBlock = new TextBlock();
                updateContentTextBlock.Text         = updateContentString;
                updateContentTextBlock.Foreground   = (SolidColorBrush) new BrushConverter().ConvertFrom("#FF51545D");
                updateContentTextBlock.Margin       = new Thickness(20, 30, 20, 10);
                updateContentTextBlock.FontSize     = 14;
                updateContentTextBlock.TextWrapping = TextWrapping.Wrap;

                Rectangle divider = new Rectangle();
                divider.Width               = 470;
                divider.Height              = 1;
                divider.Fill                = (SolidColorBrush) new BrushConverter().ConvertFrom("#FF51545D");
                divider.Stroke              = (SolidColorBrush) new BrushConverter().ConvertFrom("#FF51545D");
                divider.Margin              = new Thickness(20, 0, 0, 0);
                divider.VerticalAlignment   = VerticalAlignment.Top;
                divider.HorizontalAlignment = HorizontalAlignment.Left;

                Grid.SetRow(divider, i + 1);
                Grid.SetRow(updateHeaderTextBlock, i + 1);
                Grid.SetRow(updateContentTextBlock, i + 1);
                TaskDetailsGrid.Children.Add(divider);
                TaskDetailsGrid.Children.Add(updateHeaderTextBlock);
                TaskDetailsGrid.Children.Add(updateContentTextBlock);
            }
        }
Exemplo n.º 2
0
        private void EditTaskButtonClick(object sender, RoutedEventArgs e)
        {
            int taskID = DataHandling.GetTaskID(selectedTask.taskName, selectedTask.details);
            int assignedToUserIndex = Properties.Settings.Default.UsersStringCollection.IndexOf(AssignToComboBox.SelectedItem.ToString());

            assignedUsername = Properties.Settings.Default.UsernamesStringCollection[assignedToUserIndex];

            if (selectedTask.taskFiles == null)
            {
                selectedTask.taskFiles = new List <string>();
            }

            string[] taskFilesArray  = selectedTask.taskFiles.ToArray();
            string   taskFilesString = string.Join(",", taskFilesArray);

            if (selectedTask.notifyUsers.Contains(assignedUsername) != true)
            {
                selectedTask.notifyUsers.Add(assignedUsername);
            }

            DataHandling.UpdateTask(taskID, TaskNameTextBox.Text, StartDatePicker.SelectedDate.Value, DeadlinePicker.SelectedDate.Value, TaskDetailsTextBox.Text,
                                    selectedTask.taskListFileTableDir, selectedTask.assignedBy, assignedUsername, StatusComboBox.Text, taskFilesString, selectedTask.notifyUsers);

            string updateString = GetUpdatedFields();

            DataHandling.AddTaskUpdate(taskID, updateString);

            DataStructures.NotificationStruct notificationStruct = new DataStructures.NotificationStruct();
            notificationStruct.notificationSender     = Application.Current.Properties["username"].ToString();
            notificationStruct.notificationText       = "[" + selectedTask.taskName + "]: " + updateString;
            notificationStruct.taskID                 = taskID;
            notificationStruct.notificationTime       = DateTime.Now;
            notificationStruct.notificationRecipients = selectedTask.notifyUsers;

            DataHandling.AddNotification(notificationStruct);

            DataHandling.GetTasksFull();

            Close();
        }
        private void CreateTaskButtonClick(object sender, RoutedEventArgs e)
        {
            int    assignedToUserIndex = Properties.Settings.Default.UsersStringCollection.IndexOf(AssignToComboBox.Text);
            string assignedUsername    = Properties.Settings.Default.UsernamesStringCollection[assignedToUserIndex];

            newTask.taskName             = TaskNameTextBox.Text;
            newTask.startDate            = StartDatePicker.SelectedDate.Value;
            newTask.deadline             = DeadlinePicker.SelectedDate.Value;
            newTask.details              = TaskDetailsTextBox.Text;
            newTask.taskListFileTableDir = TaskNameTextBox.Text;
            newTask.assignedBy           = System.Windows.Application.Current.Properties["username"].ToString();
            newTask.assignedTo           = assignedUsername;
            newTask.taskStatus           = StatusComboBox.SelectedValue.ToString();
            newTask.lastEdited           = DateTime.Now;
            newTask.taskFiles            = new List <string>();
            newTask.notifyUsers          = new List <string>();
            string[] taskFilesArray  = newTask.taskFiles.ToArray();
            string   taskFilesString = string.Join(",", taskFilesArray);

            string[] notifyUsersArray = new string[0];
            notifyUsersArray.Append(newTask.assignedBy);
            notifyUsersArray.Append(newTask.assignedTo);
            string notifyUsersString = string.Join(",", notifyUsersArray);

            using (SqlConnection sqlConn = new SqlConnection(Properties.Settings.Default.PDMDatabaseConnectionString))
            {
                SqlCommand createTask = new SqlCommand("CreateTaskSP", sqlConn);
                createTask.CommandType = CommandType.StoredProcedure;
                createTask.Parameters.AddWithValue("@taskname", newTask.taskName);
                createTask.Parameters.AddWithValue("@startdate", newTask.startDate);
                createTask.Parameters.AddWithValue("@deadline", newTask.deadline);
                createTask.Parameters.AddWithValue("@details", newTask.details);
                createTask.Parameters.AddWithValue("@tasklistfiletabledir", newTask.taskListFileTableDir);
                createTask.Parameters.AddWithValue("@assignedby", newTask.assignedBy);
                createTask.Parameters.AddWithValue("@assignedto", newTask.assignedTo);
                createTask.Parameters.AddWithValue("@taskstatus", newTask.taskStatus);
                createTask.Parameters.AddWithValue("@lastedited", newTask.lastEdited);
                createTask.Parameters.AddWithValue("@taskFiles", taskFilesString);
                createTask.Parameters.AddWithValue("@notifyUsers", notifyUsersString);

                sqlConn.Open();
                int i = createTask.ExecuteNonQuery();

                string     sqlQuery = "INSERT INTO dbo.TaskListFiles (name,is_directory,is_archive) VALUES ('" + TaskNameTextBox.Text + "', 1, 0);";
                SqlCommand createFileTableDirComm = new SqlCommand(sqlQuery, sqlConn);
                createFileTableDirComm.CommandType = CommandType.Text;
                createFileTableDirComm.ExecuteNonQuery();

                Directory.SetCurrentDirectory(Properties.Settings.Default.FileDirectory);
                Directory.CreateDirectory(TaskNameTextBox.Text);
            }

            DataHandling.GetTasksFull();

            int newTaskID = DataHandling.GetTaskID(newTask.taskName, newTask.details);

            DataStructures.NotificationStruct notificationStruct = new DataStructures.NotificationStruct();
            notificationStruct.notificationSender     = Application.Current.Properties["username"].ToString();
            notificationStruct.notificationText       = "Created Task: " + newTask.taskName;
            notificationStruct.taskID                 = newTaskID;
            notificationStruct.notificationTime       = DateTime.Now;
            notificationStruct.notificationRecipients = new List <string>();
            notificationStruct.notificationRecipients.Add(newTask.assignedTo);
            notificationStruct.notificationRecipients.Add(newTask.assignedBy);

            DataHandling.AddNotification(notificationStruct);

            string taskFilesUpdateString = DataHandling.AddTaskFiles(newTask, selectFiles);

            if (taskFilesUpdateString.Equals("Added File(s): ") == false)
            {
                DataHandling.AddTaskUpdate(newTaskID, taskFilesUpdateString);

                DataHandling.GetTasksFull();
            }


            Close();
        }