ReadFile() public static method

public static ReadFile ( string pathName ) : string
pathName string
return string
        /// <summary>
        /// Default constructor, creates an Instance of the MainViewViewModel class
        /// </summary>
        public MainViewViewModel()
        {
            JsonUtil.LoadJson <MainViewModel>(AppData.Instance.SaveDataFileName, out m_Model);
            if (m_Model == null)
            {
                m_Model = new MainViewModel();
                JsonUtil.SaveJson <MainViewModel>(AppData.Instance.SaveDataFileName, m_Model);
            }
            AppData.Instance.Template = FileUtil.ReadFile(AppData.Instance.TemplateFileName);

            ExcelIMEINumbers = new ObservableCollection <string>();

            AddYearCommand = new RelayCommand(() => { Year++; });
            SubYearCommand = new RelayCommand(() => { Year--; });

            AddWeekCommand = new RelayCommand(() => { Week++; });
            SubWeekCommand = new RelayCommand(() => { Week--; });

            AddNumberCommand = new RelayCommand(() => { Number++; });
            SubNumberCommand = new RelayCommand(() => { Number--; });

            LoadExcelFileCommand = new RelayCommand(() => {
                FileUtil.OpenDialog(out string filepath, "Excel Workbook | *.xlsx");
                ObservableCollection <string> imeiNumbers = OfficeUtil.OpenExcelFile(filepath);
                ExcelIMEINumbers = imeiNumbers;
            });

            ClearCommand = new RelayCommand(() => {
                ExcelIMEINumbers.Clear();
            });

            GenerateCommand = new RelayCommand(GenerateOutput);
        }
Example #2
0
        /// <summary>
        /// 生成编辑界面
        /// </summary>
        /// <param name="baseInput"></param>
        /// <param name="editInputs"></param>
        /// <returns></returns>
        private async Task <string> CreateEdit(SystemCodeGenerationBaseInput baseInput, IEnumerable <SystemCodeGenerationEditInput> editInputs)
        {
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Server.MapPath("/DataUsers/Templates/CodeGeneration/Edit.txt"));

            //替换操作

            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpaceLower}}", baseInput.TableName.Split('_')[0].ToLower());
            returnContent = returnContent.Replace("{{NameSpace}}", baseInput.TableName.Split('_')[0]);
            //2:控制器名称
            returnContent = returnContent.Replace("{{ControllerName}}", baseInput.TableName.Replace(baseInput.TableName.Split('_')[0], "").Replace("_", "").ToLower());
            //3:描述
            returnContent = returnContent.Replace("{{Description}}", baseInput.Description);
            //4:类名称
            returnContent = returnContent.Replace("{{ClassName}}", baseInput.TableName.Replace("_", ""));
            //5:主键名称
            returnContent = returnContent.Replace("{{KeyName}}", baseInput.TableKey);
            //6:主体
            foreach (var edit in editInputs)
            {
                switch (edit.ControlType)
                {
                case EnumControlType.文本框:

                    break;
                }
            }
            return(returnContent);
        }
