SourceCode/PROMS/DataLoader/Formats.cs.org

6.2 KiB

/ ====================================================================== / Copyright 2006 - Volian Enterprises, Inc. All rights reserved. / Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE / ———————————————————————— / $Workfile: $ $Revision: $ / $Author: $ $Date: $ / / $History: $ // ====================================================================== using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Data.OleDb; using System.Collections.Specialized; using System.Collections.Generic; using System.Xml; using System.Xml.XPath; using System.IO; using System.Text; using VEPROMS.CSLA.Library;

namespace DataLoader { public partial class Loader {

private Format AddFormatToDB(Format parent, string format, bool issub, DateTime Dts, string Userid) { string fmtdata = null; string genmacdata = null; XmlDocument xd = null;

string path = "c:\\development\\fmtall\\" + format + "all.xml"; if (File.Exists(path)) { try { StreamReader srf = new StreamReader(path); xd = new XmlDocument(); xd.Load(srf); //xd.Load(path); fmtdata = xd.OuterXml; } catch(Exception ex) { frmMain.AddError(ex, "AddFormatToDB('{0}','{1}')", parent.Name, path); return null; } }

// Do we need genmac - only if non-subformat if (!issub) { path = "c:\\development\≥nmacall\\" + format + ".svg"; if (File.Exists(path)) { try { StreamReader sr = new StreamReader(path); XmlDocument xdg = new XmlDocument(); xdg.Load(sr); //xdg.Load(path); genmacdata = xdg.OuterXml; } catch (Exception ex) { frmMain.AddError(ex, "AddFormatToDB('{0}','{1}')", parent.Name, path); return null; } } } // Get the name & then create the record. if (Userid = null || Userid = "") Userid = "Migration";

string nmattr = "Default";

// use xpath to get name. if (parent != null) { XmlNode nmnode = xd.SelectSingleNode("//FormatData"); if (nmnode is XmlElement) { XmlElement xm = (XmlElement)nmnode; nmattr = xm.GetAttribute("Name"); } } // use the format name if base or non sub. If it's a sub, remove the "". string fname = issub ? format.Replace("", "") : format; Format rec = null; try { rec = Format.MakeFormat(parent, fname, nmattr, fmtdata, genmacdata, Dts, Userid); } catch (Exception ex) { frmMain.AddError(ex, "AddFormatToDB-make format('{0}','{1}')", parent.Name, path); } return rec; } public void LoadAllFormats() { Format basefmt = null; Format parent = null;

// Load base format. basefmt = AddFormatToDB(null, "base", false, DateTime.Now, "Migration"); if (basefmt == null) return; / now loop through all files… If there is an _ in the name, it's a subformat / (for example, AEP_00.xml) skip it in main loop, it's handled for each format. DirectoryInfo di = new DirectoryInfo(@"c:\development\fmtall"); FileInfo[] fis = di.GetFiles("*.xml");

foreach (FileInfo fi in fis) { bool issub = (fi.Name.IndexOf("_") > 0) ? true : false; if (!issub && fi.Name.ToLower() != "baseall.xml") { string fmtname = fi.Name.Substring(0, fi.Name.Length - 7); // remove the all.xml part of the filename. try { parent = AddFormatToDB(basefmt, fmtname, issub, DateTime.Now, "Migration"); if (parent != null) { / now see if there are any subformats associated with this, if so / add them here… DirectoryInfo sdi = new DirectoryInfo("c:\\development\\fmtall"); FileInfo[] sfis = di.GetFiles(fmtname + "_*.xml"); foreach (FileInfo sfi in sfis) { string nm = sfi.Name.Substring(0, sfi.Name.Length - 7); //Console.WriteLine("Processing {0}", sfi.Name); frmMain.Status = string.Format("Processing Format {0}", sfi.Name); try { AddFormatToDB(parent, nm, true, DateTime.Now, "Migration"); } catch (Exception ex) { frmMain.AddError(ex, "LoadAllFormats() '{0}'", sfi.Name); //Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); } } } } catch (Exception ex) { frmMain.AddError(ex, "LoadAllFormats() '{0}'", fi.Name); //Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); } } } } public FormatInfo GetFormat(string format) { Format parent = null; Format rec = null;

// get base Format baseparent = Format.Get(1);

// if there is no format - what should be done? maybe nothing. if (format = null || format = "") return null;

try { if (format.IndexOf(' ') > -1) // will have spaces if it's a user format { string part1 = format.Substring(0, format.IndexOf(' ')); string part2 = format.Substring(format.LastIndexOf(' ') + 1, 2); format = part1 + part2;

// get the parent format's id (for example, AEP for AEP00). parent = Format.GetByParentID_Name(baseparent.FormatID, part1); } else parent = baseparent;

// see if the format has been added, if not go get it. rec = Format.GetByParentID_Name(parent.FormatID, format); / JSJ - 02/04/10 this fixes cases where a subformat is no longer available, / default to the parent format if (rec == null) rec = parent; } catch (Exception ex) { log.ErrorFormat("Error getting xml version of format {0}", ex.Message); frmMain.AddError(ex, "GetFormat('{0}')", format); } FormatInfo recInfo = FormatInfo.Get(rec.FormatID); return recInfo; }

} }