Example #1
0
 static private bool GetFunctionArgs(EFunction eFunction, ref StringBuilder argsStringBuilder, out List <EArg> allArgsList, out List <EArg> segmentsList, out List <EArg> mandatoryList, out List <EArg> optionalList, out List <EArg> formArgList, out EArg bodyArg)
 {
     segmentsList  = null;
     mandatoryList = null;
     optionalList  = null;
     formArgList   = null;
     allArgsList   = new List <EArg>();
     bodyArg       = null;
     try {
         //orderby then to linq nao funciona  para mesmo campo
         bodyArg       = Helper.GetBodyArg(eFunction.argsList);
         segmentsList  = Helper.GetSegmentsArgs(eFunction.argsList);
         mandatoryList = Helper.GetMandatoryArgs(eFunction.argsList);
         optionalList  = Helper.GetOptionalArgs(eFunction.argsList);
         formArgList   = Helper.GetFormArgs(eFunction.argsList);
         if (bodyArg != null)
         {
             allArgsList.Add(bodyArg);
         }
         if (segmentsList.Any())
         {
             allArgsList.AddRange(segmentsList);
         }
         if (mandatoryList.Any())
         {
             allArgsList.AddRange(mandatoryList);
         }
         if (optionalList.Any())
         {
             allArgsList.AddRange(optionalList);
         }
         if (formArgList.Any())
         {
             allArgsList.AddRange(formArgList);
         }
         for (int i = 0; i < allArgsList.Count; i++)
         {
             EArg eArg = allArgsList.ElementAt(i);
             argsStringBuilder.Append(eArg.typeName);
             argsStringBuilder.Append(" ");
             argsStringBuilder.Append(eArg.name);
             if (!string.IsNullOrEmpty(eArg.defaultValue))
             {
                 eArg.defaultValue = eArg.defaultValue.Replace("\'", "\"");
                 //if(eArg.defaultValue=="''")argsStringBuilder.Append("=\"\"");
                 argsStringBuilder.Append("=" + eArg.defaultValue);
             }
             if (i < (allArgsList.Count - 1))
             {
                 argsStringBuilder.Append(", ");
             }
         }
         return(true);
     } catch (Exception e) {
         Logger.LogError(e);
     }
     return(false);
 }
Example #2
0
        private void OnItemPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            var vm = sender.As <T>();

            if (e.PropertyName == nameof(vm.IsSelected))
            {
                if (vm.IsSelected)
                {
                    _itemPicked?.Invoke(sender, EArg <T> .NewArg(vm));
                }
                else
                {
                    _itemUnpicked?.Invoke(sender, EArg <T> .NewArg(vm));
                }
            }
        }
Example #3
0
        /// <summary>
        /// Добавить модель
        /// </summary>
        /// <param name="model">Модель</param>
        /// <returns>Была ли доабвлена модель</returns>
        public override bool Add(ModelT model)
        {
            if (OnCanAdd != null)
            {
                var arg = new EArg()
                {
                    CanUse = true
                };

                OnCanAdd(model, arg);

                if (!arg.CanUse)
                {
                    return(false);
                }
            }

            var checkValue = _getCheckValue(model);

            if (_comparer.Compare(checkValue, _target) == 0)
            {
                if (_dictionary.ContainsKey(model.ID))
                {
                    _dictionary[model.ID] = model;
                }
                else
                {
                    _dictionary.Add(model.ID, model);
                }

                OnAddAction(model);

                return(true);
            }
            else
            {
                return(false);
            }
        }
        static private string GetFunctionBody(EFunctionFile eFile, EFunction eFunction, string operation, List <EArg> segmentsList, List <EArg> mandatoryList, List <EArg> optionalList, List <EArg> formArgList, EArg bodyArg)
        {
            try {
                StringBuilder bodyTxt = new StringBuilder();

                string operationName = "";
                switch (eFunction.functionType)
                {
                case FunctionType.GET:
                    operationName = "HttpMethod.Get";
                    break;

                case FunctionType.PUT:
                    operationName = "HttpMethod.Put";
                    break;

                case FunctionType.POST:
                    operationName = "HttpMethod.Post";
                    break;

                case FunctionType.DELETE:
                    operationName = "HttpMethod.Delete";
                    break;
                }
                bodyTxt.Append("\n\t\t\tGlobals.loading = true;");
                bodyTxt.Append("\n\t\t\tHttpRequestMessage req = new HttpRequestMessage(" + operationName + ", $\"api/v" + eFunction.version + "/S" + eFile.frontendClassName + "/" + eFunction.functionName);
                if (segmentsList.Count == 0 && optionalList.Count == 0)
                {
                    bodyTxt.Append("\");");
                }
                foreach (EArg eArgSegment in segmentsList)
                {
                    bodyTxt.Append("/{" + eArgSegment.name + "}");
                }
                if (optionalList.Any())
                {
                    bodyTxt.Append("?");
                }
                for (int i = 0; i < optionalList.Count; i++)
                {
                    var eArgOptional = optionalList.ElementAt(i);
                    bodyTxt.Append(eArgOptional.name + "={" + eArgOptional.name + "}");
                    if (i < (optionalList.Count - 1))
                    {
                        bodyTxt.Append("&");
                    }
                }
                if (segmentsList.Any() || optionalList.Any())
                {
                    bodyTxt.Append("\");");
                }
                bodyTxt.Append("\n");
                bodyTxt.Append("\t\t\treq.Headers.Add(\"Authorization\", $\"bearer {Globals.jwtToken}\");\n");
                if (bodyArg != null)
                {
                    bodyTxt.Append("\t\t\treq.Content = new StringContent(JsonConvert.SerializeObject(" + bodyArg.name + "), Encoding.UTF8, \"application/json\");\n");
                }
                bodyTxt.Append("\t\t\tvar response = await httpClient.SendAsync(req);\n");
                bodyTxt.Append("\t\t\tGlobals.loading = false;\n");
                bodyTxt.Append("\t\t\tif (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)throw new UnauthorizedAccessException();\n");
                bodyTxt.Append("\t\t\tresponse.EnsureSuccessStatusCode();\n");
                if (eFunction.frontendReturnTypeName != "void")
                {
                    bodyTxt.Append("\t\t\tstring responseBody = await response.Content.ReadAsStringAsync();\n");
                    switch (eFunction.frontendReturnTypeName)
                    {
                    case "string":
                        bodyTxt.Append("\t\t\treturn responseBody;\n");
                        break;

                    case "Int64":
                        bodyTxt.Append("\t\t\treturn Int64.Parse(responseBody);\n");
                        break;

                    case "bool":
                        bodyTxt.Append("\t\t\treturn bool.Parse(responseBody);\n");
                        break;

                    case "Decimal":
                    case "decimal":
                        bodyTxt.Append("\t\t\treturn decimal.Parse(responseBody);\n");
                        break;

                    default:
                        bodyTxt.Append("\t\t\t" + eFunction.frontendReturnTypeName + " result = JsonConvert.DeserializeObject<" + eFunction.frontendReturnTypeName + ">(responseBody);\n");
                        bodyTxt.Append("\t\t\treturn result;\n");
                        break;
                    }
                }
                bodyTxt.Append("\t\t}");

//
//
//
//
//
//
//                bodyTxt.Append("\n\t\tfinal response = await http." + operation + "(Defines.RestBaseURL + '/v" + eFunction.version.ToString() + "/" + eFile.csharpFileName + "/" + eFunction.functionName);
//                if (segmentsList.Count == 0) bodyTxt.Append("'");
//                foreach (EArg eArgSegment in segmentsList) {
//                    bodyTxt.Append("/${" + eArgSegment.name + "}");
//                }
//                if (segmentsList.Count > 0) bodyTxt.Append("'");
//                bodyTxt.Append(",\n\t\t\t\theaders: {\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer \"+Defines.JwtToken},");
//                if (bodyArg != null) {
//                    switch (bodyArg.typeName) {
//                        //cshartptype
//                        case "string":
//                            bodyTxt.Append("\n\t\t\t\tbody: json.encode(" + bodyArg.name + "));\n\n");
//                            break;
//                        default:
//                            bodyTxt.Append("\n\t\t\t\tbody: json.encode(" + bodyArg.name + ".toJson()));\n\n");
//                            break;
//                    }
//                } else bodyTxt.Append(");\n\n");
//
//                bodyTxt.Append("\t\tif (response.statusCode != 200) print('(" + eFile.frontendClassName + ")" + eFunction.functionName + " error. Status code: ${response.statusCode}');\n");
//                if (eFunction.frontendReturnTypeName != "void") {
//                    bodyTxt.Append("\t\treturn ");
//                    if (eFunction.frontendReturnTypeName == "int") bodyTxt.Append(eFunction.frontendReturnTypeName + ".parse(response.body);\n");
//                    else if (eFunction.frontendReturnTypeName == "bool") bodyTxt.Append("BoolHelper.convertStringToBool(response.body);\n");
//                    else if (eFunction.frontendReturnTypeName.Contains("List<")) {
//                        string nameWithoutList = StringHelper.RemoveString(eFunction.returnTypeName, "List<");
//                        nameWithoutList = StringHelper.RemoveString(nameWithoutList, ">");
//                        bodyTxt.Append("(json.decode(response.body) as List).map((e) => new " + nameWithoutList + ".fromJson(e)).toList();\n");
//                    } else if (eFunction.frontendReturnTypeName == "String") bodyTxt.Append("json.decode(response.body);\n");
//                    else bodyTxt.Append(eFunction.frontendReturnTypeName + ".fromJson(json.decode(response.body));\n");
//                }

                return(bodyTxt.ToString());
            } catch (Exception e) {
                Logger.LogError(e);
            }
            return("");
        }
Example #5
0
 static private bool GetArgument(string file, int lineNumber, string txt, ref EFunction eFunction)
 {
     try {
         EArg eArg = new EArg();
         if (txt.Trim().Length == 0)
         {
             return(true);                       //no arguments
         }
         var   regex = new Regex("(\\w+)\\s+(\\w+\\[?\\]?)\\s+(\\w+)\\s*=?\\s*(.+)?", RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(1000));
         Match match = regex.Match(txt);
         if (!match.Success)
         {
             Logger.LogError("unable to identify argument in file " + file + " at line number " + lineNumber.ToString() + ": " + txt);
             return(false);
         }
         string argType = match.Groups[1].Value.ToLower().Trim();
         eArg.typeName = match.Groups[2].Value.Trim();
         eArg.name     = match.Groups[3].Value.Trim();
         if (match.Groups[4].Success)
         {
             eArg.defaultValue = match.Groups[4].Value.Trim();
         }
         if (argType.Contains("mandatory"))
         {
             eArg.argType = ArgType.MandatoryParameter;
             eFunction.argsList.Add(eArg);
         }
         else if (argType.Contains("optional"))
         {
             eArg.argType = ArgType.OptionalParameter;
             eFunction.argsList.Add(eArg);
         }
         else if (argType.Contains("segment"))
         {
             eArg.argType = ArgType.Segment;
             eFunction.argsList.Add(eArg);
         }
         else if (argType.Contains("form"))
         {
             eArg.argType = ArgType.FormData;
             eFunction.argsList.Add(eArg);
             if (eFunction.functionType == FunctionType.GET || eFunction.functionType == FunctionType.DELETE)
             {
                 Logger.LogError("Get/Delete function can not have form in file " + file + " at line number " + lineNumber.ToString() + ": " + txt);
                 return(false);
             }
         }
         else if (argType.Contains("body"))
         {
             eArg.argType = ArgType.Body;
             eFunction.argsList.Add(eArg);
             if (eFunction.functionType == FunctionType.GET || eFunction.functionType == FunctionType.DELETE)
             {
                 Logger.LogError("Get/Delete function can not have body in file " + file + " at line number " + lineNumber.ToString() + ": " + txt);
                 return(false);
             }
         }
         else
         {
             Logger.LogError("unable to idenfity argument type in file " + file + " at line number " + lineNumber.ToString() + ": " + txt);
             return(false);
         }
         return(true);
     } catch (Exception e) {
         Logger.LogError(e);
     }
     return(false);
 }
