Ejemplo n.º 1
0
        private void Update_Click(object sender, RoutedEventArgs e)
        {
            //Need to sort out notes, assignees and tags here

            foreach (Note TempNote in MyNoteCopies)
            {
                Note OriginalNote = Data.Notes.Find(x => x.Id.ToString() == TempNote.Id.ToString());

                if (OriginalNote != null)
                {
                    //MessageBox.Show("Original Note Title: " + OriginalNote.Title);
                    OriginalNote.Title = TempNote.Title;
                    //MessageBox.Show("Original Note Title Is Now: " + OriginalNote.Title);
                    OriginalNote.Body = TempNote.Body;

                    if (!OriginalNote.Update())
                    {
                        throw new Exception();
                    }
                }
                else
                {
                    Note NewNote = MyBug.CreateNote();

                    //MessageBox.Show("Original Note Title: " + OriginalNote.Title);
                    NewNote.Title = TempNote.Title;
                    //MessageBox.Show("Original Note Title Is Now: " + OriginalNote.Title);
                    NewNote.Body = TempNote.Body;

                    Data.Notes.Add(NewNote);

                    if (!NewNote.Create())
                    {
                        throw new Exception();
                    }
                }
            }

            foreach (Note TempNote in MyDeletedNoteCopies)
            {
                Note OriginalNote = Data.Notes.Find(x => x.Id.ToString() == TempNote.Id.ToString());

                if (!OriginalNote.Delete())
                {
                    throw new Exception();
                }

                Data.Notes.Remove(OriginalNote);
            }

            foreach (Tag TempTag in MyTagCopies)
            {
                Tag OriginalTag = Data.Tags.Find(x => x.Id.ToString() == TempTag.Id.ToString());

                if (OriginalTag != null)
                {
                    /*//MessageBox.Show("Original Tag Title: " + OriginalTag.Title);
                     * OriginalTag.Title = TempTag.Title;
                     * //MessageBox.Show("Original Tag Title Is Now: " + OriginalTag.Title);
                     * OriginalTag.Body = TempTag.Body;
                     *
                     * if (!OriginalTag.Update())
                     * {
                     *  throw new Exception();
                     * }*/
                }
                else
                {
                    Tag NewTag = MyBug.CreateTag(TempTag.Type);

                    if (!NewTag.Create())
                    {
                        throw new Exception();
                    }

                    Data.Tags.Add(NewTag);
                }
            }



            foreach (Tag TempTag in MyDeletedTagCopies)
            {
                Tag OriginalTag = Data.Tags.Find(x => x.Id.ToString() == TempTag.Id.ToString());

                if (!OriginalTag.Delete())
                {
                    throw new Exception();
                }
                else
                {
                    MessageBox.Show("DEBUG: Tag Deleted");
                }

                Data.Tags.Remove(OriginalTag);
            }

            foreach (Assignee TempAssignee in MyAssigneeCopies)
            {
                Assignee OriginalAssignee = Data.Assignees.Find(x => x.BugId.ToString() == TempAssignee.BugId.ToString() && x.MyUser.Id.ToString() == TempAssignee.MyUser.Id.ToString());

                if (OriginalAssignee != null)
                {
                    /*//MessageBox.Show("Original Assignee Title: " + OriginalAssignee.Title);
                     * OriginalAssignee.Title = TempAssignee.Title;
                     * //MessageBox.Show("Original Assignee Title Is Now: " + OriginalAssignee.Title);
                     * OriginalAssignee.Body = TempAssignee.Body;
                     *
                     * if (!OriginalAssignee.Update())
                     * {
                     *  throw new Exception();
                     * }*/
                }
                else
                {
                    Assignee NewAssignee = MyBug.CreateAssignee(TempAssignee.MyUser);

                    if (!NewAssignee.Create())
                    {
                        throw new Exception();
                    }

                    Data.Assignees.Add(NewAssignee);
                }
            }



            foreach (Assignee TempAssignee in MyDeletedAssigneeCopies)
            {
                Assignee OriginalAssignee = Data.Assignees.Find(x => x.BugId.ToString() == TempAssignee.BugId.ToString() && x.MyUser.Id.ToString() == TempAssignee.MyUser.Id.ToString());

                if (!OriginalAssignee.Delete())
                {
                    throw new Exception();
                }
                else
                {
                    MessageBox.Show("DEBUG: Assignee Deleted");
                }

                Data.Assignees.Remove(OriginalAssignee);
            }



            Style style_TextBoxError     = Application.Current.FindResource("TextBoxError") as Style;
            Style style_PasswordBoxError = Application.Current.FindResource("PasswordBoxError") as Style;

            bool ValidateSuccess = true;

            if (input_Title.Text == "")
            {
                ValidateSuccess   = false;
                input_Title.Style = style_TextBoxError;
                MessageBox.Show("You cannot leave the title field blank", "Blank Field",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }

            /*if (input_Description.Text == "")
             * {
             *  ValidateSuccess = false;
             *  input_Description.Style = style_TextBoxError;
             *  MessageBox.Show("You cannot leave the description field blank", "Blank Field",
             *      MessageBoxButton.OK, MessageBoxImage.Error);
             * }*/

            if (combo_Severity.Text == "")
            {
                ValidateSuccess = false;
                MessageBox.Show("You cannot leave the severity field blank", "Blank Field", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            if (ValidateSuccess)
            {
                MyBug.Title       = input_Title.Text;
                MyBug.Description = input_Description.Text;
                MyBug.Severity    = Convert.ToInt16(combo_Severity.Text);

                if (MyBugControl == null) //If it equals null, this is a new bug (needs to be created not updated)
                {
                    if (MyBug.Create())
                    {
                        MyHomeWindow.UpdateBugList();
                        MessageBox.Show("Bug created successfully!");
                    }
                    else
                    {
                        MessageBox.Show("Error while creating bug: " + MyBug.ErrMsg, "Error",
                                        MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else
                {
                    if (MyBug.Update())
                    {
                        MyBugControl.UpdateUi();
                        MessageBox.Show("Bug updated successfully!");
                    }
                    else
                    {
                        MessageBox.Show("Error while updating bug: " + MyBug.ErrMsg, "Error",
                                        MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }
        }