250 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			250 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
// ========================================================================
 | 
						|
// 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<string, int> _LookupFormats;
 | 
						|
		//public Dictionary<string, int> LookupFormats
 | 
						|
		//{
 | 
						|
		//    get
 | 
						|
		//    {
 | 
						|
		//        if (_LookupFormats == null)
 | 
						|
		//        {
 | 
						|
		//            _LookupFormats = new Dictionary<string, int>();
 | 
						|
		//            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;
 | 
						|
		}
 | 
						|
 | 
						|
	}
 | 
						|
} |