Example #3
0
        static async Task Main()
        {
            //加载配置文件
            ConfigUtil.Load();

            #region 测试


            #endregion
            while (true)
            {
                var s          = ConsoleUtil.Read(ReadMode.FolderPath);//读取用户输入的路径
                var files      = FileUtil.GetAllFile(s, ".html");
                var fileModels = new List <FileModel>();
                foreach (var item in files)
                {
                    var r = await FileUtil.ReadFile(item);

                    fileModels.Add(r);
                }


                //var s= ConsoleUtil.Read(i=>i.Append(".html"));
                //  Console.WriteLine(s);
                //  var key2 = Console.ReadKey();
            }
        }
        /// <summary>
        ///     生成编辑页面
        /// </summary>
        /// <param name="input"></param>
        /// <param name="editInputs"></param>
        /// <returns></returns>
        private Task <string> CreateEdit(SystemCodeGenerationBaseInput input, IEnumerable <SystemCodeGenerationEditInput> editInputs)
        {
            var str = "";

            foreach (var item in editInputs)
            {
                if (item.ControlType == Domain.Models.Enums.EnumControlType.文本域)
                {
                    str += $@"  <div class='hr-line-dashed'></div>
                            <div class='form-group'>
                                <label class='col-sm-2 control-label'> {item.ControlName}:</label>
                                <div class='input-group  col-sm-10'>
                                      <textarea  rows='3' name='{item.ControlId}' id='{item.ControlId}' class='form-control'>< /textarea>
                                </div>
                            </div>";
                }
                else
                {
                    str += $@"  <div class='hr-line-dashed'></div>
                            <div class='form-group'>
                                <label class='col-sm-2 control-label'> {item.ControlName}:</label>
                                <div class='input-group  col-sm-10'>
                                    <input type='text' name='{item.ControlId}' id='{item.ControlId}' class='form-control input-sm' >
                                </div>
                            </div>";
                }
            }
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Path.Combine("DataUsers", "Templates", "CodeGeneration", "Edit.txt"));

            //主体
            returnContent = returnContent.Replace("{{Body}}", str);
            return(Task.Factory.StartNew(() => returnContent));
        }
Example #5
0
        private void EnsureLoaded()
        {
            if (loaded)
            {
                return;
            }

            foreach (var pkg in App.Catalog <IPackageManager>().Default().EnumeratePackages())
            {
                foreach (var e in pkg.GetMetadata(PackageSection.Commands))
                {
                    var    name = e.String("file");
                    string content;

                    if (!FileUtil.ReadFile(Path.Combine(pkg.Directory.FullName, "data", name), Encoding.UTF8, out content))
                    {
                        return;
                    }

                    var metas = CommandReader.Read(content);
                    RegisterCommands(metas);
                }
            }


            loaded = true;
        }
        /// <summary>
        /// 生成Logic接口
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private Task <string> CreteLogicInterface(SystemCodeGenerationBaseInput input)
        {
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Path.Combine("DataUsers", "Templates", "CodeGeneration", "ILogic.txt"));

            //替换操作

            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpace}}", input.Name.Split('_')[0]);
            //2:表名
            returnContent = returnContent.Replace("{{ClassName}}", input.Name.Replace("_", ""));
            //3:描述
            returnContent = returnContent.Replace("{{Description}}", input.Value);
            //4:是否分页
            if (input.IsPaging)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendFormat("Task<PagedResults<{1}>> Paging{0}(QueryParam queryParam);", input.Name.Replace("_", ""), input.Name.Replace("_", ""));
                returnContent = returnContent.Replace("{{PagingAction}}", sb.ToString());
            }
            else
            {
                returnContent = returnContent.Replace("{{PagingAction}}", "");
            }
            //5:保存方法
            StringBuilder sbsa = new StringBuilder();

            sbsa.AppendFormat("    Task<OperateStatus> Save{0} ({1} input);", input.Name.Replace("_", ""), input.Name.Replace("_", ""));
            returnContent = returnContent.Replace("{{SaveAction}}", sbsa.ToString());
            return(Task.Factory.StartNew(() => returnContent));
        }
