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); }
/// <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; } } } } } }