public MainForm()
 {
     InitializeComponent();
     string path = Application.StartupPath;
     if (path[path.Length - 1] != '\\')
         path += '\\';
     string file_in = path + "in.xml";
     string file_changes = path + "changes.xml";
     bool valid = true;
     InventList inf = new InventList();
     InventList chf = new InventList();
     try
     {
         inf = InventList.Load(file_in);
         chf = InventList.Load(file_changes);
         valid = true;
     }
     catch
     {
         valid = false;
     }
     if (valid)
     {
         DataList = inf;
         Changes = chf;
     }
 }
 public DialogForm(InventList list)
 {
     InitializeComponent();
     Data = list;
     groupBox1.Enabled = Data.DataList.Count > 0;
     if (Data.DataList.Count > 0)
         LoadInForm(list.DataList[0]);
 }
 public static void Save(InventList list, string file)
 {
     try
     {
         XmlSerializer saver = new XmlSerializer(typeof(InventList));
         StreamWriter f = new StreamWriter(file);
         saver.Serialize(f,list);
         f.Close();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
 private void результатToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         string path = Application.StartupPath;
         if (path[path.Length - 1] != '\\')
             path += '\\';
         string file_in = path + "in.xml";
         string file_changes = path + "changes.xml";
         InventList.Save(DataList, file_in);
         InventList.Save(Changes, file_changes);
         InventList list = new InventList();
         List<string> Categories = new List<string>();
         //получение категорий входного файла
         for (int i = 0; i < DataList.DataList.Count; i++)
             if (!Categories.Contains(DataList.DataList[i].Name))
             {
                 Categories.Add(DataList.DataList[i].Name);
                 list.DataList.Add(new Invent());
                 list.DataList[list.DataList.Count - 1].Name = Categories[Categories.Count - 1];
                 list.DataList[list.DataList.Count - 1].Count = (DataList.DataList[i].IsGet ? 1 : -1) * DataList.DataList[i].Count;
                 list.DataList[list.DataList.Count - 1].Date = DateTime.Now.ToShortDateString();
             }
             else
             {
                 int index = Categories.IndexOf(DataList.DataList[i].Name);
                 if (DataList.DataList[i].IsGet)
                     list.DataList[index].Count += DataList.DataList[i].Count;
                 else
                     list.DataList[index].Count -= DataList.DataList[i].Count;
             }
         //получение категорий выходного файла
         for (int i = 0; i < Changes.DataList.Count; i++)
             if (!Categories.Contains(Changes.DataList[i].Name))
             {
                 Categories.Add(Changes.DataList[i].Name);
                 list.DataList.Add(new Invent());
                 list.DataList[list.DataList.Count - 1].Name = Categories[Categories.Count - 1];
                 list.DataList[list.DataList.Count - 1].Count = (Changes.DataList[i].IsGet ? 1 : -1) * Changes.DataList[i].Count;
                 list.DataList[list.DataList.Count - 1].Date = DateTime.Now.ToShortDateString();
             }
             else
             {
                 int index = Categories.IndexOf(Changes.DataList[i].Name);
                 if (Changes.DataList[i].IsGet)
                     list.DataList[index].Count += Changes.DataList[i].Count;
                 else
                     list.DataList[index].Count -= Changes.DataList[i].Count;
             }
         //DataSet a = new DataSet();
         InventList.Save(list, path + "result.xml");
         Result = list;
         ViewResult();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }