/// <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); }
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); }