// Metoda tworząca plik XML z danymi. Nazwa pliku jest równa wartości pola ChartID // przekazanego w obiekcie typu CharacterChart. Jeżeli pole to będzie NULL, to // funkcja nie stworzy pliku. // // UWAGA! Nadpisuje istniejące pliki! void GenerateXml(CharacterChart chart, string Source = null) { if (chart.ChartID == null) return; if (Source == null) { CharacterChartSrc = DefaultConstants.Application.DefaultXmlLocalization( ChartID.ToString(), DefaultConstants.Application.DefaultChartXmlFolder ); } else { CharacterChartSrc = DefaultConstants.Application.DefaultXmlLocalization( ChartID.ToString(), Source.ToString() ); } // Tworzenie nowego pliku XML. Dalszy opis w XmlModels.Chart(CharacterChart chart) XmlModels.Chart chartXml = new XmlModels.Chart(chart); return; }
// Konstruktor pobierające dane z pliku XML. Identyfikator i nazwa nie są // generowane, tylko pobierane z pliku. /// <summary>Tworzy gotowy obiekt z danymi odczytanymi z XML</summary> /// <param name="chartID">ID karty, której dane chcemy pobrać</param> public CharacterChart( string chartID ) { // Odczytywanie pliku XML. Odczytane dane muszą być jeszcze przekazane do // bieżącego obiektu. // // todo: Uwaga na NullReferenceException w przypadku, gdy plik nie // będzie istniał. // todo: Przejęcie wyjątku przez konstruktor i przekazanie go dalej. XmlModels.Chart chartXml = new XmlModels.Chart(chartID); if (chartXml.ExceptionHandler == null) { CharacterChartDbModel dbData = ApplicationDbContext.Create().CharacterCharts.Find(chartID); this.ChartID = chartID; Name = chartXml.CharacterChartName; ChartDescription = chartXml.CharacterChartDescription; DataNames = chartXml.DataNames; StatNames = chartXml.StatNames; AttributeNames = chartXml.AttributeNames; SkillNames = chartXml.SkillNames; Equipment = chartXml.Equipment; Description = chartXml.Description; UserID = dbData.CreatorUserID; } else { // Wstęp do obsługi wyjątków // // todo: Należy przepisać kod tak, aby przejmował wyjątki i przekazywał // je dalej. ExceptionHandler = chartXml.ExceptionHandler; } }