| | |
| | | using ExportMap.db; |
| | | using ExportMap.Models; |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.Configuration; |
| | | using System.Data; |
| | |
| | | RomoveNoneFiles(list); |
| | | if (list.Count == 0) return 0; |
| | | |
| | | err = LinkFiles(list); |
| | | if (!string.IsNullOrEmpty(err)) return 0; |
| | | //err = LinkFiles(list); |
| | | //if (!string.IsNullOrEmpty(err)) return 0; |
| | | MoveFiles(list); |
| | | |
| | | int count = 0; |
| | | for (int i = 0; i < 25; i++) |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 插入数据发布表 |
| | | /// </summary> |
| | | private void InsertInto(List<SysMeta> list, List<SpatialItem> items, XYZArgs args) |
| | | { |
| | | foreach (SysMeta meta in list) |
| | | { |
| | | IEnumerable<SpatialItem> iterator = from item in items where item.Name.Equals(meta.id + "_" + meta.name) select item; |
| | | if (null == iterator) return; |
| | | |
| | | meta.verid = iterator.First().id; |
| | | InsertToDB(meta, args); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 插入数据库 |
| | | /// </summary> |
| | | private static void InsertToDB(SysMeta meta, XYZArgs args) |
| | | { |
| | | if (PubDBHelper.IsPublish(meta.id)) return; |
| | | |
| | | SysPublish sys = NewPublish(meta, args); |
| | | sys.path = meta.id + "\\" + meta.name; |
| | | |
| | | int pubid = PubDBHelper.InsertPublish(sys); |
| | | if (pubid > 0) |
| | | { |
| | | PubDBHelper.InsertMetaPub(meta.id, pubid, args.userId); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 创建数据发布类 |
| | | /// </summary> |
| | | private static SysPublish NewPublish(SysMeta meta, XYZArgs args) |
| | | { |
| | | SysPublish sp = new SysPublish(); |
| | | sp.name = meta.name; |
| | | sp.url = GetReleaseUrl(meta, meta.verid); |
| | | sp.type = meta.type; |
| | | sp.status = 3; |
| | | sp.dirid = meta.dircode; |
| | | sp.depid = args.depcode; |
| | | sp.min = 0; |
| | | sp.max = 0; |
| | | sp.json = null; |
| | | sp.create_user = args.userId; |
| | | sp.geom = null; |
| | | sp.bak = null; |
| | | |
| | | return sp; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 移动文件 |
| | | /// </summary> |
| | | private static void MoveFiles(List<SysMeta> metas) |
| | | { |
| | | string uploadFolder = Tool.GetSetting("uploadFolder"); |
| | | string sgFolder = Path.Combine(uploadFolder, "SG"); |
| | | if (!Directory.Exists(sgFolder)) Directory.CreateDirectory(sgFolder); |
| | | |
| | | List<string> list = new List<string>(); |
| | | foreach (SysMeta meta in metas) |
| | | { |
| | | string source = Path.Combine(uploadFolder, meta.path); |
| | | File.Move(source, Path.Combine(sgFolder, meta.id + "_" + meta.name)); |
| | | |
| | | if ("mpt".Equals(meta.type)) |
| | | { |
| | | string midx = Path.Combine(uploadFolder, meta.path.Replace(".mpt", ".midx")); |
| | | File.Move(midx, Path.Combine(sgFolder, meta.id + "_" + meta.name.Replace(".mpt", ".midx"))); |
| | | |
| | | string strmi = Path.Combine(uploadFolder, meta.path.Replace(".mpt", ".strmi")); |
| | | File.Move(strmi, Path.Combine(sgFolder, meta.id + "_" + meta.name.Replace(".mpt", ".strmi"))); |
| | | } |
| | | } |
| | | } |
| | | |
| | | #region 链接文件 |
| | | /// <summary> |
| | | /// 链接文件 |
| | | /// </summary> |
| | | private string LinkFiles(List<SysMeta> metas) |
| | |
| | | if (!File.Exists(targetMidx)) list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetMidx, midx)); |
| | | if (!File.Exists(targetStrmi)) list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetStrmi, strmi)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 插入数据发布表 |
| | | /// </summary> |
| | | private void InsertInto(List<SysMeta> list, List<SpatialItem> items, XYZArgs args) |
| | | { |
| | | foreach (SysMeta meta in list) |
| | | { |
| | | SpatialItem si = (from item in items where meta.name.Equals(item.Name) select item).First(); |
| | | if (null == si) continue; |
| | | |
| | | meta.verid = si.id; |
| | | InsertToDB(meta, args); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 插入数据库 |
| | | /// </summary> |
| | | private static void InsertToDB(SysMeta meta, XYZArgs args) |
| | | { |
| | | if (PubDBHelper.IsPublish(meta.id)) return; |
| | | |
| | | SysPublish sys = NewPublish(meta, args); |
| | | sys.path = meta.id + "\\" + meta.name; |
| | | |
| | | int pubid = PubDBHelper.InsertPublish(sys); |
| | | if (pubid > 0) |
| | | { |
| | | PubDBHelper.InsertMetaPub(meta.id, pubid, args.userId); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 创建数据发布类 |
| | | /// </summary> |
| | | private static SysPublish NewPublish(SysMeta meta, XYZArgs args) |
| | | { |
| | | SysPublish sp = new SysPublish(); |
| | | sp.name = meta.name; |
| | | sp.url = GetReleaseUrl(meta, meta.verid); |
| | | sp.type = meta.type; |
| | | sp.status = 3; |
| | | sp.dirid = meta.dircode; |
| | | sp.depid = args.depcode; |
| | | sp.min = 0; |
| | | sp.max = 0; |
| | | sp.json = null; |
| | | sp.create_user = args.userId; |
| | | sp.geom = null; |
| | | sp.bak = null; |
| | | |
| | | return sp; |
| | | } |
| | | #endregion |
| | | } |
| | | } |