/// <summary>
        /// 创建代码
        /// </summary>
        public void Create_Code()
        {
            #region folders

            string template_folder = context.Server.MapPath(settings.folder_templates + settings.template_folder_query_service);
            string template_file   = template_folder + "{{entity_sub_namespace}}QueryServic.cs";

            string target_folder = template_folder.Replace(context.Server.MapPath(settings.folder_templates), context.Server.MapPath(settings.folder_result));
            string target_file   = template_file.Replace(context.Server.MapPath(settings.folder_templates), context.Server.MapPath(settings.folder_result));

            target_folder = target_folder.Replace("{{namespace}}", settings.code_namespace);
            target_folder = target_folder.Replace("{{entity_sub_namespace}}", entity_sub_namespace);

            target_file = target_file.Replace("{{namespace}}", settings.code_namespace);
            target_file = target_file.Replace("{{entity_sub_namespace}}", entity_sub_namespace);

            #endregion

            string template = FileHelper.ReadAll(template_file);

            template = template.Replace("{{namespace}}", settings.code_namespace);
            template = template.Replace("{{entity_name}}", entity_name);
            template = template.Replace("{{entity_sub_namespace}}", entity_sub_namespace);
            template = template.Replace("{{domain_model_name}}", NameHelper.Get_Domain_Model_Name(entity_name));
            template = template.Replace("{{domain_model_id_name}}", NameHelper.Get_Identities_Name(entity_name));


            template = template.Replace("{{get_details_method_name}}", NameHelper.Get_MethodName_QueryService_GetDetails_Name(entity_name));
            template = template.Replace("{{list_method_name}}", NameHelper.Get_MethodName_QueryService_GetList_Name(entity_name));
            template = template.Replace("{{list_parameters_model_name}}", NameHelper.Get_ViewModel_Query_ListParameter_Name(entity_name));
            template = template.Replace("{{data_access_get_details_method_name}}", NameHelper.Get_MethodName_DataAccess_Query_GetDetails_Name(entity_name));
            template = template.Replace("{{data_access_list_method_name}}", NameHelper.Get_MethodName_DataAccess_Query_GetList_Name(entity_name));


            FileHelper.CheckAndCreateFolder(target_folder);
            FileHelper.WriteAll(target_file, template);
        }
Beispiel #2
0
        private string Create_List_Code(string template)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("        public PagingRecords<ListModel> " + NameHelper.Get_MethodName_DataAccess_Query_GetList_Name(entity_name) + "(" + NameHelper.Get_ViewModel_Query_ListParameter_Name(entity_name) + " parameter)");
            sb.AppendLine("        {");
            //sb.AppendLine("");
            sb.AppendLine("            var query = GetQuery<" + entity_name + ">();");
            //sb.AppendLine("");
            sb.AppendLine("            #region Where");
            //sb.AppendLine("");
            sb.AppendLine("            var predicate = PredicateBuilder.New<" + entity_name + ">();");

            foreach (var p in entity_properties)
            {
                //sb.AppendLine("");
                if (p.PropertyType == typeof(System.String))
                {
                    sb.AppendLine("            if (!string.IsNullOrWhiteSpace(parameter." + NameHelper.Get_Property_Name_For_ListParameter(p.Name) + "))");
                    sb.AppendLine("            {");
                    sb.AppendLine("                predicate = predicate.And(x => x." + p.Name + ".Contains(parameter." + NameHelper.Get_Property_Name_For_ListParameter(p.Name) + "));");
                    sb.AppendLine("            }");
                }
                else if (p.PropertyType.IsValueType)
                {
                    sb.AppendLine("            if (parameter." + NameHelper.Get_Property_Name_For_ListParameter(p.Name) + ".HasValue)");
                    sb.AppendLine("            {");
                    sb.AppendLine("                predicate = predicate.And(x => x." + p.Name + " == parameter." + NameHelper.Get_Property_Name_For_ListParameter(p.Name) + ".Value); ");
                    sb.AppendLine("            }");
                }
                else if (p.PropertyType.IsEnum)
                {
                    sb.AppendLine("            if (parameter." + NameHelper.Get_Property_Name_For_ListParameter(p.Name) + ".HasValue)");
                    sb.AppendLine("            {");
                    sb.AppendLine("                var v = (int)parameter." + NameHelper.Get_Property_Name_For_ListParameter(p.Name) + ".Value");
                    sb.AppendLine("                predicate = predicate.And(x => x." + p.Name + " == v ");
                    sb.AppendLine("            }");
                }
            }

            //sb.AppendLine("");
            sb.AppendLine("            #endregion");
            //sb.AppendLine("");
            sb.AppendLine("            #region Built SQL");
            //sb.AppendLine("");
            sb.AppendLine("            IQueryable<" + entity_name + "> queryResult = query;");
            //sb.AppendLine("");
            sb.AppendLine("            if (predicate.IsStarted)");
            sb.AppendLine("            {");
            sb.AppendLine("                queryResult = queryResult.Where(predicate);");
            sb.AppendLine("            }");
            //sb.AppendLine("");
            sb.AppendLine("            queryResult = queryResult.OrderByDescending(r => r." + entity_id_properties.Name + ");");
            //sb.AppendLine("");
            sb.AppendLine("            #endregion");
            //sb.AppendLine("");
            //sb.AppendLine("            List<" + entity_name + "> result = queryResult.GetPagingRecords<" + entity_name + ">(parameter.page, parameter.page_size).ToList();");
            sb.AppendLine("            List<" + entity_name + "> result = queryResult.GetPagingRecords(parameter.page, parameter.page_size).ToList();");
            //sb.AppendLine("");
            sb.AppendLine("            var pageList = result.Select(r =>");
            sb.AppendLine("            {");
            //sb.AppendLine("");
            sb.AppendLine("                return new ListModel()");
            sb.AppendLine("                {");
            foreach (var p in entity_properties)
            {
                //sb.AppendLine("");
                sb.AppendLine("                    " + NameHelper.Get_Property_Name_For_Query_ListModel(p.Name) + " = r." + p.Name + ",");
            }
            sb.AppendLine("                };");
            //sb.AppendLine("");
            sb.AppendLine("            });");
            //sb.AppendLine("");
            sb.AppendLine("            return new PagingRecords<ListModel>(pageList, queryResult.Count(), parameter.page, parameter.page_size);");
            //sb.AppendLine("");
            sb.AppendLine("        }");

            template = template.Replace("{{Get-List-Method}}", sb.ToString());

            return(template);
        }