Пример #1
0
        public static void ImportTables(string saveMdbFile, StockFile stock, List <StockTable> tables, string XZSDM, string XZSMC)
        {
            using (var connection = new OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", saveMdbFile)))
            {
                connection.Open();
                foreach (var table in tables)
                {
                    if (table.IsSpace == true)
                    {
                        //var sql= string.Format("UPDATE {0} SET XZSDM = '{1}', XZSMC = '{2}' WHERE XZSDM IS NULL", table.Name, XZSDM, XZSMC);
                        //var rows= ADOSQLHelper.ExecuteNoQuery(connection, sql);
                        //if (rows <= 0)
                        //{
                        //    Console.WriteLine("更新矢量中的行政市代码和行政市名称失败");
                        //}
                        continue;
                    }
                    var sqlText = string.Format("INSERT INTO {0} SELECT {1} FROM [{2}].[{0}]", table.Name, string.Join(",", table.Fields.Select(e => e.Name).ToArray()), stock.FullName);
                    var rows1   = ADOSQLHelper.ExecuteNoQuery(connection, sqlText);
                    sqlText = string.Format("UPDATE {0} SET XZSDM = '{1}', XZSMC = '{2}',XZXDM = '{3}',XZXMC = '{4}' WHERE XZSDM IS NULL", table.Name, XZSDM, XZSMC, stock.XZQDM, stock.XZQMC);
                    var rows2 = ADOSQLHelper.ExecuteNoQuery(connection, sqlText);
                    if (rows1 == 0 || rows2 == 0 || rows1 != rows2)
                    {
                        Console.WriteLine("导入表格数据失败!");
                    }
                }

                connection.Close();
            }
        }
Пример #2
0
        public ActionResult CreateStock(StockFile stock, IEnumerable <HttpPostedFileBase> file)
        {
            //if (ModelState.IsValid)
            //{

            foreach (var upload in file)
            {
                if (upload.ContentLength > 0)
                {
                    var uploaddocs = Path.GetFileName(upload.FileName);
                    var path       = Path.Combine(Server.MapPath("~/Content/Files"), uploaddocs);
                    stock.albumArtUrl = uploaddocs;
                    upload.SaveAs(path);
                    db.StockFiles.Add(stock);
                    db.SaveChanges();
                    Session["Category"].ToString();
                    Session["Description"].ToString();
                    Session["Status"].ToString();
                    Session["Quantity"].ToString();
                    Session["Cost Price"].ToString();
                    Session["Selling Price"].ToString();
                    return(View(stock));
                }
            }
            //}
            return(RedirectToAction("Index"));
        }
Пример #3
0
        public bool ExtractStockFilesFromSites()
        {
            using (var context = new StockEntities())
            {
                bool isExtracted = false;
                var sitesWithSymbol = (from site in context.Sites
                            from symbol in context.StockSymbols
                            select new { site, symbol }).ToList();

                for (int count = 0; count < sitesWithSymbol.Count; count++)
                {
                    string fileContent = ExtractDataFromSites(sitesWithSymbol[count].site.Url.Replace("{0}", sitesWithSymbol[count].symbol.Symbol));
                    if(!String.IsNullOrEmpty(fileContent))
                    {
                        var stockFile = new StockFile();
                        stockFile.SiteId = sitesWithSymbol[count].site.ID;
                        stockFile.StockId = sitesWithSymbol[count].symbol.ID;
                        stockFile.FileName = sitesWithSymbol[count].site.Name + "_" + sitesWithSymbol[count].symbol.Symbol;
                        stockFile.File = fileContent;
                        stockFile.DownloadedDate = DateTime.Now;

                        context.StockFiles.AddObject(stockFile);
                    }
                }

                context.SaveChanges();
                isExtracted = true;
                return isExtracted;
            }
        }
Пример #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            StockFile stockFile = db.StockFiles.Find(id);

            db.StockFiles.Remove(stockFile);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #5
0
 public ActionResult Edit([Bind(Include = "stockNumber,stockCode,category,description,albumArtUrl,status,quantity,pricePerItem,costPrice,sellingPrice")] StockFile stockFile)
 {
     if (ModelState.IsValid)
     {
         db.Entry(stockFile).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(stockFile));
 }
Пример #6
0
        public ActionResult Create([Bind(Include = "stockNumber,stockCode,category,description,albumArtUrl,status,quantity,pricePerItem,costPrice,sellingPrice")] StockFile stockFile)
        {
            if (ModelState.IsValid)
            {
                stockFile.pricePerItem = stockFile.costPrice / stockFile.quantity;
                db.StockFiles.Add(stockFile);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(stockFile));
        }
Пример #7
0
        // GET: StockFiles/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StockFile stockFile = db.StockFiles.Find(id);

            if (stockFile == null)
            {
                return(HttpNotFound());
            }
            return(View(stockFile));
        }
        public void TestWatcherFileFindEventAddItemIntoObservableCollection()
        {
            //given
            var watcher = new Mock <IFolderWatcher>();
            var file    = new StockFile();
            var vm      = new MainViewModel(watcher.Object);

            //when
            watcher.Raise(w => w.FileFound += null, new FileFoundEventHandlerArgs {
                File = file
            });
            //then
            Assert.That(vm.Files.Count, Is.EqualTo(1));
            Assert.That(vm.Files[0], Is.SameAs(file));
        }
        public static List <StockFile> GetFiles(string folder, string ext)
        {
            var list = new List <StockFile>();

            #region 读取相关文件
            DirectoryInfo di = new DirectoryInfo(folder);
            foreach (FileInfo file in di.GetFiles(ext))
            {
                var entry = new StockFile
                {
                    Path     = folder,
                    Ext      = file.Extension,
                    FileName = file.Name,
                    FullName = file.FullName
                };
                var fileNameString = file.Name.Substring(0, 18);
                foreach (var replace in _replaceArray)
                {
                    fileNameString = fileNameString.Replace(replace, "");
                }
                var index = fileNameString.IndexOf("(");
                if (index > 0)
                {
                    entry.XZQDM = fileNameString.Substring(index + 1, 6);
                    entry.XZQMC = fileNameString.Substring(0, index);
                }

                list.Add(entry);
            }
            #endregion


            #region  读取当前目录下的文件夹

            DirectoryInfo[] dis = di.GetDirectories();
            foreach (var childFolder in dis)
            {
                var result = GetFiles(childFolder.FullName, ext);
                if (result.Count > 0)
                {
                    list.AddRange(result);
                }
            }
            #endregion


            return(list);
        }
        public async void TestReadFile()
        {
            //given
            const string filePath   = "c:\\d\\d\\test.txt";
            var          fileLines  = new[] { "" };
            var          stockFile  = new StockFile();
            var          fileHelper = Mock.Of <IFileReaderHelper>(h => h.ReadText(filePath) == fileLines);
            var          mapper     = Mock.Of <ITextStockFileMapper>(m => m.Map("test", fileLines) == stockFile);

            var reader = new TextStockFileReader(mapper, fileHelper);
            //when
            var result = await reader.ReadFile(filePath);

            //then
            Assert.That(result, Is.SameAs(stockFile));
        }
