示例#1
0
        /// <summary>
        /// works at adding a new entry into the monitee list and storages.
        /// </summary>
        public void AddMonitoredItem()
        {
            //duplicate should not be added in listview.
            string[] items = new string[] { FolderSelectorBox.Text,
                                            ((DestinationBox.Text != "") ? DestinationBox.Text:_DefaultFolder) };

            ListViewItem listItems = new ListViewItem(items[0]);

            ListViewItem.ListViewSubItem subItem1;

            listItems.Checked = true;
            subItem1          = new ListViewItem.ListViewSubItem(listItems,
                                                                 items[1]);

            //listItems.SubItems.Add(subItem1);

            xmlData = new XMLData(items[0], items[1], XMLDataList.Type(items[0]));
            monitee = new FolderMonitor.Monitees.Monitee(items[0], items[1], XMLDataList.Type(items[0]));
            if (XMLDataList.InsertFile(xmlData) && MoniteeList.InsertMonitee(monitee))
            {
                if (!Monitees.MoniteeList.AddedExtra)
                {
                    Lists.Items.Add(listItems);
                    Monitees.MoniteeList.AddedExtra = false;
                }

                MessageBox.Show("Folder successfully added", "Success");
                HasChanged = true;
            }
            this.FolderSelectorBox.Text = "";
            this.DestinationBox.Text    = "";
        }
        public void BuildMoniteeList()
        {
            XMLDataList.Clear();
            XMLDataList.Load(text);
            int size = XMLDataList.Length;

            Assert.AreEqual(length, size);
            XMLDataListEntry current = XMLDataList.Head;

            while (current != null)
            {
                Assert.IsNotNull(MoniteeList.FindMonitee(current.Data.MoniteePath));
                current = current.Next;
            }

            MoniteeListEntry current2 = MoniteeList.Head;

            while (current2 != null)
            {
                Assert.IsNotNull(current2.Data.Destinations);
                Assert.IsNotNull(current2.Data.Name);
                Assert.IsNotNull(current2.Data.Type);
                current2 = current2.Next;
            }
        }
示例#3
0
        public void TestBackup()
        {
            XMLDataList.Load(text);
            int size = XMLDataList.Length;

            Assert.AreEqual(length, size);
            XMLDataListEntry current = XMLDataList.Head;

            while (current != null)
            {
                Assert.IsNotNull(MoniteeList.FindMonitee(current.Data.MoniteePath));
                current = current.Next;
            }

            XMLDataList.BackUpData();
            Assert.IsTrue(System.IO.File.Exists("MonitoredFolders.bkup"));
            XmlDocument xdoc = new XmlDocument();

            try
            {
                xdoc.Load("MonitoredFolders.bkup");
            }
            catch (Exception e)
            {
                throw;
            }
        }
示例#4
0
        /// <summary>
        /// loops through monitees and removes selected monitees from listview and storage.
        /// </summary>
        private void RemoveListItem()
        {
            try
            {
                int increment = 0;

                if ((Lists.Items.Count > 0) && (Lists.SelectedIndices.Count > 0))
                {
                    ListViewItem[] selectedItems = new ListViewItem[this.Lists.SelectedIndices.Count];

                    if ((MessageBox.Show(
                             "Are you sure you want to remove this entry?\nIt cannot be reversed.",
                             "Warning!",
                             MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question) == DialogResult.Yes))
                    {
                        System.Collections.IEnumerator iEnum = Lists.SelectedIndices.GetEnumerator();

                        while (iEnum.MoveNext())
                        {
                            selectedItems[increment] = Lists.Items[(Int32.Parse(iEnum.Current.ToString()))];
                            increment += 1;
                            XMLDataList.RemoveFile(Lists.Items[(Int32.Parse(iEnum.Current.ToString()))].Text);
                        }
                        foreach (ListViewItem list in selectedItems)
                        {
                            Lists.Items.Remove(list);
                            MoniteeList.RemoveMonitee(list.Text);
                        }
                        if (Lists.Items.Count == 0)
                        {
                            Lists.Items.Clear();
                        }
                        HasChanged = true;
                    }
                }
                else
                {
                    Exceptions.Exception("unselectedremove");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Having problems removing item\n" + ex,
                                "Error!",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
示例#5
0
        void RemoveBtn_Click(object sender, EventArgs e)
        {
            try
            {
                int increment = 0;

                if ((destinationList.Items.Count > 0) && (destinationList.SelectedIndices.Count > 0))
                {
                    var selectedItems = new ListViewItem[destinationList.SelectedIndices.Count];

                    if ((MessageBox.Show(
                             "Are you sure you want to remove this entry?\nIt cannot be reversed.",
                             "Warning!",
                             MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question) == DialogResult.Yes))
                    {
                        var iEnum = destinationList.SelectedIndices.GetEnumerator();

                        while (iEnum.MoveNext())
                        {
                            selectedItems[increment] = destinationList.Items[(Int32.Parse(iEnum.Current.ToString()))];
                            increment += 1;
                            XMLDataList.RemoveFile(destinationList.Items[(Int32.Parse(iEnum.Current.ToString()))].Text);
                        }
                        foreach (var list in selectedItems)
                        {
                            destinationList.Items.Remove(list);
                            MoniteeList.RemoveDestination(MoniteeList.FindMonitee(monitee.Name), list.Text);
                        }
                        if (destinationList.Items.Count == 0)
                        {
                            destinationList.Items.Clear();
                        }
                        MonitorListView.HasChanged = true;
                    }
                }
                else
                {
                    Exceptions.Exception("unselectedremove");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Having problems removing item\n" + ex,
                                "Error!",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
 /// <summary>
 /// ensures the monitor closes for the right reasons.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void MonitorUI_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
 {
     if (e.CloseReason == System.Windows.Forms.CloseReason.WindowsShutDown ||
         e.CloseReason == System.Windows.Forms.CloseReason.TaskManagerClosing ||
         e.CloseReason == System.Windows.Forms.CloseReason.ApplicationExitCall ||
         e.CloseReason == System.Windows.Forms.CloseReason.UserClosing)
     {
         XMLDataList.BackUpData();
         this.notifyIcon.Visible = false;
         this.CallClose();
     }
     else
     {
         //this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
         this.Hide();
     }
 }
示例#7
0
        public void DumpDataTest()
        {
            XMLDataList.Load(text);
            int size = XMLDataList.Length;

            Assert.AreEqual(length, size);
            XMLDataListEntry current = XMLDataList.Head;

            while (current != null)
            {
                Assert.IsNotNull(MoniteeList.FindMonitee(current.Data.MoniteePath));
                current = current.Next;
            }

            XMLDataList.DumpAll();

            Assert.IsTrue(System.IO.File.Exists("monitoredfolder.dump"));
        }
示例#8
0
 /// <summary>
 /// Subroutine that calls the load of xml data into lists.
 /// </summary>
 internal void CallXMLLoad()
 {
     Console.WriteLine("It called me...");
     XMLDataList.LoadAllMonitees();
 }
 /// <summary>
 /// To temporary stop or start monitoring files.
 /// </summary>
 /// <param name="sender">sender</param>
 /// <param name="e">e</param>
 void StartMonitorProc_Click(object sender, System.EventArgs e)
 {
     XMLDataList.BackUpData();
 }