Example #7
0
        public void ReadFleet(string filename)
        {
            // open stream to fleet file
            StreamReader fin = FileUtil.ReadFile(filename);

            try
            {
                string versionOrFleetName = fin.ReadLine();

                if (versionOrFleetName != null && versionOrFleetName.StartsWith(VersionTwoFleet))
                {
                    CreateVersionTwoFleet(fin);
                }
                else
                {
                    this.FleetName = versionOrFleetName;
                    CreateVersionOneFleet(fin);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message + " in " + filename);
            }
            finally
            {
                fin.Close();
            }
        }
        private async Task <RestoreResult> RestoreFromDir(Uri destUri)
        {
            if (!HasPersistablePermissionsAtUri(destUri))
            {
                throw new InvalidOperationException("No permission at URI");
            }

            var directory = DocumentFile.FromTreeUri(_context, destUri);
            var files     = directory.ListFiles();

            var mostRecentBackup = files
                                   .Where(f => f.IsFile && f.Type == Backup.MimeType && f.Name.EndsWith(Backup.FileExtension) &&
                                          f.Length() > 0 && f.CanRead())
                                   .OrderByDescending(f => f.LastModified())
                                   .FirstOrDefault();

            if (mostRecentBackup == null || mostRecentBackup.LastModified() <= _preferences.MostRecentBackupModifiedAt)
            {
                return(new RestoreResult());
            }

            _preferences.MostRecentBackupModifiedAt = mostRecentBackup.LastModified();
            var password = await GetBackupPassword();

            if (password == null)
            {
                throw new InvalidOperationException("No password defined.");
            }

            var data = await FileUtil.ReadFile(_context, mostRecentBackup.Uri);

            var backup = Backup.FromBytes(data, password);

            return(await _restoreService.RestoreAndUpdateAsync(backup));
        }
        /// <summary>
        /// 生成DataAccess接口实现
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private string CreteDataAccess(SystemCodeGenerationBaseInput input)
        {
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Path.Combine("DataUsers", "Templates", "CodeGeneration", "Repository.txt"));

            //替换操作

            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpace}}", input.Name.Split('_')[0]);
            //2:表名
            returnContent = returnContent.Replace("{{ClassName}}", input.Name.Replace("_", ""));
            //3:描述
            returnContent = returnContent.Replace("{{Description}}", input.Value);
            //4:分页
            if (input.IsPaging)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine($" public Task<PagedResults<{input.Name.Replace("_", "")}>> Paging{input.Name.Replace("_", "")}(QueryParam queryParam)");
                sb.AppendLine("{");
                sb.AppendLine($" string sql=\"select * from {input.Name.Replace("System", "Sys")}\";");
                sb.AppendLine($" return SqlMapperUtil.PagingQuery<{input.Name.Replace("_", "")}>(sql, queryParam);");
                sb.AppendLine("}");
                returnContent = returnContent.Replace("{{PagingAction}}", sb.ToString());
            }
            else
            {
                returnContent = returnContent.Replace("{{PagingAction}}", "");
            }
            return(returnContent);
        }
Example #10
0
        static void ConvertDataset()
        {
            var list    = FileUtil.ReadFile(@"c:\temp\temp.csv");
            var dataset = new Points();

            foreach (var s in list)
            {
                var arr = s.Split(';');
                if (arr.Length != 4)
                {
                    continue;
                }


                double x = arr[0].ToDouble();
                double y = arr[1].ToDouble();
                var    i = arr[2].ToInt();
                var    t = arr[3].ToInt();

                dataset.Add(new P {
                    X = x, Y = y, I = i, T = t
                });
            }

            FileUtil.SaveDataSetToFile(dataset, "temp.ser");
        }
Example #11
0
        public bool ChangeTheme(Identifier themeKey)
        {
            ReadThemes();
            ThemeInfo th;

            if (themes.TryGetValue(themeKey, out th))
            {
                if (th.File.Exists)
                {
                    string content;

                    if (!FileUtil.ReadFile(th.File, Encoding.UTF8, out content))
                    {
                        return(false);
                    }

                    foreach (var s in ThemeReader.Read(content))
                    {
                        Register(s.StyleId, s.Style);
                    }

                    foreach (var v in App.Component <IViewManager>().EnumerateViews().OfType <Control>())
                    {
                        v.Invalidate(true);
                    }
                }

                Theme = th;
                OnThemeChanged();
                return(true);
            }

            return(false);
        }