Пример #11
0
        public async void TestReadFile()
        {
            //given
            const string filePath   = "c:\\d\\d\\test.xml";
            var          xmlFile    = new XmlStockFile();
            var          stockFile  = new StockFile();
            var          fileHelper = Mock.Of <IXmlStockFileReaderHelper>(h => h.ReadXmlFile(filePath) == xmlFile);
            var          mapper     = Mock.Of <IXmlStockFileMapper>(m => m.Map("test", xmlFile) == stockFile);

            var reader = new XmlStockFileReader(mapper, fileHelper);
            //when
            var result = await reader.ReadFile(filePath);

            //then
            Assert.That(result, Is.SameAs(stockFile));
        }
        public static List <StockFile> GetExcelFiles(string folder, string ext)
        {
            var list = new List <StockFile>();

            #region 读取文件夹
            DirectoryInfo di = new DirectoryInfo(folder);
            foreach (FileInfo file in di.GetFiles(ext))
            {
                var fileName = file.Name;
                var key      = fileName.Substring(0, 2);
                if (_keyHead.Contains(key))
                {
                    var entry = new StockFile
                    {
                        Path      = folder,
                        Ext       = file.Extension,
                        FileName  = file.Name,
                        FullName  = file.FullName,
                        TableName = key
                    };
                    var index = fileName.IndexOf("(");
                    if (index > 0)
                    {
                        entry.XZQDM = fileName.Substring(index + 1, 6);
                        entry.XZQMC = fileName.Substring(3, index - 3);
                    }
                    list.Add(entry);
                }
            }
            #endregion

            #region  读取当前目录下的文件夹

            DirectoryInfo[] dis = di.GetDirectories();
            foreach (var childFolder in dis)
            {
                var result = GetExcelFiles(childFolder.FullName, ext);
                if (result.Count > 0)
                {
                    list.AddRange(result);
                }
            }
            #endregion

            return(list);
        }
