Exemplo n.º 1
0
        private void buttonDeserialize_Click(object sender, EventArgs e)
        {
            Issues.Clear();
            string fileName = string.Empty;

            if (cbSerialize.SelectedIndex == 0)
            {
                if (cbPlugin.SelectedIndex == -1)
                {
                    fileName = "Issues.dat";
                }
                else
                {
                    fileName = toDecode("Issues.dat");
                }
                if (fileName != null)
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate))
                    {
                        Issues = (List <Issue>)formatter.Deserialize(fs);
                    }
                }
            }
            else if (cbSerialize.SelectedIndex == 1)
            {
                if (cbPlugin.SelectedIndex == -1)
                {
                    fileName = "Issues.xml";
                }
                else
                {
                    fileName = toDecode("Issues.xml");
                }
                if (fileName != null)
                {
                    XmlSerializer formatter = new XmlSerializer(typeof(List <Issue>),
                                                                new Type[] { typeof(Book), typeof(Journal), typeof(Mini_Issue), typeof(Brochure) });
                    using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate))
                    {
                        Issues = (List <Issue>)formatter.Deserialize(fs);
                    }
                }
            }
            else if (cbSerialize.SelectedIndex == 2)
            {
                if (cbPlugin.SelectedIndex == -1)
                {
                    fileName = "Issues.txt";
                }
                else
                {
                    fileName = toDecode("Issues.txt");
                }
                if (fileName != null)
                {
                    using (StreamReader sr = new StreamReader(fileName, Encoding.Default))
                    {
                        while (!sr.EndOfStream)
                        {
                            string[] line         = sr.ReadLine().Split('|');
                            string   clName       = line[0].Substring(1, line[0].Length - 2);
                            string   natureOfInfo = line[1].Substring(1, line[1].Length - 2);
                            bool     originality  = Convert.ToBoolean(line[2].Substring(1, line[2].Length - 2));
                            string   audience     = line[3].Substring(1, line[3].Length - 2);
                            string   name         = line[4].Substring(1, line[4].Length - 2);
                            int      edition      = Convert.ToInt32(line[5].Substring(1, line[5].Length - 2));
                            bool     periodicity  = Convert.ToBoolean(line[6].Substring(1, line[6].Length - 2));

                            string firstParam  = "";
                            string secondParam = "";
                            string thirdParam  = "";
                            bool   isIllustr   = false;
                            bool   isCatalog   = false;

                            if (clName == "Книга")
                            {
                                firstParam  = line[7].Substring(1, line[7].Length - 2);
                                secondParam = line[8].Substring(1, line[8].Length - 2);
                                isIllustr   = Convert.ToBoolean(line[9].Substring(1, line[9].Length - 2));
                            }
                            else if (clName == "Журнал")
                            {
                                firstParam  = line[7].Substring(1, line[7].Length - 2);
                                secondParam = line[8].Substring(1, line[8].Length - 2);
                                thirdParam  = line[9].Substring(1, line[9].Length - 2);
                            }
                            else if (clName == "Мини-издание")
                            {
                                firstParam = line[7].Substring(1, line[7].Length - 2);
                            }
                            else if (clName == "Брошюра")
                            {
                                isCatalog = Convert.ToBoolean(line[7].Substring(1, line[7].Length - 2));
                            }


                            Category currCategory = new Category(natureOfInfo, audience, originality);
                            Issue    curr         = getIssueType(clName, name, edition, periodicity, currCategory,
                                                                 firstParam, secondParam, thirdParam, isIllustr, isCatalog);
                            Issues.Add(curr);
                        }
                    }
                }
            }
            dataGridAndAllListsUpdate();
        }
Exemplo n.º 2
0
 public void OutPutInfo(Issue issue)
 {
     Console.WriteLine("Целевая аудитория: {0}; название: {1}; тираж: {2}; " +
                       "периодическое: {3}", issue.Category.TargetAudience, issue.Name, issue.Edition,
                       issue.Periodicity);
 }
Exemplo n.º 3
0
        private void buttonSerialize_Click(object sender, EventArgs e)
        {
            if (cbSerialize.SelectedIndex == 0)
            {
                BinaryFormatter formatter = new BinaryFormatter();
                using (FileStream fs = new FileStream("Issues.dat", FileMode.OpenOrCreate))
                {
                    formatter.Serialize(fs, Issues);
                }
                toEncode("Issues.dat");
            }
            else if (cbSerialize.SelectedIndex == 1)
            {
                XmlSerializer formatter = new XmlSerializer(typeof(List <Issue>),
                                                            new Type[] { typeof(Book), typeof(Journal), typeof(Mini_Issue), typeof(Brochure) });
                using (FileStream fs = new FileStream("Issues.xml", FileMode.OpenOrCreate))
                {
                    formatter.Serialize(fs, Issues);
                }
                toEncode("Issues.xml");
            }
            else if (cbSerialize.SelectedIndex == 2)
            {
                string infoText = String.Empty;
                for (int i = 0; i < Issues.Count; i++)
                {
                    if (Issues[i] is Book)
                    {
                        Book curr = Issues[i] as Book;
                        infoText += $"'Книга'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" +
                                    $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" +
                                    $"'{curr.Periodicity}'|'{curr.Author}'|'{curr.Binding}'|'{curr.IllustratedBookend}'\r\n";
                    }
                    else if (Issues[i] is Journal)
                    {
                        Journal curr = Issues[i] as Journal;
                        infoText += $"'Журнал'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" +
                                    $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" +
                                    $"'{curr.Periodicity}'|'{curr.SerialNumber}'|'{curr.Topic}'|'{curr.Redactors}'\r\n";
                    }
                    else if (Issues[i] is Mini_Issue)
                    {
                        Mini_Issue curr = Issues[i] as Mini_Issue;
                        infoText += $"'Мини-издание'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" +
                                    $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" +
                                    $"'{curr.Periodicity}'|'{curr.Kind}'\r\n";
                    }
                    else if (Issues[i] is Brochure)
                    {
                        Brochure curr = Issues[i] as Brochure;
                        infoText += $"'Брошюра'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" +
                                    $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" +
                                    $"'{curr.Periodicity}'|'{curr.IsCatalog}'\r\n";
                    }
                    else
                    {
                        Issue curr = Issues[i] as Issue;
                        infoText += $"'Не уточнено'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" +
                                    $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" +
                                    $"'{curr.Periodicity}'\r\n";
                    }
                }

                using (FileStream fs = new FileStream("Issues.txt", FileMode.OpenOrCreate))
                {
                    byte[] array = Encoding.Default.GetBytes(infoText);
                    fs.Write(array, 0, array.Length);
                }
                toEncode("Issues.txt");
            }
        }