Example #12
0
        private async Task <RestoreResult> RestoreFromDir(Uri destUri)
        {
            if (!HasPersistablePermissionsAtUri(destUri))
            {
                throw new Exception("No permission at URI");
            }

            var directory = DocumentFile.FromTreeUri(_context, destUri);
            var files     = directory.ListFiles();

            var mostRecentBackup = files
                                   .Where(f => f.IsFile && f.Type == Backup.MimeType && f.Name.EndsWith(Backup.FileExtension) && f.Length() > 0 && f.CanRead())
                                   .OrderByDescending(f => f.LastModified())
                                   .FirstOrDefault();

            if (mostRecentBackup == null || mostRecentBackup.LastModified() <= _preferences.MostRecentBackupModifiedAt)
            {
                return(new RestoreResult());
            }

            _preferences.MostRecentBackupModifiedAt = mostRecentBackup.LastModified();
            var password = await SecureStorageWrapper.GetAutoBackupPassword();

            if (password == null)
            {
                throw new Exception("No password defined.");
            }

            var data = await FileUtil.ReadFile(_context, mostRecentBackup.Uri);

            var backup = Backup.FromBytes(data, password);

            var(authsAdded, authsUpdated) = await _authSource.AddOrUpdateMany(backup.Authenticators);

            var categoriesAdded = backup.Categories != null
                ? await _categorySource.AddMany(backup.Categories)
                : 0;

            if (backup.AuthenticatorCategories != null)
            {
                await _authSource.AddOrUpdateManyCategoryBindings(backup.AuthenticatorCategories);
            }

            var customIconsAdded = backup.CustomIcons != null
                ? await _customIconSource.AddMany(backup.CustomIcons)
                : 0;

            try
            {
                await _customIconSource.CullUnused();
            }
            catch (Exception e)
            {
                // ignored
                Logger.Error(e);
            }

            return(new RestoreResult(authsAdded, authsUpdated, categoriesAdded, customIconsAdded));
        }