Example #6
0
 static private EFunction AnalyseTypeSyncFunction(string file, string txt, int lineNumber)
 {
     try {
         //Logger.LogInfo("analysing typesync function:" + txt);
         var   regex = new Regex("\".*\"", RegexOptions.Singleline, TimeSpan.FromMilliseconds(1000));
         Match match = regex.Match(txt);
         if (!match.Success)
         {
             Logger.LogError("unable to analyse function in file " + file + " at line number " + lineNumber.ToString() + ": " + txt);
             return(null);
         }
         string content = match.Captures[0].Value;
         content = content.Replace("\"", String.Empty);
         EFunction eFunction = new EFunction();
         if (txt.Contains("RestInPeaceGet"))
         {
             eFunction.functionType = FunctionType.GET;
         }
         else if (txt.Contains("RestInPeacePut"))
         {
             eFunction.functionType = FunctionType.PUT;
         }
         else if (txt.Contains("RestInPeacePost"))
         {
             eFunction.functionType = FunctionType.POST;
         }
         else if (txt.Contains("RestInPeaceDelete"))
         {
             eFunction.functionType = FunctionType.DELETE;
         }
         eFunction.argsList = new List <EArg>();
         eFunction.version  = GetVersion(file, lineNumber, txt);
         if (eFunction.version < 1)
         {
             Logger.LogError("unable to detect function version in file " + file + " at line number " + lineNumber.ToString() + ": " + txt);
             return(null);
         }
         if (!GetFunctionNameAndReturnType(file, lineNumber, content, ref eFunction))
         {
             Logger.LogError("unable to get function name in file " + file + " at line number " + lineNumber.ToString() + ": " + txt);
             return(null);
         }
         if (!GetFunctionArguments(file, lineNumber, content, ref eFunction))
         {
             Logger.LogError("unable to get function arguments in file " + file + " at line number " + lineNumber.ToString() + ": " + txt);
             return(null);
         }
         StringBuilder args = new StringBuilder();
         for (int i = 0; i < eFunction.argsList.Count; i++)
         {
             EArg eArg = eFunction.argsList.ElementAt(i);
             if (eArg.argType == ArgType.Body)
             {
                 args.Append("body ");
             }
             else if (eArg.argType == ArgType.OptionalParameter)
             {
                 args.Append("optional ");
             }
             else if (eArg.argType == ArgType.MandatoryParameter)
             {
                 args.Append("mandatory ");
             }
             else if (eArg.argType == ArgType.Segment)
             {
                 args.Append("segment ");
             }
             args.Append(eArg.typeName);
             args.Append(" ");
             args.Append(eArg.name);
             if (i < (eFunction.argsList.Count - 1))
             {
                 args.Append(", ");
             }
         }
         Logger.LogInfoIfDebugLevel(DebugLevels.Functions | DebugLevels.All, "\t\t" + eFunction.functionName);
         return(eFunction);
     } catch (Exception e) {
         Logger.LogError(e);
     }
     return(null);
 }
        static private string GetFunctionBody(EFunctionFile eFile, EFunction eFunction, string operation, List <EArg> segmentsList, List <EArg> mandatoryList, List <EArg> optionalList, List <EArg> formArgList, EArg bodyArg)
        {
            try {
                List <EArg> parametersList = mandatoryList;
                parametersList.AddRange(optionalList);
                StringBuilder bodyTxt = new StringBuilder();
                bodyTxt.Append("\t\tif(progressBar)progressBar.visible=true;\n");
                bodyTxt.Append("\t\tlet rest=base.createRestObj();\n");
                bodyTxt.Append("\t\trest.clear();\n");
                bodyTxt.Append("\t\trest.setBaseUrl(base.baseURL);\n");
                var cSharpClassName = "S" + eFile.frontendClassName.Remove(0, 1);
                bodyTxt.Append("\t\trest.setRoute('/v" + eFunction.version.ToString() + "/" + cSharpClassName + "/" + eFunction.functionName + "');\n");
                bodyTxt.Append("\t\trest.setToken(base.token);\n");
                foreach (EArg eArgSegment in segmentsList)
                {
                    bodyTxt.Append("\t\trest.appendUrlSegment(" + eArgSegment.name + ");\n");
                }
                foreach (EArg eArgParameter in parametersList)
                {
                    bodyTxt.Append("\t\trest.appendParameter('" + eArgParameter.name + "'," + eArgParameter.name + ");\n");
                }
                if (bodyArg != null)
                {
                    bodyTxt.Append("\t\trest.setBody(JSON.stringify(" + bodyArg.name + "));\n");
                }
                bodyTxt.Append("\t\treturn rest." + Helper.GetRESTOperationForQML(eFile, eFunction, true) + "(progressBar);\n");
                bodyTxt.Append("\t}");
                return(bodyTxt.ToString());
            } catch (Exception e) {
                Logger.LogError(e);
            }

            return("");
        }
Example #8
0
 static private string GetFunctionBody(EFunctionFile eFile, EFunction eFunction, string operation, List <EArg> segmentsList, List <EArg> mandatoryList, List <EArg> optionalList, List <EArg> formArgList, EArg bodyArg)
 {
     try {
         StringBuilder bodyTxt = new StringBuilder();
         bodyTxt.Append("\t\t\ttry{\n");
         if (eFunction.returnTypeName != "void")
         {
             bodyTxt.Append("\t\t\t\t" + eFunction.returnTypeName + " result = await (Defines.RestBaseURL+\"/v" + eFunction.version.ToString() + "/S" + eFile.frontendClassName + "/" + eFunction.functionName + "\")\n");
         }
         else
         {
             bodyTxt.Append("\t\t\t\t await (Defines.RestBaseURL+\"/v" + eFunction.version.ToString() + "/" + eFile.csharpFileName + "/" + eFunction.functionName + "\")\n");
         }
         foreach (EArg eArgSegment in segmentsList)
         {
             bodyTxt.Append("\t\t\t\t\t.AppendPathSegment(" + eArgSegment.name + ")\n");
         }
         foreach (EArg mandatoryArg in mandatoryList)
         {
             bodyTxt.Append("\t\t\t\t\t.SetQueryParam(\"" + mandatoryArg.name + "\", " + mandatoryArg.name + ")\n");
         }
         foreach (EArg optionalArg in optionalList)
         {
             bodyTxt.Append("\t\t\t\t\t.SetQueryParam(\"" + optionalArg.name + "\", " + optionalArg.name + ")\n");
         }
         bodyTxt.Append("\t\t\t\t\t.WithHeader(\"Authorization\",\"Bearer \"+Defines.Token)\n");
         if (eFunction.functionType == FunctionType.GET || eFunction.functionType == FunctionType.DELETE)
         {
             if (eFunction.returnTypeName != "void")
             {
                 bodyTxt.Append("\t\t\t\t\t.GetJsonAsync<" + eFunction.returnTypeName + ">();\n");
             }
             else
             {
                 bodyTxt.Append("\t\t\t\t\t.GetAsync();\n");
             }
         }
         else if (eFunction.functionType == FunctionType.POST)
         {
             if (bodyArg != null)
             {
                 bodyTxt.Append("\t\t\t\t\t.PostJsonAsync(JsonConvert.SerializeObject(" + bodyArg.name + "))\n");
             }
             else
             {
                 bodyTxt.Append("\t\t\t\t\t.PostAsync(null)\n");
             }
             if (eFunction.returnTypeName != "void")
             {
                 bodyTxt.Append("\t\t\t\t\t.ReceiveJson<" + eFunction.returnTypeName + ">();\n");
             }
         }
         else if (eFunction.functionType == FunctionType.PUT)
         {
             if (bodyArg != null)
             {
                 bodyTxt.Append("\t\t\t\t\t.PutJsonAsync(JsonConvert.SerializeObject(" + bodyArg.name + "))\n");
             }
             else
             {
                 bodyTxt.Append("\t\t\t\t\t.PutAsync(null)\n");
             }
             if (eFunction.returnTypeName != "void")
             {
                 bodyTxt.Append("\t\t\t\t\t.ReceiveJson<" + eFunction.returnTypeName + ">();\n");
             }
         }
         if (eFunction.returnTypeName != "void")
         {
             bodyTxt.Append("\t\t\t\treturn result;\n");
         }
         bodyTxt.Append("\t\t\t}catch(Exception ex){\n");
         bodyTxt.Append("\t\t\t\tLogger.LogError(ex);\n");
         bodyTxt.Append("\t\t\t}\n");
         if (eFunction.returnTypeName != "void")
         {
             if (eFunction.returnTypeName == "bool")
             {
                 bodyTxt.Append("\t\t\treturn false;\n");
             }
             else if (eFunction.returnTypeName == "int" || eFunction.returnTypeName == "Int64" || eFunction.returnTypeName == "Int32" || eFunction.returnTypeName == "double" || eFunction.returnTypeName == "float")
             {
                 bodyTxt.Append("\t\t\treturn -1;\n");
             }
             else if (eFunction.returnTypeName == "TimeSpan")
             {
                 bodyTxt.Append("\t\t\treturn new TimeSpan();\n");
             }
             else
             {
                 bodyTxt.Append("\t\t\treturn null;\n");
             }
         }
         bodyTxt.Append("\t\t}\n");
         return(bodyTxt.ToString());
     } catch (Exception e) {
         Logger.LogError(e);
     }
     return("");
 }
Example #9
0
 static private bool GetFunctionArgs(EFunction eFunction, ref StringBuilder argsStringBuilder, out List <EArg> allArgsList, out List <EArg> segmentsList, out List <EArg> mandatoryList, out List <EArg> optionalList, out List <EArg> formArgList, out EArg bodyArg)
 {
     segmentsList  = null;
     mandatoryList = null;
     optionalList  = null;
     formArgList   = null;
     allArgsList   = new List <EArg>();
     bodyArg       = null;
     try {
         //orderby then to linq nao funciona  para mesmo campo
         bodyArg       = Helper.GetBodyArg(eFunction.argsList);
         segmentsList  = Helper.GetSegmentsArgs(eFunction.argsList);
         mandatoryList = Helper.GetMandatoryArgs(eFunction.argsList);
         optionalList  = Helper.GetOptionalArgs(eFunction.argsList);
         formArgList   = Helper.GetFormArgs(eFunction.argsList);
         if (bodyArg != null)
         {
             allArgsList.Add(bodyArg);
         }
         if (segmentsList.Any())
         {
             allArgsList.AddRange(segmentsList);
         }
         if (mandatoryList.Any())
         {
             allArgsList.AddRange(mandatoryList);
         }
         if (optionalList.Any())
         {
             allArgsList.AddRange(optionalList);
         }
         if (formArgList.Any())
         {
             allArgsList.AddRange(formArgList);
         }
         for (int i = 0; i < allArgsList.Count; i++)
         {
             EArg eArg = allArgsList.ElementAt(i);
             argsStringBuilder.Append(eArg.name);
             argsStringBuilder.Append(":");
             argsStringBuilder.Append(AngularWatcher.ConvertToAngularTypeName(eArg.typeName));
             if (!string.IsNullOrEmpty(eArg.defaultValue))
             {
                 argsStringBuilder.Append("=" + eArg.defaultValue);
             }
             if (i < (allArgsList.Count - 1))
             {
                 argsStringBuilder.Append(", ");
             }
         }
         if (argsStringBuilder.Length > 0)
         {
             argsStringBuilder.Append(", timeoutSeconds:number=20000");
         }
         else
         {
             argsStringBuilder.Append("timeoutSeconds:number=20000");
         }
         return(true);
     } catch (Exception e) {
         Logger.LogError(e);
     }
     return(false);
 }
Example #10
0
 static private string GetFunctionBody(EFunctionFile eFile, EFunction eFunction, string operation, List <EArg> segmentsList, List <EArg> mandatoryList, List <EArg> optionalList, List <EArg> formArgList, EArg bodyArg)
 {
     try {
         StringBuilder bodyTxt = new StringBuilder();
         if (formArgList.Any())
         {
             bodyTxt.Append("\t\tlet formData = new FormData();\n");
             foreach (EArg formArg in formArgList)
             {
                 if (formArg.typeName == "any")
                 {
                     bodyTxt.Append("\t\tformData.append('" + formArg.name + "', " + formArg.name + ");\n");
                 }
                 else
                 {
                     bodyTxt.Append("\t\tformData.append('" + formArg.name + "', " + formArg.name + ".toString());\n");
                 }
             }
             bodyTxt.Append("\t\tconst response = await this.authHttp." + operation + "(Defines.RestBaseURL + '/v" + eFunction.version.ToString() + "/S" + eFile.frontendClassName + "/" + eFunction.functionName + "'");
             if (string.IsNullOrEmpty(AngularFunctionWriter.restInPeaceVersion))
             {
                 bodyTxt.Append(", formData).timeout(timeoutSeconds*1000).toPromise().catch(Helper.handleError);\n");
             }
             else
             {
                 bodyTxt.Append(", formData).toPromise().catch(Helper.handleError);\n");
             }
             bodyTxt.Append("\t\treturn response;\n");
             bodyTxt.Append("\t}");
             return(bodyTxt.ToString());
         }
         if (mandatoryList.Count > 0 || optionalList.Count > 0)
         {
             bodyTxt.Append("\t\tlet params: HttpParams = new HttpParams();\n");
             foreach (EArg mandatoryArg in mandatoryList)
             {
                 bodyTxt.Append("\t\tparams= params.set('" + mandatoryArg.name + "', " + mandatoryArg.name + ".toString());\n");
             }
             foreach (EArg optionalArg in optionalList)
             {
                 bodyTxt.Append("\t\tif(" + optionalArg.name + "!=null) params= params.set('" + optionalArg.name + "', " + optionalArg.name + ".toString());\n");
             }
         }
         bodyTxt.Append("\t\tconst response = await this.authHttp." + operation + "(Defines.RestBaseURL + '/v" + eFunction.version.ToString() + "/S" + eFile.frontendClassName + "/" + eFunction.functionName + "'");
         foreach (EArg eArgSegment in segmentsList)
         {
             bodyTxt.Append("+'/'+" + eArgSegment.name);
         }
         if (bodyArg != null)
         {
             if (string.IsNullOrEmpty(AngularFunctionWriter.restInPeaceVersion))
             {
                 bodyTxt.Append(", JSON.stringify(" + bodyArg.name + ")");
             }
             else
             {
                 bodyTxt.Append(", JSON.stringify(" + bodyArg.name + "), Defines.httpOptions");
             }
         }
         else
         {
             if ((!string.IsNullOrEmpty(AngularFunctionWriter.restInPeaceVersion)) && (eFunction.functionType == FunctionType.POST || eFunction.functionType == FunctionType.PUT))
             {
                 bodyTxt.Append(", Defines.httpOptions");
             }
         }
         if (string.IsNullOrEmpty(AngularFunctionWriter.restInPeaceVersion))
         {
             if (eFunction.functionType == FunctionType.PUT || eFunction.functionType == FunctionType.POST)
             {
                 bodyTxt.Append(", { headers: Defines.Headers }");
             }
         }
         if (mandatoryList.Count > 0 || optionalList.Count > 0)
         {
             bodyTxt.Append(", {params: params}");
         }
         if (string.IsNullOrEmpty(AngularFunctionWriter.restInPeaceVersion))
         {
             bodyTxt.Append(").timeout(timeoutSeconds*1000).toPromise().catch(Helper.handleError);\n");
         }
         else
         {
             bodyTxt.Append(").toPromise().catch(Helper.handleError);\n");
         }
         if (string.IsNullOrEmpty(AngularFunctionWriter.restInPeaceVersion))
         {
             bodyTxt.Append("\t\treturn response.json();\n");
         }
         else
         {
             bodyTxt.Append("\t\treturn response;\n");
         }
         bodyTxt.Append("\t}");
         return(bodyTxt.ToString());
     } catch (Exception e) {
         Logger.LogError(e);
     }
     return("");
 }
