Example #1
0
        /// <summary>
        /// 表,表头信息赋值
        /// </summary>
        public void MrInitializeComponent(string dbname)
        {
            mrAllcolumnL.Clear();
            mrTableL.Clear();
            using (var db = new LROSRDbContext(dbname))
            {
                db.Configuration.AutoDetectChangesEnabled = false;
                db.Configuration.ValidateOnSaveEnabled    = false;
                var column = from q in db.MrTableAllColumn select q;
                var table1 = from q in column
                             group q by new
                {
                    q.fileFormatVersion,
                    q.tabletype,
                    q.mrName
                }
                into m
                select m.Key;
                var table2 = from q in table1
                             select new MRTableList
                {
                    tabletype = q.tabletype,
                    Version   = q.fileFormatVersion,
                    tableName = q.mrName
                };

                foreach (MrTableAllColumn item in column)
                {
                    MrTableAllColumn mrTableAllColumn = SingletonMrData.DeepCopy <MrTableAllColumn>(item);
                    mrAllcolumnL.Add(mrTableAllColumn);
                }

                foreach (MRTableList item in table2)
                {
                    MRTableList mRTableList = SingletonMrData.DeepCopy <MRTableList>(item);
                    mrTableL.Add(item);
                }
            }
        }
Example #2
0
        /// <summary>
        /// Mr数据入库
        /// </summary>
        /// <param name="path">压缩文件,文件夹路径</param>
        /// <returns>入库成功</returns>
        public bool MrInput(string path, string deName)
        {
            int xmlNumber = 0;
            int dbNUmber  = 0;
            //初始化XML文件夹
            string xmlPath = @"..\..\MRXMLFile";//路径xml文件夹

            ClearXMLFile(xmlPath);

            //解压
            bool a = false;//解压是否成功

            string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
            if (files.Length == 0)
            {
                return(false);
            }
            foreach (string file in files)
            {
                if (Path.GetExtension(file) == ".zip")
                {
                    a = Decompress(file, xmlPath);
                    if (!a)
                    {
                        return(false);
                    }
                }
            }

            //读取XML
            List <MrTableAllColumn> mrTableAllColumn = new List <MrTableAllColumn>();

            string[] xmlFiles = Directory.GetFiles(xmlPath, "*.*", SearchOption.AllDirectories);
            if (xmlFiles.Length == 0)
            {
                return(false);
            }
            foreach (string file in xmlFiles)
            {
                if (Path.GetExtension(file) == ".xml")
                {
                    mrTableAllColumn.AddRange(GetMrtable(file));
                }
            }
            xmlNumber = mrTableAllColumn.Count();

            //Mr数据入库
            using (var db = new LROSRDbContext(deName))
            {
                db.Configuration.AutoDetectChangesEnabled = false;
                db.Configuration.ValidateOnSaveEnabled    = false;
                //db.anto
                int KPid         = 0;//设置主键ID
                int columnNumber = db.MrTableAllColumn.Count();
                if (columnNumber != 0)
                {
                    KPid = db.MrTableAllColumn.Select(q => q.KPid).Max() + 1;
                }

                foreach (MrTableAllColumn item in mrTableAllColumn)
                {
                    item.KPid = KPid;
                    KPid++;
                }
                db.MrTableAllColumn.AddRange(mrTableAllColumn);
                try
                {
                    dbNUmber = db.SaveChanges();
                    if (dbNUmber != xmlNumber)
                    {
                        return(false);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                //得到列数据和表头数据的列表
                var column = from q in db.MrTableAllColumn select q;
                var table1 = from q in column
                             group q by new
                {
                    q.fileFormatVersion,
                    q.tabletype,
                    q.mrName
                }
                into m
                select m.Key;
                var table2 = from q in table1
                             select new MRTableList
                {
                    tabletype = q.tabletype,
                    Version   = q.fileFormatVersion,
                    tableName = q.mrName
                };

                foreach (MrTableAllColumn item in column)
                {
                    MrTableAllColumn mrTableAllColumn1 = SingletonMrData.DeepCopy <MrTableAllColumn>(item);
                    SingletonMrData.mrAllcolumnL.Add(mrTableAllColumn1);
                }

                foreach (MRTableList item in table2)
                {
                    MRTableList mRTableList = SingletonMrData.DeepCopy <MRTableList>(item);
                    SingletonMrData.mrTableL.Add(item);
                }
            }
            return(true);
        }