Example #13
0
 /// <summary>
 /// 异步添加种子数据
 /// </summary>
 /// <param name="myContext"></param>
 /// <param name="WebRootPath"></param>
 /// <returns></returns>
 public static async Task SeedDataAsync(MyContext myContext, string WebRootPath)
 {
     try
     {
         Console.WriteLine("Config data init...");
         Console.WriteLine($"Is multi-DataBase: {Appsettings.app(new string[] { "MutiDBEnabled" })}");
         if (Appsettings.app(new string[] { "MutiDBEnabled" }).ObjectToBool())
         {
             Console.WriteLine($"Master DB Type: {MyContext.DbType}");
             Console.WriteLine($"Master DB ConnectString: {MyContext.ConnectionString}");
             Console.WriteLine();
         }
         else
         {
             Console.WriteLine("DB Type: " + MyContext.DbType);
             Console.WriteLine("DB ConnectString: " + MyContext.ConnectionString);
         }
         Console.WriteLine("Create Database...");
         myContext.Db.DbMaintenance.CreateDatabase();
         var classes = Assembly.Load("MyWebApiProject.Model").GetTypes().Where(x => x.Namespace == "MyWebApiProject.Model.DbModel").ToArray();
         myContext.CreateTableByEntity(false, classes);
         Console.WriteLine("Database is  created success!");
         Console.WriteLine();
         if (Appsettings.app(new string[] { "AppSettings", "SeedDBDataEnabled" }).ObjectToBool())
         {
             if (string.IsNullOrEmpty(WebRootPath))
             {
                 throw new Exception("获取wwwroot路径时,异常!无法进行DBDataSeed");
             }
             SeedDataFolder = Path.Combine(WebRootPath, SeedDataFolder);
             Console.WriteLine("Seeding database...");
             foreach (var item in classes)
             {
                 if (!(((ReflectionUtil.ExportByClassType(typeof(MyContext), item, "ExitList", null)) as Task <bool>).Result) && File.Exists(string.Format(SeedDataFolder, item.Name)))
                 {
                     string json = FileUtil.ReadFile(string.Format(SeedDataFolder, item.Name));
                     if (json != string.Empty)
                     {
                         object obj    = JsonUtil.ParseObjByJson(ReflectionUtil.CreateGeneric(typeof(List <>), item).GetType(), json);
                         bool   result = (ReflectionUtil.ExportByClassType(typeof(MyContext), item, "InsertTables", new object[] { obj }) as Task <bool>).Result;
                         if (result)
                         {
                             Console.WriteLine($"Tables:{item.Name} Insert Data Suceess!");
                         }
                         else
                         {
                             Console.WriteLine($"Tables:{item.Name} Insert Data Fail!");
                         }
                     }
                 }
             }
             Console.WriteLine();
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Example #14
0
        // lat lon points data
        static void LatLonParse()
        {
            //http://download.geonames.org/export/dump/

            var          rand      = new Random();
            const string name      = "cities1000";
            var          lines     = FileUtil.ReadFile(string.Format("c:\\temp\\{0}.txt", name));
            var          dataset   = new Points();
            const int    numOfType = 3;

            foreach (var line in lines)
            {
                var delimiters = new[] { ' ', '\t' };
                var arr        = line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
                if (arr.Length < 10)
                {
                    continue;
                }

                double?lon = null;
                double?lat = null;
                var    id  = arr[0].ToInt();

                for (var i = 1; i < arr.Length - 2; i++)
                {
                    double d1, d2, d3;
                    var    dp1 = Double.TryParse(arr[i], NumberStyles.Float, NumberFormatInfo.InvariantInfo, out d1);
                    var    dp2 = Double.TryParse(arr[i + 1], NumberStyles.Float, NumberFormatInfo.InvariantInfo, out d2);
                    var    dp3 = Double.TryParse(arr[i + 2], NumberStyles.Float, NumberFormatInfo.InvariantInfo, out d3);

                    if (dp1 && dp2 && dp3)
                    {
                        lat = d2;
                        lon = d3;
                        break;
                    }
                    if (dp1 && dp2)
                    {
                        lat = d1;
                        lon = d2;
                        break;
                    }
                }

                if (lon.HasValue && lat.HasValue && MathTool.IsLonValid(lon.Value) && MathTool.IsLatValid(lat.Value))
                {
                    dataset.Add(new P {
                        X = lon.Value, Y = lat.Value, I = id, T = (rand.Next(numOfType) + 1)
                    });
                }
            }

            SaveCsvData(dataset, new FileInfo(string.Format("c:\\temp\\{0}.csv", name)));
        }
Example #15
0
        public void QueryTemp()
        {
            var tuple = GetPath();

            if (tuple.IsNull())
            {
                return;
            }
            Constant.Response.ContentEncoding = Encoding.GetEncoding("gb2312");
            Constant.Response.Write(FileUtil.ReadFile(tuple.Item1));
            Constant.Response.End();
        }
Example #16
0
        public static SimulationState LoadFromFile(string filename)
        {
            string data = FileUtil.ReadFile(filename);

            var jsonSerializerSettings = new JsonSerializerSettings()
            {
                TypeNameHandling           = TypeNameHandling.All,
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            };

            return(JsonConvert.DeserializeObject <SimulationState>(data, jsonSerializerSettings));
        }
Example #17
0
        private static MAP ReadFile(string fileName)
        {
            string content;

            if (!FileUtil.ReadFile(fileName, Encoding.UTF8, out content))
            {
                return(null);
            }

            var json = new JsonParser(content);

            return(json.Parse() as MAP);
        }
Example #18
0
        /// <summary>
        /// 获得文件和最后修改时间;
        /// </summary>
        /// <param name="virtualPath"></param>
        /// <returns></returns>
        public static ContentAndModifyDatetime GetMapPathContentAndLastModifyTime(string virtualPath)
        {
            var nameFile = AppDomainUtil.GetMapPath(virtualPath);

            if (File.Exists(nameFile))
            {
                string val = FileUtil.ReadFile(nameFile);
                return(new ContentAndModifyDatetime {
                    Content = val, LastModifyDatetime = new FileInfo(nameFile).LastWriteTime
                });
            }
            return(null);
        }
Example #19
0
        public static string CodeWithLineNum(string code)
        {
            var lines = FileUtil.ReadFile(new StringReader(code));
            var builder = new StringBuilder();
            var linenum = 1;
            foreach (var line in lines) {
                PaddedNumber(builder, linenum++, 4);
                builder.Append("  ");
                builder.Append(line);
                builder.Append("\n");
            }

            return builder.ToString();
        }
Example #20
0
        private Document CreateDocument(FileInfo fileName, Encoding encoding)
        {
            fileName.Refresh();

            if (!fileName.Exists)
            {
                return(Document.FromString(""));
            }

            string txt = null;
            var    res = FileUtil.ReadFile(fileName, encoding, out txt);

            return(res ? Document.FromString(txt) : null);
        }
        public static FieldSpecList ReadSchema(string filename, DefinitionFormat format)
        {
            switch (format)
            {
            case DefinitionFormat.Text:
                return(ReadTextSchema(FileUtil.ReadFile(filename)));

            case DefinitionFormat.XML:
                return(ReadXMLSchema(filename));

            default:
                throw new ArgumentOutOfRangeException("format=" + format);
            }
        }
Example #22
0
        /// <summary>
        /// 生成编辑界面Js
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private async Task <string> CreateEditJs(SystemCodeGenerationBaseInput input)
        {
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Server.MapPath("/DataUsers/Templates/CodeGeneration/EditJs.txt"));

            //替换操作

            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpace}}", input.TableName.Split('_')[0]);
            //2:控制器名称
            returnContent = returnContent.Replace("{{ControllerName}}", input.TableName.Replace(input.TableName.Split('_')[0], "").Replace("_", ""));
            //3:主键名称
            returnContent = returnContent.Replace("{{KeyName}}", input.TableKey);

            return(returnContent);
        }