Пример #13
0
        private CollectExcel Program(StockFile stockfile, List <ExcelField> fields)
        {
            IWorkbook workbook = stockfile.FullName.OpenExcel();

            if (workbook != null)
            {
                ISheet sheet = workbook.GetSheetAt(0);
                if (sheet != null)
                {
                    int   count = 0;
                    IRow  row   = null;
                    ICell cell  = null;
                    for (var i = CollectTable.StartIndex; i <= sheet.LastRowNum; i++)
                    {
                        row = sheet.GetRow(i);
                        if (row == null)
                        {
                            break;
                        }
                        cell = row.GetCell(0);
                        if (cell.ToString().ToLower() == "合计".ToLower())
                        {
                            var result  = Analyze(row, fields);
                            var collect = new CollectExcel
                            {
                                XZQDM  = stockfile.XZQDM,
                                XZQMC  = stockfile.XZQMC,
                                Count  = count,
                                Values = result
                            };
                            return(collect);
                        }
                        else if (Regex.IsMatch(cell.ToString(), "^33[0-9]{7}$"))
                        {
                            count++;
                        }
                    }
                }
            }
            return(null);
        }
Пример #14
0
        // GET: StockFiles/Edit/5
        public ActionResult Edit(int?id)
        {
            var catList  = new List <SelectListItem>();
            var DirQuery = from e in db.StockCategories select e;

            foreach (var m in DirQuery)
            {
                catList.Add(new SelectListItem {
                    Value = m.category, Text = m.category
                });
            }
            ViewBag.catelist = catList;
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StockFile stockFile = db.StockFiles.Find(id);

            if (stockFile == null)
            {
                return(HttpNotFound());
            }
            return(View(stockFile));
        }
