/// <summary> /// Выгрузка данных из фонда (сериализация в XML) /// </summary> /// <param name="path"></param> private void SaveXML(string path) { using (var writer = new StreamWriter(path)) { SerializeLibraryUnits serializeLibraryUnits = new SerializeLibraryUnits(); serializeLibraryUnits.dateSave = DateTime.Today; serializeLibraryUnits.libraryUnits = _libraryUnits.ToArray(); var serializer = new XmlSerializer(typeof(SerializeLibraryUnits)); serializer.Serialize(writer, serializeLibraryUnits); } }
/// <summary> /// Загрузка данных в фонда (десериализация из XML) /// </summary> /// <param name="path"></param> /// <param name="loadMethod"></param> private bool LoadXML(string path, int loadMethod) { int objIndex = 0; int succeed = 0; int failed = 0; using (var logFile = new StreamWriter(path + ".log")) { using (var reader = XmlReader.Create(path, _XMLValidator.SettingsVal)) { try { SerializeLibraryUnits deserializeUnit = (SerializeLibraryUnits) new XmlSerializer(typeof(SerializeLibraryUnits)).Deserialize(reader); var units = new List <LibraryUnit>(); foreach (LibraryUnit u in deserializeUnit.libraryUnits) { try { objIndex++; units.Add(u); succeed++; } catch (Exception e) { logFile.WriteLine("{0} object - load exception: {1}", objIndex, e.Message); failed++; if (loadMethod == 0) { logFile.WriteLine("Load stoped!"); return(false); } } } if (units.Count > 0) { ClearLibrary(); foreach (LibraryUnit u in units) { AddUnit(u); } } } catch (Exception e) { logFile.WriteLine("Error deserialize: {0}", e.Message); return(false); } } logFile.WriteLine("---" + Environment.NewLine + "{0} - all processed object " + Environment.NewLine + "{1} - succeed load " + Environment.NewLine + "{2} - failed load " , objIndex, succeed, failed ); } return(true); }