Example #23
0
        /// <summary>
        /// 生成列表界面
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private async Task <string> CreateList(SystemCodeGenerationBaseInput input)
        {
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Server.MapPath("/DataUsers/Templates/CodeGeneration/List.txt"));

            //替换操作

            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpace}}", input.TableName.Split('_')[0].ToLower());
            //2:控制器名称
            returnContent = returnContent.Replace("{{ControllerName}}", input.TableName.Replace(input.TableName.Split('_')[0], "").Replace("_", "").ToLower());
            //3:描述
            returnContent = returnContent.Replace("{{Description}}", input.Description);

            return(returnContent);
        }
Example #24
0
        /// <summary>
        /// 生成Logic接口
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private async Task <string> CreteLogicInterface(SystemCodeGenerationBaseInput input)
        {
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Server.MapPath("/DataUsers/Templates/CodeGeneration/ILogic.txt"));

            //替换操作

            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpace}}", input.TableName.Split('_')[0]);
            //2:表名
            returnContent = returnContent.Replace("{{ClassName}}", input.TableName.Replace("_", ""));
            //3:描述
            returnContent = returnContent.Replace("{{Description}}", input.Description);

            return(returnContent);
        }
Example #25
0
        /// <summary>
        /// Merge the fileList for OSQL.
        /// </summary>
        /// <param name="outFile"></param>
        /// <param name="fileList"></param>
        public void MergeScripts(string outFile, string[] fileList)
        {
            string uniqueTran    = "T" + StringUtil.RandomKey();
            string separatorLine = StringUtil.FillChar('-', 79);

            try
            {
                using (StreamWriter w = new StreamWriter(outFile, false))
                {
                    w.WriteLine("begin tran " + uniqueTran);


                    for (int i = 0; i < fileList.Length; i++)
                    {
                        string inFile = fileList[i];

                        // write header info
                        w.WriteLine();
                        w.WriteLine(separatorLine);

                        w.WriteLine(String.Format("-- Filename #{1} of {2} : {0}",
                                                  inFile, i + 1, fileList.Length));

                        w.WriteLine(separatorLine);
                        w.WriteLine();


                        // read / write
                        foreach (var item in FileUtil.ReadFile(inFile))
                        {
                            w.WriteLine(item);
                        }
                    }

                    w.WriteLine("commit tran " + uniqueTran);

                    w.Flush();
                    w.Close();
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                throw;
            }
        }
        /// <summary>
        /// 生成控制器
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private Task <string> CreateController(SystemCodeGenerationBaseInput input)
        {
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Path.Combine("DataUsers", "Templates", "CodeGeneration", "Controller.txt"));

            //替换操作
            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpace}}", input.Name.Split('_')[0]);
            //2:表名
            returnContent = returnContent.Replace("{{ClassName}}", input.Name.Replace("_", ""));
            //3:表名转换为小写
            returnContent = returnContent.Replace("{{ClassNameLower}}", input.Name.Replace("_", "").ReplaceFistLower());
            //4:控制器名称
            returnContent = returnContent.Replace("{{ControllerName}}", input.Name.Replace(input.Name.Split('_')[0], "").Replace("_", ""));
            //5:分页方法
            if (input.IsPaging)
            {
                StringBuilder strPagingAction = new StringBuilder();
                strPagingAction.AppendLine("[HttpPost]");
                strPagingAction.AppendLine($"[Description(\"应用系统-方法-列表-获取{input.Value}分页信息\")]");
                strPagingAction.AppendLine($" public async Task<JsonResult> GetPaging{input.Name.Replace("_", "")}(QueryParam queryParam) ");
                strPagingAction.AppendLine("{");
                strPagingAction.AppendLine($"  return JsonForGridPaging(await _{input.Name.Replace("_", "").ReplaceFistLower()}Logic.Paging{input.Name.Replace("_", "")}(queryParam));");
                strPagingAction.AppendLine("}");
                returnContent = returnContent.Replace("{{PagingAction}}", strPagingAction.ToString());
            }
            else
            {
                returnContent = returnContent.Replace("{{PagingAction}}", "");
            }
            //6:保存方法
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("[HttpPost]");
            sb.AppendLine("   [ValidateAntiForgeryToken]");
            sb.AppendLine($"  [Description(\"应用系统-方法-保存{input.Value}\")]");
            sb.AppendLine($"    public async Task<JsonResult> Save{input.Name.Replace("_", "")}({input.Name.Replace("_", "")} input)");
            sb.AppendLine("{");
            sb.AppendLine($"   return Json(await _{input.Name.Replace("_", "").ReplaceFistLower()}Logic.Save{input.Name.Replace("_", "")}(input));");
            sb.AppendLine("}");
            returnContent = returnContent.Replace("{{SaveAction}}", sb.ToString());
            //描述
            returnContent = returnContent.Replace("{{Description}}", input.Value);

            return(Task.Factory.StartNew(() => returnContent));;
        }