Пример #15
0
        public static void Import3(string savemdbFile, StockFile stock, List <StockTable> tables, string XZSDM, string XZSMC)
        {
            IWorkspace workspaceA = savemdbFile.OpenGDBWorkspace();
            //IFeatureWorkspace featureWorkspaceA = workspaceA as IFeatureWorkspace;
            //IWorkspaceEdit workspaceEditA = featureWorkspaceA as IWorkspaceEdit;

            //workspaceEditA.StartEditing(true);
            //workspaceEditA.StartEditOperation();



            IWorkspace workspaceB = stock.FullName.OpenAccessFileWorkSpace();


            #region  插入表
            foreach (var table in tables)
            {
                if (table.IsSpace == false)
                {
                    continue;
                }

                IFeatureClass featureClassA = workspaceA.GetFeatureClass(table.Name);

                var dictA = GetFieldIndex(featureClassA, table.Fields);//字段 对应Index

                #region 2
                //IFeatureClassLoad featureClassLoadA = featureClassA as IFeatureClassLoad;
                //ISchemaLock schemaLock = featureClassA as ISchemaLock;
                //try
                //{
                //    //schemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock);
                //    featureClassLoadA.LoadOnlyMode = true;
                //    using (ComReleaser comReleaser=new ComReleaser())
                //    {
                //        IFeatureBuffer featureBufferA = featureClassA.CreateFeatureBuffer();

                //        comReleaser.ManageLifetime(featureBufferA);

                //        #region 设置地级市代码和名称
                //        int XZSDMIndex = featureClassA.Fields.FindField("XZSDM");
                //        var XZSMCIndex = featureClassA.Fields.FindField("XZSMC");
                //        featureBufferA.set_Value(XZSDMIndex, XZSDM);
                //        featureBufferA.set_Value(XZSMCIndex, XZSMC);
                //        #endregion

                //        IFeatureCursor featureCursorA = featureClassA.Insert(true);
                //        comReleaser.ManageLifetime(featureCursorA);

                //        IFeatureClass featureClassB = workspaceB.GetFeatureClass(table.Name);
                //        var dictB = GetFieldIndex(featureClassB, table.Fields);

                //        IFeatureCursor featureCursorB = featureClassB.Search(null, true);
                //        IFeature featureB = featureCursorB.NextFeature();
                //        while (featureB != null)
                //        {
                //            featureBufferA.Shape = featureB.ShapeCopy;

                //            #region 给每个字段赋值
                //            foreach (var field in table.Fields)
                //            {
                //                object val = null;
                //                if (dictB.ContainsKey(field.Name))
                //                {
                //                    val = featureB.get_Value(dictB[field.Name]);
                //                }
                //                if (val != null)
                //                {
                //                    if (dictA.ContainsKey(field.Name))
                //                    {
                //                        featureBufferA.set_Value(dictA[field.Name], val);
                //                    }
                //                }

                //            }
                //            #endregion
                //            featureCursorA.InsertFeature(featureBufferA);


                //            featureB = featureCursorB.NextFeature();
                //        }
                //        featureCursorA.Flush();
                //    }
                //}
                //catch (Exception)
                //{

                //}
                //finally
                //{
                //    featureClassLoadA.LoadOnlyMode = false;
                //    schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);
                //}

                #endregion

                #region 1

                IFeatureBuffer featureBufferA = featureClassA.CreateFeatureBuffer();

                #region 设置地级市代码和名称
                int XZSDMIndex = featureClassA.Fields.FindField("XZSDM");
                var XZSMCIndex = featureClassA.Fields.FindField("XZSMC");
                var XZXDMIndex = featureClassA.Fields.FindField("XZXDM");
                var XZXMCIndex = featureClassA.Fields.FindField("XZXMC");
                featureBufferA.set_Value(XZSDMIndex, XZSDM);
                featureBufferA.set_Value(XZSMCIndex, XZSMC);
                featureBufferA.set_Value(XZSDMIndex, stock.XZQDM);
                featureBufferA.set_Value(XZXMCIndex, stock.XZQMC);
                #endregion

                IFeatureCursor featureCursorA = featureClassA.Insert(true);


                IFeatureClass featureClassB = workspaceB.GetFeatureClass(table.Name);
                var           dictB         = GetFieldIndex(featureClassB, table.Fields);

                IFeatureCursor featureCursorB = featureClassB.Search(null, true);
                IFeature       featureB       = featureCursorB.NextFeature();
                var            index          = 0;
                while (featureB != null)
                {
                    featureBufferA.Shape = featureB.ShapeCopy;

                    #region 给每个字段赋值
                    object val = null;
                    foreach (var field in table.Fields)
                    {
                        if (dictB.ContainsKey(field.Name))
                        {
                            val = featureB.get_Value(dictB[field.Name]);
                        }
                        if (val != null)
                        {
                            if (dictA.ContainsKey(field.Name))
                            {
                                featureBufferA.set_Value(dictA[field.Name], val);
                            }
                        }
                    }
                    #endregion
                    featureCursorA.InsertFeature(featureBufferA);
                    Marshal.ReleaseComObject(featureB);
                    if (index % 1000 == 0)
                    {
                        featureCursorA.Flush();
                    }
                    featureB = featureCursorB.NextFeature();
                }
                featureCursorA.Flush();

                Marshal.ReleaseComObject(featureCursorA);
                Marshal.ReleaseComObject(featureCursorB);
                Marshal.ReleaseComObject(featureClassB);
                Marshal.ReleaseComObject(featureBufferA);
                #endregion
                Marshal.ReleaseComObject(featureClassA);
            }
            #endregion

            //workspaceEditA.StopEditOperation();
            //workspaceEditA.StopEditing(true);
            Marshal.ReleaseComObject(workspaceB);
            //Marshal.ReleaseComObject(workspaceEditA);
            //Marshal.ReleaseComObject(featureWorkspaceA);
            Marshal.ReleaseComObject(workspaceA);
        }