private static IEnumerable <MethodParam> GetMethodParams(Object[] parameters) { var methodParams = new MethodParam[parameters.Length]; for (int i = 0; i < parameters.Length; i++) { var paramType = parameters[i].GetType(); var paramValue = parameters[i]; var methodParam = new MethodParam { TypeName = paramType.FullName, ParamValue = paramValue }; methodParams[i] = methodParam; } return(methodParams); }
public override IQueryElement VisitMethod_param([NotNull] QueryGrammarParser.Method_paramContext context) { MethodParam param = new MethodParam(); param.Name = context.NAME().GetText(); IQueryElement dateType = Visit(context.dataType()); param.Add(dateType); if (context.K_OUT() != null) { param.Direction = ParameterDirection.OUT; } else { param.Direction = ParameterDirection.IN; } return(param); }
public IEnumerable <ManagedFolder> Read(SqlConnection connection, Version platformVersion) { var components = new Dictionary <string, ManagedFolder>(); var query = this.GetManagedFoldersQuery(platformVersion); if (string.IsNullOrEmpty(query)) { return(components.Values.ToList()); } var command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var managedFolder = new ManagedFolder { Name = (reader["Name"] as string).Trim(), Title = (reader["Title"] as string).Trim() }; if (ActiveValue.Equals(reader["State"] as string)) { managedFolder.State = ComponentState.Active; } else { managedFolder.State = ComponentState.Closed; } if (reader["SearchDescription"] is byte[] searchDescriptionRawData) { var searchDescriptionDfm = Encoding.GetEncoding(1251).GetString(searchDescriptionRawData); if (!string.IsNullOrWhiteSpace(searchDescriptionDfm)) { managedFolder.SearchDescription = SearchDescriptionParser.Parse(searchDescriptionDfm); } } components.Add(managedFolder.Name, managedFolder); } } } query = this.GetMethodsQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var managedFolderName = reader["ManagedFolderName"] as string; if (!components.TryGetValue(managedFolderName, out ManagedFolder managedFolder)) { continue; } var method = new Method { Name = reader["Name"] as string }; if (reader["CalculationText"] is byte[] calculationValue) { method.CalculationText = Encoding.GetEncoding(1251).GetString(calculationValue); } else { method.CalculationText = string.Empty; } managedFolder.Methods.Add(method); } } } } query = this.GetMethodParamsQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var managedFolderName = reader["ManagedFolderName"] as string; if (!components.TryGetValue(managedFolderName, out ManagedFolder managedFolder)) { continue; } var methodName = reader["MethodName"] as string; var method = managedFolder.Methods .FirstOrDefault(m => m.Name == methodName); if (method == null) { continue; } var parameter = new MethodParam { Number = (int)reader["Number"], Name = reader["Name"] as string }; var typeValue = reader["Type"] as string; if (TypeValues.TryGetValue(typeValue, out MethodParamType methodParamType)) { parameter.Type = methodParamType; } parameter.DefaultValue = reader["DefaultValue"] as string; parameter.HasDefaultValue = !string.IsNullOrEmpty(parameter.DefaultValue); method.Params.Add(parameter); } } } } query = this.GetActionQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var managedFolderName = reader["ManagedFolderName"] as string; if (!components.TryGetValue(managedFolderName, out ManagedFolder managedFolder)) { continue; } var action = new ActionWithHandler { Name = reader["Name"] as string }; var methodName = reader["MethodName"] as string; var executionHandler = managedFolder.Methods.FirstOrDefault(m => m.Name == methodName); if (executionHandler != null) { action.ExecutionHandler = executionHandler; } else { action.CalculationText = string.Empty; } managedFolder.Actions.Add(action); } } } } return(components.Values.ToList()); }
public IEnumerable <ReferenceType> Read(SqlConnection connection, Version platformVersion) { var components = new Dictionary <string, ReferenceType>(); var query = this.GetReferenceTypeQuery(platformVersion); if (string.IsNullOrEmpty(query)) { return(components.Values.ToList()); } var command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var referenceType = new ReferenceType { Name = reader["Name"] as string, Title = reader["Title"] as string }; if (reader["State"] is string stateValue && StateValues.ContainsKey(stateValue)) { referenceType.State = StateValues[stateValue]; } if (reader["NumerationMethod"] is string numerationMethodValue && NumerationMethodValues.ContainsKey(numerationMethodValue)) { referenceType.NumerationMethod = NumerationMethodValues[numerationMethodValue]; } if (reader["DisplayRequisite"] is string displayRequisiteValue && DisplayRequisiteValues.ContainsKey(displayRequisiteValue)) { referenceType.DisplayRequisite = DisplayRequisiteValues[displayRequisiteValue]; } referenceType.LeadingReference = reader["LeadingReference"] as string; referenceType.HasLongRecordNames = YesValue.Equals(reader["HasLongRecordNames"] as string); referenceType.HasUniqueRecordNames = YesValue.Equals(reader["HasUniqueRecordNames"] as string); var eventsValue = reader["Events"] as string; if (!string.IsNullOrEmpty(eventsValue)) { var events = EventTextParser.Parse(eventsValue); foreach (var @event in events) { referenceType.Events.Add(@event); } } components.Add(referenceType.Name, referenceType); } } } query = this.GetMethodsQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var referenceTypeName = reader["ReferenceTypeName"] as string; if (!components.TryGetValue(referenceTypeName, out ReferenceType referenceType)) { continue; } var method = new Method { Name = reader["Name"] as string, CalculationText = reader["CalculationText"] as string ?? string.Empty }; referenceType.Methods.Add(method); } } } } query = this.GetMethodParamsQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var referenceTypeName = reader["ReferenceTypeName"] as string; if (!components.TryGetValue(referenceTypeName, out ReferenceType referenceType)) { continue; } var methodName = reader["MethodName"] as string; var method = referenceType.Methods .FirstOrDefault(m => m.Name == methodName); if (method == null) { continue; } var parameter = new MethodParam { Number = (int)reader["Number"], Name = reader["Name"] as string }; var typeValue = reader["Type"] as string; if (TypeValues.TryGetValue(typeValue, out MethodParamType methodParamType)) { parameter.Type = methodParamType; } parameter.DefaultValue = reader["DefaultValue"] as string; parameter.HasDefaultValue = !string.IsNullOrEmpty(parameter.DefaultValue); method.Params.Add(parameter); } } } } query = this.GetActionQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var referenceTypeName = reader["ReferenceTypeName"] as string; if (!components.TryGetValue(referenceTypeName, out ReferenceType referenceType)) { continue; } var action = new ActionWithHandler { Name = reader["Name"] as string }; var calculationText = reader["CalculationText"] as string; var executionHandler = referenceType.Methods .FirstOrDefault(m => m.Name == calculationText); if (executionHandler != null) { action.ExecutionHandler = executionHandler; } else { action.CalculationText = calculationText ?? string.Empty; } referenceType.Actions.Add(action); } } } } query = this.GetRequisiteQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var referenceTypeName = reader["ReferenceTypeName"] as string; if (!components.TryGetValue(referenceTypeName, out ReferenceType referenceType)) { continue; } var cardRequisite = new CardRequisite { Number = (int)reader["Number"] }; if (reader["Section"] is string sectionValue && RequisiteSectionValues.ContainsKey(sectionValue)) { cardRequisite.Section = RequisiteSectionValues[sectionValue]; } cardRequisite.Name = reader["Name"] as string; cardRequisite.IsRequired = RuYesValue.Equals(reader["IsRequired"] as string); cardRequisite.IsFilter = RuYesValue.Equals(reader["IsFilter"] as string); cardRequisite.IsLeading = RuYesValue.Equals(reader["IsLeading"] as string); cardRequisite.IsControl = RuYesValue.Equals(reader["IsControl"] as string); var changeEventValue = reader["ChangeEvent"] as string; if (!string.IsNullOrEmpty(changeEventValue)) { var @event = new Event { EventType = EventType.Change, CalculationText = changeEventValue }; cardRequisite.Events.Add(@event); } var selectEventsValue = reader["SelectEvents"] as string; if (!string.IsNullOrEmpty(selectEventsValue)) { var events = EventTextParser.Parse(selectEventsValue); foreach (var @event in events) { if (@event.EventType == EventType.Unknown) { @event.EventType = EventType.Select; } cardRequisite.Events.Add(@event); } } referenceType.Requisites.Add(cardRequisite); } } } } query = this.GetViewQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var referenceTypeName = reader["ReferenceTypeName"] as string; if (!components.TryGetValue(referenceTypeName, out ReferenceType referenceType)) { continue; } var view = new View { Name = reader["Name"] as string, IsMain = RuYesValue.Equals(reader["IsMain"] as string), ListForm = reader["ListForm"] as string, CardForm = reader["CardForm"] as string }; referenceType.Views.Add(view); referenceType.Views.Add(view); } } } } return(components.Values.ToList()); }
public TableValuedFunction(string name, MethodParam[] parameters) : base(name, parameters) { }
private static void ReadMethodsParameters(ComponentModel model, ReferenceType entity) { if (model.DetailDataSets?.DetailDataSet8 == null) { return; } foreach (var paramModel in model.DetailDataSets.DetailDataSet8.Rows) { var parameter = new MethodParam(); var methodNameReq = paramModel.Requisites .FirstOrDefault(r => r.Code == MethodParamMethodNameReqName); if (methodNameReq == null) { continue; } var methodName = methodNameReq.Value; var method = entity.Methods .FirstOrDefault(m => m.Name.Equals(methodName, StringComparison.OrdinalIgnoreCase)); if (method == null) { continue; } var paramNumberReq = paramModel.Requisites .FirstOrDefault(r => r.Code == MethodParamNumberReqName); if (paramNumberReq != null) { parameter.Number = int.Parse(paramNumberReq.Value); } var paramNameReq = paramModel.Requisites .FirstOrDefault(r => r.Code == MethodParamNameReqName); if (paramNameReq != null) { parameter.Name = paramNameReq.Value; } var paramTypeReq = paramModel.Requisites .FirstOrDefault(r => r.Code == MethodParamTypeReqName); if (paramTypeReq != null) { switch (paramTypeReq.ValueLocalizeID) { case VariantArgumentType: parameter.Type = MethodParamType.Variant; break; case DateArgumentType: parameter.Type = MethodParamType.Date; break; case FloatArgumentType: parameter.Type = MethodParamType.Float; break; case BooleanArgumentType: parameter.Type = MethodParamType.Boolean; break; case StringArgumentType: parameter.Type = MethodParamType.String; break; case IntegerArgumentType: parameter.Type = MethodParamType.Integer; break; } } var paramDefaultValueReq = paramModel.Requisites .FirstOrDefault(r => r.Code == MethodParamDefaultValueReqName); if (paramDefaultValueReq != null) { parameter.DefaultValue = paramDefaultValueReq.Value; } parameter.HasDefaultValue = !string.IsNullOrEmpty(parameter.DefaultValue); method.Params.Add(parameter); } }
protected DataEventArgs Call(string name, string methodname, string code, dynamic parameters, ref bool keeplive) { long contentleng = 0; LastParam = parameters.ToString(); _log.Error(parameters.ToString()); LastRunTime = DateTime.Now; LastMethod = methodname; DataEventArgs ea = new DataEventArgs(); taskId++; ea.TaskId = taskId; if (string.IsNullOrEmpty(name) && string.IsNullOrEmpty(code)) { ea.StatusCode = StatusCode.NoExit; ea.LastError = "方法不存在"; ea.Json = "{\"responseCode\":" + (int)ea.StatusCode + ",\"responseMsg\":\"" + ea.LastError + "\"}"; return(ea); } if (string.IsNullOrEmpty(methodname) && string.IsNullOrEmpty(code)) { ea.StatusCode = StatusCode.NoExit; ea.LastError = "方法不存在"; ea.Json = "{\"responseCode\":" + (int)ea.StatusCode + ",\"responseMsg\":\"" + ea.LastError + "\"}"; return(ea); } MethodInfo method = null; string keyvl = code; if (string.IsNullOrEmpty(code)) { #region 地址请求 try { lock (_memberInfos) { foreach (KeyValuePair <string, Tuple <string, MethodInfo, int, long> > kv in _memberInfos) { object[] clazz = kv.Value.Item2.DeclaringType.GetCustomAttributes(typeof(Restful), true); string clazzpath = string.Empty; if (clazz != null && clazz.Length > 0 && ((Restful)clazz[0]).Path != null) { if (((Restful)clazz[0]).Path != null) { clazzpath = ((Restful)clazz[0]).Path.ToLower(); } } string clazzname = kv.Value.Item1.ToString().ToLower(); if (clazzname == name || (!string.IsNullOrEmpty(clazzpath) && clazzpath == name)) { string kvmethod = kv.Value.Item2.Name.ToLower(); string path = string.Empty; object[] cattri = kv.Value.Item2.GetCustomAttributes(typeof(Restful), true); if (null != cattri && cattri.Length > 0) { Restful rf = (Restful)cattri[0]; if (rf.Path != null) { path = rf.Path.ToLower(); keeplive = rf.KeepAlive; } } if (kvmethod == methodname.ToLower() || (!string.IsNullOrEmpty(path) && path == methodname.ToLower())) { List <object> param = new List <object>(); try { foreach (ParameterInfo para in kv.Value.Item2.GetParameters()) { param.Add(parameters[para.Name]); } } catch (Exception ex) { Console.WriteLine(ex.Message); break; } parameters = param; int i = 0; foreach (ParameterInfo para in kv.Value.Item2.GetParameters()) { object o = param[i]; if (para.ParameterType.Name != o.GetType().Name) { break; } i++; } if (kv.Value.Item2.GetParameters().Length == param.Count) { keyvl = kv.Key; name = kv.Value.Item1; method = kv.Value.Item2; break; } } } } } } catch (Exception ex) { _log.Error(ex); Console.WriteLine(ex); } #endregion } else { List <object> _param = new List <object>(); foreach (object o in parameters) { _param.Add(o); } parameters = _param; if (_memberInfos.ContainsKey(code)) { name = _memberInfos[code].Item1; method = _memberInfos[code].Item2; } else { ea.StatusCode = StatusCode.NoExit; ea.LastError = "方法不存在"; ea.Json = "{\"responseCode\":" + (int)ea.StatusCode + ",\"responseMsg\":\"" + ea.LastError + "\"}"; return(ea); } } if (method == null) { ea.StatusCode = StatusCode.NoExit; ea.LastError = "方法不存在"; ea.Json = "{\"responseCode\":" + (int)ea.StatusCode + ",\"responseMsg\":\"" + ea.LastError + "\"}"; return(ea); } try { parameters = new MethodParam().CorrectParameters(method, parameters); object[] arrparam = parameters.ToArray(); Object bll = ApplicationContext.GetObject(name); var result = method.Invoke(bll, arrparam); JsonSerializerSettings jsonsetting = new JsonSerializerSettings(); jsonsetting.Formatting = Formatting.Indented; ea.StatusCode = StatusCode.Success; ea.Param = new System.Collections.ArrayList(); if (flagrpc) { ea.Binary = new JsonSerializer().ToBinary(result); contentleng = ea.Binary.Buffer.LongLength; } else { string data = JsonConvert.SerializeObject(result, jsonsetting); contentleng = data.Length; ea.Json = "{\"responseCode\":" + (int)StatusCode.Success + ",\"responseMsg\":\"成功\",\"responseData\":" + data + "}"; } for (int i = 0; i < arrparam.Length; i++) { try { ea.Param.Add(arrparam[i]); } catch (Exception ex) { Console.Write(ex); } } Console.WriteLine(ea.TaskId); } catch (Exception ex) { Console.WriteLine(ex); _log.Error(ex); Console.WriteLine(ex); ea.LastError = ex.InnerException.Message + "\r\n" + ex.Message; ea.StatusCode = StatusCode.Serious; } _memberInfos[keyvl] = new Tuple <string, MethodInfo, int, long>(_memberInfos[keyvl].Item1, _memberInfos[keyvl].Item2, _memberInfos[keyvl].Item3 + 1, _memberInfos[keyvl].Item3 + contentleng); return(ea); }
/// <summary> /// Create the template output /// </summary> public virtual string TransformText() { this.Write("#include \""); #line 6 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.CurrentFile.Name))); #line default #line hidden this.Write(".h\"\r\n#include <cstdio>"); #line 7 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("\r\n\r\nnamespace ugly\r\n{"); #line 14 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.PushIndent(" "); } #line default #line hidden this.Write("\r\nnamespace "); #line 19 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.Namespace))); #line default #line hidden this.Write("\r\n{"); #line 20 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" foreach (GameClass c in CxxHelper.CurrentFile.Class) { #line default #line hidden this.Write("\r\n "); #line 25 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("::"); #line 25 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("()"); #line 25 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" for (int i = 0; i < c.Member.Count; ++i) { #line default #line hidden this.Write("\r\n "); #line 30 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (i == 0) { #line default #line hidden this.Write(":"); #line 33 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden this.Write(","); #line 37 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write(" "); #line 39 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Member[i].Name))); #line default #line hidden this.Write("()"); #line 39 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write("\r\n { }\r\n "); #line 44 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" foreach (ClassMethod m in c.Method) { #line default #line hidden this.Write("\r\n "); #line 49 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("bool"); #line 52 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden this.Write("void"); #line 56 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write(" "); #line 58 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("::"); #line 58 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Name))); #line default #line hidden this.Write("("); #line 58 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("struct "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, struct "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, struct "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, struct "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState, "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } for (int idxParam = 0; idxParam < m.Param.Count; ++idxParam) { MethodParam a = m.Param[idxParam]; BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (idxParam != 0) { #line default #line hidden this.Write(", "); #line 69 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } if (type == BasicType.Class) { #line default #line hidden this.Write("const "); #line 73 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } if (type.IsBasic()) { #line default #line hidden #line 77 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(type))); #line default #line hidden #line 77 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden #line 81 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(a.Type))); #line default #line hidden #line 81 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } if (type == BasicType.Class) { #line default #line hidden this.Write("&"); #line 85 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write(" "); #line 87 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 87 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write(")\r\n {"); #line 90 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("\r\n return false;"); #line 95 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden this.Write(" std::printf(\""); #line 100 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(m.MethodId)); #line default #line hidden #line 100 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" foreach (MethodParam a in m.Param) { BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (type == BasicType.Class) { type = CxxHelper.Definition.GetBasicType(CxxHelper.Definition.Class[a.Type].IdMember.Type); } #line default #line hidden this.Write(" %"); #line 106 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypePrinter(type))); #line default #line hidden #line 106 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write("\\n\""); #line 108 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" foreach (MethodParam a in m.Param) { BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (type == BasicType.Class) { BasicType realType = CxxHelper.Definition.GetBasicType(CxxHelper.Definition.Class[a.Type].IdMember.Type); #line default #line hidden this.Write(", "); #line 115 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (realType == BasicType.Enum) { #line default #line hidden this.Write("(int)"); #line 118 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden #line 120 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("."); #line 120 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(CxxHelper.Definition.Class[a.Type].IdMember.Name))); #line default #line hidden #line 120 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else if (type == BasicType.Enum) { #line default #line hidden this.Write(", (int)"); #line 124 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 124 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden this.Write(", "); #line 128 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 128 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } } #line default #line hidden this.Write(");"); #line 131 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write("\r\n }"); #line 134 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } if (CxxHelper.Server) { foreach (string m in c.ConditionMethod) { #line default #line hidden this.Write("\r\n\r\n bool "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("::"); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m))); #line default #line hidden this.Write("(struct "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, struct "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, struct "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, struct "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState)\r\n {\r\n return true;\r\n }"); #line 146 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } } } #line default #line hidden this.Write("\r\n}"); #line 152 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { this.PopIndent(); #line default #line hidden this.Write("\r\n}"); #line 158 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden return(this.GenerationEnvironment.ToString()); }
/// <summary> /// Create the template output /// </summary> public virtual string TransformText() { this.Write("#pragma once\r\n#include <vector>\r\n#include <cstdint>"); #line 8 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (string d in CxxHelper.CurrentFile.Dependency) { #line default #line hidden this.Write("\r\n#include \""); #line 13 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(d))); #line default #line hidden this.Write(".h\""); #line 13 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (CxxHelper.Server) { #line default #line hidden this.Write("\r\n\r\nnamespace ugly\r\n{"); #line 21 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.PushIndent(" "); } #line default #line hidden this.Write("\r\nnamespace "); #line 26 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.Namespace))); #line default #line hidden this.Write("\r\n{"); #line 27 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (GameEnum e in CxxHelper.CurrentFile.Enum) { #line default #line hidden this.Write("\r\n \r\n enum class "); #line 33 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(e.Name))); #line default #line hidden this.Write("\r\n {"); #line 34 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (KeyValuePair <string, int> kvp in e.Value) { #line default #line hidden this.Write(" \r\n "); #line 39 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(kvp.Key))); #line default #line hidden this.Write(" = "); #line 39 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(kvp.Value)); #line default #line hidden this.Write(","); #line 39 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write("\r\n };"); #line 43 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } foreach (GameClass c in CxxHelper.CurrentFile.Class) { #line default #line hidden this.Write("\r\n\r\n struct "); #line 51 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("\r\n {"); #line 52 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (ClassMember m in c.Member) { #line default #line hidden this.Write("\r\n "); #line 57 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" for (int i = 0; i < m.Array; ++i) { #line default #line hidden this.Write("std::vector<"); #line 60 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } BasicType type = CxxHelper.Definition.GetBasicType(m.Type); if (type.IsBasic()) { #line default #line hidden #line 65 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(type))); #line default #line hidden #line 65 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } else { #line default #line hidden #line 69 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Type))); #line default #line hidden #line 69 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } for (int i = 0; i < m.Array; ++i) { #line default #line hidden this.Write(">"); #line 73 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write(" "); #line 75 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(m.Name))); #line default #line hidden this.Write(";"); #line 75 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write("\r\n\r\n "); #line 80 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("();\r\n "); #line 81 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (ClassMethod m in c.Method) { if (CxxHelper.Server) { #line default #line hidden this.Write("\r\n bool"); #line 88 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } else { #line default #line hidden this.Write("\r\n void"); #line 94 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write(" "); #line 96 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Name))); #line default #line hidden this.Write("("); #line 96 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("struct "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, struct "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, struct "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, struct "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState, "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } for (int idxParam = 0; idxParam < m.Param.Count; ++idxParam) { MethodParam a = m.Param[idxParam]; BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (idxParam != 0) { #line default #line hidden this.Write(", "); #line 107 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (type == BasicType.Class) { #line default #line hidden this.Write("const "); #line 111 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (type.IsBasic()) { #line default #line hidden #line 115 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(type))); #line default #line hidden #line 115 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } else { #line default #line hidden #line 119 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(a.Type))); #line default #line hidden #line 119 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (type == BasicType.Class) { #line default #line hidden this.Write("&"); #line 123 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write(" "); #line 125 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 125 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write(");"); #line 127 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (CxxHelper.Server) { if (c.ConditionMethod.Any()) { #line default #line hidden this.Write("\r\n"); #line 135 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } foreach (string m in c.ConditionMethod) { #line default #line hidden this.Write("\r\n bool "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m))); #line default #line hidden this.Write("(struct "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, struct "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, struct "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, struct "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState);"); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } } #line default #line hidden this.Write("\r\n };"); #line 146 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write("\r\n}"); #line 150 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" if (CxxHelper.Server) { this.PopIndent(); #line default #line hidden this.Write("\r\n}"); #line 156 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden return(this.GenerationEnvironment.ToString()); }
/// <summary> /// Create the template output /// </summary> public virtual string TransformText() { this.Write("using System;\r\n\r\nnamespace "); #line 8 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CsHelper.Definition.Config.Namespace))); #line default #line hidden this.Write("\r\n{"); #line 9 "D:\ugly\CodeGenerator\cs\CsHeader.tt" foreach (GameEnum e in CsHelper.CurrentFile.Enum) { #line default #line hidden this.Write("\r\n \r\n public enum "); #line 15 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(e.Name))); #line default #line hidden this.Write("\r\n {"); #line 16 "D:\ugly\CodeGenerator\cs\CsHeader.tt" foreach (KeyValuePair <string, int> kvp in e.Value) { #line default #line hidden this.Write(" \r\n "); #line 21 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(kvp.Key))); #line default #line hidden this.Write(" = "); #line 21 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(kvp.Value)); #line default #line hidden this.Write(","); #line 21 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write("\r\n }"); #line 25 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } foreach (GameClass c in CsHelper.CurrentFile.Class) { #line default #line hidden this.Write("\r\n\r\n public class "); #line 33 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("\r\n {"); #line 34 "D:\ugly\CodeGenerator\cs\CsHeader.tt" foreach (ClassMember m in c.Member) { #line default #line hidden this.Write("\r\n public "); #line 39 "D:\ugly\CodeGenerator\cs\CsHeader.tt" BasicType type = CsHelper.Definition.GetBasicType(m.Type); if (type.IsBasic()) { #line default #line hidden #line 43 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CsHelper.GetBasicTypeName(type))); #line default #line hidden #line 43 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } else { #line default #line hidden #line 47 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Type))); #line default #line hidden #line 47 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } if (m.Array != 0) { #line default #line hidden this.Write("["); #line 51 "D:\ugly\CodeGenerator\cs\CsHeader.tt" for (int i = 1; i < m.Array; ++i) { #line default #line hidden this.Write(","); #line 54 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write("]"); #line 56 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write(" "); #line 58 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Name))); #line default #line hidden this.Write(";"); #line 58 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write("\r\n "); #line 62 "D:\ugly\CodeGenerator\cs\CsHeader.tt" foreach (ClassMethod m in c.Method) { #line default #line hidden this.Write("\r\n public void "); #line 67 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Name))); #line default #line hidden this.Write("("); #line 67 "D:\ugly\CodeGenerator\cs\CsHeader.tt" for (int idxParam = 0; idxParam < m.Param.Count; ++idxParam) { MethodParam a = m.Param[idxParam]; BasicType type = CsHelper.Definition.GetBasicType(a.Type); if (idxParam != 0) { #line default #line hidden this.Write(", "); #line 74 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } if (type.IsBasic()) { #line default #line hidden #line 78 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CsHelper.GetBasicTypeName(type))); #line default #line hidden #line 78 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } else { #line default #line hidden #line 82 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(a.Type))); #line default #line hidden #line 82 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write(" "); #line 84 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 84 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write(")\r\n {\r\n Console.WriteLine(\""); #line 88 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(m.MethodId)); #line default #line hidden #line 88 "D:\ugly\CodeGenerator\cs\CsHeader.tt" for (int idxParam = 0; idxParam < m.Param.Count; ++idxParam) { #line default #line hidden this.Write(" {"); #line 91 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(idxParam)); #line default #line hidden this.Write("}"); #line 91 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write("\""); #line 93 "D:\ugly\CodeGenerator\cs\CsHeader.tt" foreach (MethodParam a in m.Param) { #line default #line hidden this.Write(", "); #line 96 "D:\ugly\CodeGenerator\cs\CsHeader.tt" BasicType type = CsHelper.Definition.GetBasicType(a.Type); switch (type) { case BasicType.Bool: #line default #line hidden #line 101 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write(" ? 1 : 0"); #line 101 "D:\ugly\CodeGenerator\cs\CsHeader.tt" break; case BasicType.Char: case BasicType.Enum: #line default #line hidden this.Write("(int)"); #line 105 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 105 "D:\ugly\CodeGenerator\cs\CsHeader.tt" break; case BasicType.Class: #line default #line hidden #line 108 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("."); #line 108 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CsHelper.Definition.Class[a.Type].IdMember.Name))); #line default #line hidden #line 108 "D:\ugly\CodeGenerator\cs\CsHeader.tt" break; default: #line default #line hidden #line 111 "D:\ugly\CodeGenerator\cs\CsHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 111 "D:\ugly\CodeGenerator\cs\CsHeader.tt" break; } } #line default #line hidden this.Write(");\r\n }"); #line 116 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write("\r\n }"); #line 120 "D:\ugly\CodeGenerator\cs\CsHeader.tt" } #line default #line hidden this.Write("\r\n}"); return(this.GenerationEnvironment.ToString()); }
public IEnumerable <Dialog> Read(SqlConnection connection, Version platformVersion) { var components = new Dictionary <string, Dialog>(); var query = this.GetDialogQuery(platformVersion); if (string.IsNullOrEmpty(query)) { return(components.Values.ToList()); } var command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var dialog = new Dialog { Name = reader["Name"] as string, Title = reader["Title"] as string, CardForm = reader["CardForm"] as string }; var eventsValue = reader["Events"] as string; if (!string.IsNullOrEmpty(eventsValue)) { var events = EventTextParser.Parse(eventsValue); foreach (var @event in events) { dialog.Events.Add(@event); } } components.Add(dialog.Name, dialog); } } } query = this.GetMethodsQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var dialogName = reader["DialogName"] as string; if (!components.TryGetValue(dialogName, out Dialog dialog)) { continue; } var method = new Method { Name = reader["Name"] as string, CalculationText = reader["CalculationText"] as string ?? string.Empty }; dialog.Methods.Add(method); } } } } query = this.GetMethodParamsQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var dialogName = reader["DialogName"] as string; if (!components.TryGetValue(dialogName, out Dialog dialog)) { continue; } var methodName = reader["MethodName"] as string; var method = dialog.Methods .FirstOrDefault(m => m.Name == methodName); if (method == null) { continue; } var parameter = new MethodParam { Number = (int)reader["Number"], Name = reader["Name"] as string }; var typeValue = reader["Type"] as string; if (TypeValues.TryGetValue(typeValue, out MethodParamType methodParamType)) { parameter.Type = methodParamType; } parameter.DefaultValue = reader["DefaultValue"] as string; parameter.HasDefaultValue = !string.IsNullOrEmpty(parameter.DefaultValue); method.Params.Add(parameter); } } } } query = this.GetActionQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var dialogName = reader["DialogName"] as string; if (!components.TryGetValue(dialogName, out Dialog dialog)) { continue; } var action = new ActionWithHandler { Name = reader["Name"] as string }; var calculationText = reader["CalculationText"] as string; var executionHandler = dialog.Methods .FirstOrDefault(m => m.Name == calculationText); if (executionHandler != null) { action.ExecutionHandler = executionHandler; } else { action.CalculationText = calculationText ?? string.Empty; } dialog.Actions.Add(action); } } } } query = this.GetRequisiteQuery(platformVersion); if (!string.IsNullOrEmpty(query)) { command = new SqlCommand(query, connection); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { var dialogName = reader["DialogName"] as string; if (!components.TryGetValue(dialogName, out Dialog dialog)) { continue; } var cardRequisite = new CardRequisite { Number = (int)reader["Number"] }; if (reader["Section"] is string sectionValue && RequisiteSectionValues.ContainsKey(sectionValue)) { cardRequisite.Section = RequisiteSectionValues[sectionValue]; } cardRequisite.Name = reader["Name"] as string; cardRequisite.IsRequired = YesValue.Equals(reader["IsRequired"] as string); cardRequisite.IsLastValueSaved = YesValue.Equals(reader["IsLastValueSaved"] as string); cardRequisite.IsSelectionConstrained = YesValue.Equals(reader["IsSelectionConstrained"] as string); var changeEventValue = reader["ChangeEvent"] as string; if (!string.IsNullOrEmpty(changeEventValue)) { var @event = new Event { EventType = EventType.Change, CalculationText = changeEventValue }; cardRequisite.Events.Add(@event); } var selectEventsValue = reader["SelectEvents"] as string; if (!string.IsNullOrEmpty(selectEventsValue)) { var events = EventTextParser.Parse(selectEventsValue); foreach (var @event in events) { if (@event.EventType == EventType.Unknown) { @event.EventType = EventType.Select; } cardRequisite.Events.Add(@event); } } dialog.Requisites.Add(cardRequisite); } } } } return(components.Values.ToList()); }
protected Function(string name, MethodParam[] parameters) : base(name, parameters) { }
private void ReadMethods(RecordRefModel model, ManagedFolder entity, string componentFolderPath) { foreach (var methodNameRequisite in model.Requisites.Where(r => r.Name == "ISBMethodName")) { var method = new Method { Name = methodNameRequisite.Value }; var methodNumber = methodNameRequisite.Number; var calculationFilePath = Path.Combine(componentFolderPath, "Actions", $"ISBMethodCalculation_{methodNumber}.isbl"); if (File.Exists(calculationFilePath)) { method.CalculationText = File.ReadAllText(calculationFilePath, Encoding.GetEncoding(1251)); } else { log.Warn($"File not found {calculationFilePath}"); method.CalculationText = ""; } var methodParamNumbers = model.Requisites .Where(r => r.Name == "ISBParamMethodName") .Where(r => r.Value == method.Name) .Select(r => r.Number); foreach (var methodParamNumber in methodParamNumbers) { var methodParam = new MethodParam(); var methodParamNameReq = model.Requisites .Where(r => r.Name == "ISBParamName") .FirstOrDefault(r => r.Number == methodParamNumber); if (methodParamNameReq != null) { methodParam.Name = methodParamNameReq.Value; } var methodParamNumberReq = model.Requisites .Where(r => r.Name == "ISBParamNumber") .FirstOrDefault(r => r.Number == methodParamNumber); if (methodParamNumberReq != null) { methodParam.Number = int.Parse(methodParamNumberReq.Value); } var methodParamValueTypeReq = model.Requisites .Where(r => r.Name == "ISBParamValueType") .FirstOrDefault(r => r.Number == methodParamNumber); if (methodParamValueTypeReq != null) { switch (methodParamValueTypeReq.Value) { case "Variant": methodParam.Type = MethodParamType.Variant; break; case "Date": methodParam.Type = MethodParamType.Date; break; case "Float": methodParam.Type = MethodParamType.Float; break; case "Boolean": methodParam.Type = MethodParamType.Boolean; break; case "String": methodParam.Type = MethodParamType.String; break; case "Integer": methodParam.Type = MethodParamType.Integer; break; default: log.Warn($"Unknown type value \"{methodParamValueTypeReq.Value}\" for param \"{methodParam.Name}\" of managed folder \"{entity.Name}\""); break; } } var paramDefaultValueReq = model.Requisites .FirstOrDefault(r => r.Name == "ISBParamDefaultValue"); if (paramDefaultValueReq != null) { methodParam.DefaultValue = paramDefaultValueReq.Value; } methodParam.HasDefaultValue = !string.IsNullOrEmpty(methodParam.DefaultValue); method.Params.Add(methodParam); } entity.Methods.Add(method); } }
public Procedure( string name, MethodParam[] parameters ) : base(name, parameters) { }