Example #27
0
        /// <summary>
        ///     生成实体
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private async Task <string> CreateEntity(SystemCodeGenerationBaseInput input)
        {
            //返回值
            var columnContent = new StringBuilder();
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Server.MapPath("/DataUsers/Templates/CodeGeneration/Entities.txt"));
            //获取对应列
            var columns = (await _dataBaseLogic.GetDataBaseColumns(input)).ToList();

            //替换操作

            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpace}}", input.TableName.Split('_')[0]);
            //2:表名
            returnContent = returnContent.Replace("{{TableName}}", input.TableName);
            //3:类名称
            returnContent = returnContent.Replace("{{ClassName}}", input.TableName.Replace("_", ""));
            //4:主键名称
            returnContent = returnContent.Replace("{{KeyName}}", input.TableKey);
            //5:动态生成列
            foreach (var column in columns.Where(column => column.ColumnName != input.TableKey))
            {
                columnContent.Append("        /// <summary>\r\n");
                columnContent.Append(string.Format("        /// {0}\r\n", column.ColumnDescription));
                columnContent.Append("        /// </summary>\r\n");
                columnContent.Append("        public " + ChangeToCSharpType(column.DataType) + " " + column.ColumnName + " { get; set; }\r\n\r\n");
            }
            //6:是否分页
            if (input.IsPaging)
            {
                columnContent.Append("        /// <summary>\r\n");
                columnContent.Append("        /// 记录总数\r\n");
                columnContent.Append("        /// </summary>\r\n");
                columnContent.Append("        /// [Column(IsInsert = false,IsUpdate = false,IsSelect = false,IsSort = false)]\r\n");
                columnContent.Append("        public int RecordCount { get; set; }\r\n");
            }
            returnContent = returnContent.Replace("{{EntitiesBody}}", columnContent.ToString());
            //7:主键类型
            var key = columns.Where(column => column.ColumnName == input.TableKey).FirstOrDefault();

            returnContent = returnContent.Replace("{{GenerationType}}", key != null && key.DataType == "uniqueidentifier" ? "GenerationType.Sequence" : "GenerationType.Indentity");
            //8:描述
            returnContent = returnContent.Replace("{{Description}}", input.Description);
            return(returnContent);
        }
        /// <summary>
        /// 生成列表界面
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        private string CreateList(SystemCodeGenerationBaseInput input, IEnumerable <SystemCodeGenerationListForListInput> listInput)
        {
            //获取文件内容
            var returnContent = FileUtil.ReadFile(Path.Combine("DataUsers", "Templates", "CodeGeneration", "List.txt"));

            //替换操作
            //1:命名空间
            returnContent = returnContent.Replace("{{NameSpace}}", input.Name.Split('_')[0].ToLower());
            //2:控制器名称
            returnContent = returnContent.Replace("{{ControllerName}}", input.Name.Replace(input.Name.Split('_')[0], "").Replace("_", "").ToLower());
            //3:描述
            returnContent = returnContent.Replace("{{Description}}", input.Value);
            //4:列表项
            returnContent = returnContent.Replace("{{ColModel}}", GetColModel(listInput.OrderBy(o => o.OrderNo).ToList(), input));
            //5:是否分页
            returnContent = returnContent.Replace("{{IsPaging}}", input.IsPaging.ToString().ToLower());
            return(returnContent);
        }
