private static int SaveFestivalBook(string folderName, GCFestivalBook book)
        {
            int nRet = 0;

            using (StreamWriter sw = new StreamWriter(Path.Combine(folderName, book.FileName)))
            {
                sw.WriteLine("{0}:{1}|{2}|{3}", book.GetType().Name, GCFestivalBase.StringToSafe(book.CollectionName), book.CollectionId,
                             (book.Visible ? 1 : 0));
                foreach (GCFestivalBase fb in book.Festivals)
                {
                    if (fb.nDeleted == 0)
                    {
                        nRet++;
                        sw.WriteLine("{0}:{1}", fb.getToken(), fb.EncodedString);
                        if (fb.EventsCount > 0)
                        {
                            foreach (GCFestivalBase fb2 in fb.Events)
                            {
                                sw.WriteLine("{0}:{1}", fb2.getToken(), fb2.EncodedString);
                            }
                        }
                        if (fb is GCFestivalSpecial)
                        {
                            GCFestivalSpecial se = fb as GCFestivalSpecial;
                            sw.WriteLine(GCFestivalSpecial.InstructionTag);
                            sw.WriteLine(se.Script);
                            sw.WriteLine(GCFestivalSpecial.InstructionEndTag);
                        }
                    }
                }
            }

            return(nRet);
        }
Beispiel #2
0
        /// <summary>
        /// Save configuration into file with given name
        /// </summary>
        /// <param name="fileName">Full path to file</param>
        public void Save(string fileName)
        {
            FileName = fileName;
            using (StreamWriter sw = new StreamWriter(fileName))
            {
                sw.WriteLine("3 {0}|{1}", useAcceptLimit, acceptLimit);
                sw.WriteLine("4 {0}|{1}", useMinPeriodLength, minPeriodLength);
                sw.WriteLine("5 {0}", GCFestivalBase.StringToSafe(Title));
                sw.WriteLine("6 {0}", GCFestivalBase.StringToSafe(Description));

                List <ParameterDescriptor> ar = this.ParameterDescriptions;
                foreach (ParameterDescriptor a in ar)
                {
                    if (a.Array != null)
                    {
                        for (int i = a.Min; i < a.Max; i++)
                        {
                            sw.WriteLine("1 {0}|{1}|{2}|{3}", a.Key, i, a.Array[i].Rating,
                                         GCFestivalBase.StringToSafe(a.Array[i].Note));
                            for (int k = 0; k < a.Array[i].MarginsCount; k++)
                            {
                                GCConfigRatedMargin m = a.Array[i].Margins[k];
                                sw.WriteLine("99 {0}|{1}|{2}|{3}|{4}", GCFestivalBase.StringToSafe(m.Title), m.Rating,
                                             m.OffsetMinutesStart, m.OffsetMinutesEnd, GCFestivalBase.StringToSafe(m.Note));
                            }
                            a.Array[i].Modified = false;
                        }
                    }
                    else if (a.Array2 != null)
                    {
                        for (int i = a.Min; i < a.Max; i++)
                        {
                            for (int j = a.Min2; j < a.Max2; j++)
                            {
                                sw.WriteLine("2 {0}|{1}|{2}|{3}|{4}", a.Key, i, j, a.Array2[i, j].Rating,
                                             GCFestivalBase.StringToSafe(a.Array2[i, j].Note));
                                for (int k = 0; k < a.Array2[i, j].MarginsCount; k++)
                                {
                                    GCConfigRatedMargin m = a.Array[i].Margins[k];
                                    sw.WriteLine("99 {0}|{1}|{2}|{3}|{4}", GCFestivalBase.StringToSafe(m.Title), m.Rating,
                                                 m.OffsetMinutesStart, m.OffsetMinutesEnd, GCFestivalBase.StringToSafe(m.Note));
                                }
                                a.Array2[i, j].Modified = false;
                            }
                        }
                    }
                }
            }
        }