Example #11
0
        static private string GetFunctionBody(EFunctionFile eFile, EFunction eFunction, string operation, List <EArg> segmentsList, List <EArg> mandatoryList, List <EArg> optionalList, List <EArg> formArgList, EArg bodyArg)
        {
            try {
                List <EArg> parametersList = mandatoryList;
                parametersList.AddRange(optionalList);
                StringBuilder bodyTxt = new StringBuilder();
                bodyTxt.Append("\tif(progressBar)progressBar.visible=true;\n");
                bodyTxt.Append("\tvar rest=base.createRestObj();\n");
                bodyTxt.Append("\trest.clear();\n");
                bodyTxt.Append("\trest.setBaseUrl(dstore.baseURL);\n");
                bodyTxt.Append("\trest.setRoute('/v" + eFunction.version.ToString() + "/" + eFile.csharpFileName + "/" + eFunction.functionName + "');\n");
                bodyTxt.Append("\trest.setToken(dstore.token);\n");
                foreach (EArg eArgSegment in segmentsList)
                {
                    bodyTxt.Append("\trest.appendUrlSegment(" + eArgSegment.name + ");\n");
                }
                foreach (EArg eArgParameter in parametersList)
                {
                    bodyTxt.Append("\trest.appendParameter('" + eArgParameter.name + "'," + eArgParameter.name + ");\n");
                }
                if (bodyArg != null)
                {
                    bodyTxt.Append("\trest.setBody(JSON.stringify(" + bodyArg.name + "));\n");
                }
                if (!isForTypescriptApp)
                {
                    bodyTxt.Append("\trest." + Helper.GetRESTOperationForQML(eFile, eFunction, isForTypescriptApp) + "(function(response){\n");
                    bodyTxt.Append("\t\tif(progressBar)progressBar.visible=false;\n");
                    bodyTxt.Append("\t\tvar result=JSON.parse(response);\n");
                    bodyTxt.Append("\t\tcallback(result);\n");
                    bodyTxt.Append("\t});\n");
                }
                else    //for typescript app
                {
                    bodyTxt.Append("\treturn rest." + Helper.GetRESTOperationForQML(eFile, eFunction, isForTypescriptApp) + "(progressBar);\n");
                }
                bodyTxt.Append("}");
                return(bodyTxt.ToString());
            } catch (Exception e) {
                Logger.LogError(e);
            }

            return("");
        }
        static private string GetFunctionBody(EFunctionFile eFile, EFunction eFunction, string operation, List <EArg> segmentsList, List <EArg> mandatoryList, List <EArg> optionalList, List <EArg> formArgList, EArg bodyArg)
        {
            try {
                StringBuilder bodyTxt = new StringBuilder();
//                if (formArgList.Any()) {
//                    bodyTxt.Append("\t\tlet formData = new FormData();\n");
//                    foreach (EArg formArg in formArgList) {
//                        if (formArg.typeName == "any") bodyTxt.Append("\t\tformData.append('" + formArg.name + "', " + formArg.name + ");\n");
//                        else bodyTxt.Append("\t\tformData.append('" + formArg.name + "', " + formArg.name + ".toString());\n");
//                    }
//                    bodyTxt.Append("\t\tconst response = await this.authHttp." + operation + "(Defines.RestBaseURL + '/v" + eFunction.version.ToString() + "/" + eFile.csharpFileName + "/" + eFunction.functionName + "'");
//                    if (string.IsNullOrEmpty(AngularFunctionWriter.restInPeaceVersion)) bodyTxt.Append(", formData).timeout(timeoutSeconds*1000).toPromise().catch(Helper.handleError);\n");
//                    else bodyTxt.Append(", formData).toPromise().catch(Helper.handleError);\n");
//                    bodyTxt.Append("\t\treturn response.json();\n");
//                    bodyTxt.Append("\t}");
//                    return bodyTxt.ToString();
//                }
//                if (mandatoryList.Count > 0 || optionalList.Count > 0) {
//                    bodyTxt.Append("\t\tlet params: HttpParams = new HttpParams();\n");
//                    foreach (EArg mandatoryArg in mandatoryList) {
//                        bodyTxt.Append("\t\tparams= params.set('" + mandatoryArg.name + "', " + mandatoryArg.name + ".toString());\n");
//                    }
//                    foreach (EArg optionalArg in optionalList) {
//                        bodyTxt.Append("\t\tif(" + optionalArg.name + "!=null) params= params.set('" + optionalArg.name + "', " + optionalArg.name + ".toString());\n");
//                    }
//                }
                bodyTxt.Append("\n\t\tfinal response = await http." + operation + "(Defines.RestBaseURL + '/v" + eFunction.version.ToString() + "/" + eFile.csharpFileName + "/" + eFunction.functionName);
                if (segmentsList.Count == 0)
                {
                    bodyTxt.Append("'");
                }
                foreach (EArg eArgSegment in segmentsList)
                {
                    bodyTxt.Append("/${" + eArgSegment.name + "}");
                }
                if (segmentsList.Count > 0)
                {
                    bodyTxt.Append("'");
                }
                bodyTxt.Append(",\n\t\t\t\theaders: {\"Content-Type\": \"application/json\", \"Authorization\": \"Bearer \"+Defines.JwtToken},");
                if (bodyArg != null)
                {
                    switch (bodyArg.typeName)  //cshartptype
                    {
                    case "string":
                        bodyTxt.Append("\n\t\t\t\tbody: json.encode(" + bodyArg.name + "));\n\n");
                        break;

                    default:
                        bodyTxt.Append("\n\t\t\t\tbody: json.encode(" + bodyArg.name + ".toJson()));\n\n");
                        break;
                    }
                }
                else
                {
                    bodyTxt.Append(");\n\n");
                }
//                if (string.IsNullOrEmpty(AngularFunctionWriter.restInPeaceVersion)) {
//                    if (eFunction.functionType == FunctionType.PUT || eFunction.functionType == FunctionType.POST) {
//                        bodyTxt.Append(", { headers: Defines.Headers }");
//                    }
//                }
//                if (mandatoryList.Count > 0 || optionalList.Count > 0) {
//                    bodyTxt.Append(", {params: params}");
//                }

                bodyTxt.Append("\t\tif (response.statusCode != 200) print('(" + eFile.frontendClassName + ")" + eFunction.functionName + " error. Status code: ${response.statusCode}');\n");
                if (eFunction.frontendReturnTypeName != "void")
                {
                    bodyTxt.Append("\t\treturn ");
                    if (eFunction.frontendReturnTypeName == "int")
                    {
                        bodyTxt.Append(eFunction.frontendReturnTypeName + ".parse(response.body);\n");
                    }
                    else if (eFunction.frontendReturnTypeName == "bool")
                    {
                        bodyTxt.Append("BoolHelper.convertStringToBool(response.body);\n");
                    }
                    else if (eFunction.frontendReturnTypeName.Contains("List<"))
                    {
                        string nameWithoutList = StringHelper.RemoveString(eFunction.returnTypeName, "List<");
                        nameWithoutList = StringHelper.RemoveString(nameWithoutList, ">");
                        bodyTxt.Append("(json.decode(response.body) as List).map((e) => new " + nameWithoutList + ".fromJson(e)).toList();\n");
                    }
                    else if (eFunction.frontendReturnTypeName == "String")
                    {
                        bodyTxt.Append("json.decode(response.body);\n");
                    }
                    else
                    {
                        bodyTxt.Append(eFunction.frontendReturnTypeName + ".fromJson(json.decode(response.body));\n");
                    }
                }
                bodyTxt.Append("\t}");
                return(bodyTxt.ToString());
            } catch (Exception e) {
                Logger.LogError(e);
            }
            return("");
        }
 static private bool GetFunctionArgs(EFunction eFunction, ref StringBuilder argsStringBuilder, out List <EArg> allArgsList, out List <EArg> segmentsList, out List <EArg> mandatoryList, out List <EArg> optionalList, out List <EArg> formArgList, out EArg bodyArg)
 {
     segmentsList  = null;
     mandatoryList = null;
     optionalList  = null;
     formArgList   = null;
     allArgsList   = new List <EArg>();
     bodyArg       = null;
     try {
         //orderby then to linq nao funciona  para mesmo campo
         bodyArg       = Helper.GetBodyArg(eFunction.argsList);
         segmentsList  = Helper.GetSegmentsArgs(eFunction.argsList);
         mandatoryList = Helper.GetMandatoryArgs(eFunction.argsList);
         optionalList  = Helper.GetOptionalArgs(eFunction.argsList);
         formArgList   = Helper.GetFormArgs(eFunction.argsList);
         if (bodyArg != null)
         {
             allArgsList.Add(bodyArg);
         }
         if (segmentsList.Any())
         {
             allArgsList.AddRange(segmentsList);
         }
         if (mandatoryList.Any())
         {
             allArgsList.AddRange(mandatoryList);
         }
         if (optionalList.Any())
         {
             allArgsList.AddRange(optionalList);
         }
         if (formArgList.Any())
         {
             allArgsList.AddRange(formArgList);
         }
         bool optionalArgsStarted = false;
         for (int i = 0; i < allArgsList.Count; i++)
         {
             EArg eArg            = allArgsList.ElementAt(i);
             bool hasDefaultValue = !string.IsNullOrEmpty(eArg.defaultValue);
             if (hasDefaultValue && (!optionalArgsStarted))
             {
                 argsStringBuilder.Append("{");
                 optionalArgsStarted = true;
             }
             string flutterTypeName = FlutterWatcher.GetFlutterType(eArg.typeName, out bool isAnotherEntityImport);
             argsStringBuilder.Append(flutterTypeName + " " + eArg.name);
             if (hasDefaultValue)
             {
                 argsStringBuilder.Append("=" + eArg.defaultValue);
             }
             if (i < (allArgsList.Count - 1))
             {
                 argsStringBuilder.Append(", ");
             }
         }
         if (optionalArgsStarted)
         {
             argsStringBuilder.Append("}");
         }
         return(true);
     } catch (Exception e) {
         Logger.LogError(e);
     }
     return(false);
 }