// ======================================================================== // 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 { //public string _FmtAllPath; //public string _GenmacAllPath; //private FormatInfoList _AllFormats; //public FormatInfoList AllFormats //{ // get // { // if (_AllFormats == null) // _AllFormats = FormatInfoList.Get(); // return _AllFormats; // } //} //private Dictionary _LookupFormats; //public Dictionary LookupFormats //{ // get // { // if (_LookupFormats == null) // { // _LookupFormats = new Dictionary(); // foreach (FormatInfo myFormat in AllFormats) // { // _LookupFormats.Add(myFormat.Name, myFormat.FormatID); // } // } // return _LookupFormats; // } //} //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"; // string path = _FmtAllPath + "\\" + 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\\genmacall\\" + format + ".svg"; // path = _GenmacAllPath + "\\" + 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 // { // if (!LookupFormats.ContainsKey(fname)) // { // rec = Format.MakeFormat(parent, fname, nmattr, fmtdata, genmacdata, Dts, Userid); // } // else // { // rec = Format.Get(LookupFormats[fname]); // rec.Data = fmtdata; // rec.GenMac = genmacdata; // rec = rec.Save(); // } // } // 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(_FmtAllPath); //(@"c:\development\fmtall"); // FileInfo[] fis = di.GetFiles("*.xml"); // foreach (FileInfo fi in fis) // { // //if (fi.Name.ToUpper() == "WCN2ALL.XML"|| fi.Name.ToUpper() == "OHLPALL.XML") // //{ // 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(_FmtAllPath); //("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 = null; try { part2 = format.Substring(format.LastIndexOf(' ') + 1, 2); } catch { } 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; } } }