Example #29
0
        private bool UpdateAssemblyInfo(string filename)
        {
            try
            {
                Log("Scanning " + filename);

                #region Open / Save filename
                List <string> buffer = new List <string>();

                int nrChanges = 0;
                foreach (var inputLine in FileUtil.ReadFile(filename))
                {
                    string outputLine = Replace(inputLine, ReplacementTable);
                    buffer.Add(outputLine);

                    if (inputLine != outputLine)
                    {
                        nrChanges++;
                        Log(string.Format(" #{0:00} << {1}", nrChanges, inputLine));
                        Log(string.Format(" #{0:00} >> {1}", nrChanges, outputLine));
                    }
                }

                if (nrChanges > 0)
                {
                    FileUtil.WriteFile(filename, buffer.ToArray());
                    Log("  Changes were updated.");
                }
                else
                {
                    Log("  No changes were made.");
                }

                Log(string.Empty);
                #endregion

                return(nrChanges > 0);
            }
            catch (Exception ex)
            {
                Log("  Error: " + ex.Message);
                return(false);
            }
        }
Example #30
0
        private void EnsureLoad()
        {
            if (loaded)
            {
                return;
            }

            foreach (var d in Directory.GetDirectories(packagesDirectory))
            {
                var fi = new FileInfo(Path.Combine(d, "package.json"));

                if (!fi.Exists)
                {
                    App.Ext.Log($"Missing package definition file at: {d}", EntryType.Error);
                    continue;
                }

                string content;

                if (!FileUtil.ReadFile(fi, Encoding.UTF8, out content))
                {
                    continue;
                }

                var json = new JsonParser(content);
                var dict = json.Parse() as Dictionary <string, object>;

                if (dict == null)
                {
                    App.Ext.Log($"Invalid package definition file: {fi}", EntryType.Error);
                    continue;
                }

                var meta = dict.Object("meta") as Dictionary <string, object>;
                var pack = new PackageMetadata((Identifier)meta.String("key"),
                                               meta.String("name"), meta.String("version"), meta.String("description"),
                                               meta.String("copyright"), fi.Directory, dict);
                packages.Add(pack);
            }

            loaded = true;
        }