public static EbApi GetApiByName(string name, string version, IDatabase ObjectsDB) { EbApi api_o = null; string sql = ObjectsDB.EB_API_BY_NAME; DbParameter[] parameter = { ObjectsDB.GetNewParameter("objname", EbDbTypes.String, name), ObjectsDB.GetNewParameter("version", EbDbTypes.String, version) }; EbDataTable dt = ObjectsDB.DoQuery(sql, parameter); if (dt.Rows.Count > 0) { EbDataRow dr = dt.Rows[0]; EbObjectWrapper _ebObject = (new EbObjectWrapper { Json = dr[0].ToString(), VersionNumber = dr[1].ToString(), EbObjectType = (dr[4] != DBNull.Value) ? Convert.ToInt32(dr[4]) : 0, Status = Enum.GetName(typeof(ObjectLifeCycleStatus), Convert.ToInt32(dr[2])), Tags = dr[3].ToString(), RefId = null, }); api_o = EbSerializers.Json_Deserialize <EbApi>(_ebObject.Json); } return(api_o); }
public static List <Param> GetReqJsonParameters(ListOrdered Components, IRedisClient Redis, IDatabase ObjectsDB) { List <Param> parameters = new List <Param>(); foreach (ApiResources resource in Components) { if (resource is EbSqlReader || resource is EbSqlWriter || resource is EbSqlFunc) { EbDataSourceMain dataSource = GetEbObject <EbDataSourceMain>(resource.Reference, Redis, ObjectsDB); if (dataSource.InputParams == null || dataSource.InputParams.Count <= 0) { parameters.Merge(dataSource.GetParams(Redis as RedisClient)); } else { parameters.Merge(dataSource.InputParams); } } else if (resource is EbEmailNode) { EbEmailTemplate emailTemplate = GetEbObject <EbEmailTemplate>(resource.Reference, Redis, ObjectsDB); parameters = parameters.Merge(GetEmailParams(emailTemplate, Redis, ObjectsDB)); } else if (resource is EbConnectApi) { EbApi ob = GetEbObject <EbApi>(resource.Reference, Redis, ObjectsDB); parameters = parameters.Merge(GetReqJsonParameters(ob.Resources, Redis, ObjectsDB)); } else if (resource is EbThirdPartyApi thirdParty) { if (thirdParty.Parameters != null && thirdParty.Parameters.Count > 0) { foreach (var param in thirdParty.Parameters) { parameters.Add(new Param { Name = param.Name, Type = param.Type.ToString(), Value = param.Value }); } } } } return(parameters); }
public static object GetResult(ApiResources resource, EbApi Api, RabbitMqProducer mqp, Service service, EbStaticFileClient FileClient) { ResultWrapper res = new ResultWrapper(); switch (resource) { case EbSqlReader reader: res.Result = (reader as EbSqlReader).ExecuteDataReader(Api); break; case EbSqlWriter writer: res.Result = (writer as EbSqlWriter).ExecuteDataWriter(Api); break; case EbSqlFunc func: res.Result = (func as EbSqlFunc).ExecuteSqlFunction(Api); break; case EbEmailNode email: res.Result = (email as EbEmailNode).ExecuteEmail(Api, mqp); break; case EbProcessor processor: res.Result = (processor as EbProcessor).ExecuteScript(Api, mqp, service, FileClient); break; case EbConnectApi ebApi: res.Result = (ebApi as EbConnectApi).ExecuteConnectApi(Api, service); break; case EbThirdPartyApi thirdParty: res.Result = (thirdParty as EbThirdPartyApi).ExecuteThirdPartyApi(thirdParty, Api); break; case EbFormResource form: res.Result = (form as EbFormResource).ExecuteFormResource(Api, service); break; case EbEmailRetriever retriever: res.Result = (retriever as EbEmailRetriever).ExecuteEmailRetriever(Api, service, FileClient, true); break; default: res.Result = null; break; } return(res.Result); }
public void GetApiObject(ApiMqRequest request) { int UserId; string SolutionId; string UserAuthId; Dictionary <string, object> ApiData; if (request.HasRefId()) { SolutionId = request.JobArgs.SolnId; UserAuthId = request.JobArgs.UserAuthId; ApiData = request.JobArgs.ApiData; UserId = request.JobArgs.UserId; try { this.Api = new EbApi(); this.EbConnectionFactory = new EbConnectionFactory(SolutionId, Redis); this.Api = Api.GetApi(request.JobArgs?.RefId, this.Redis, this.EbConnectionFactory.DataDB, this.EbConnectionFactory.ObjectsDB); this.Api.ApiResponse = new ApiResponse(); } catch (Exception ex) { Console.WriteLine($"Failed resolve api object from refid '{request.JobArgs?.RefId}'"); Console.WriteLine(ex.Message); } } else { SolutionId = request.SolnId; UserAuthId = request.UserAuthId; ApiData = request.Data; UserId = request.UserId; try { this.EbConnectionFactory = new EbConnectionFactory(SolutionId, Redis); this.Api = EbApiHelper.GetApiByName(request.Name, request.Version, this.EbConnectionFactory.ObjectsDB); if (!(this.Api is null)) { Api.Redis = this.Redis; Api.ObjectsDB = this.EbConnectionFactory.ObjectsDB; Api.DataDB = this.EbConnectionFactory.DataDB; this.Api.ApiResponse = new ApiResponse(); } } catch (Exception ex) { Console.WriteLine($"Failed resolve api object from refid '{this.Api?.RefId}'"); Console.WriteLine(ex.Message); } } if (this.Api is null) { this.Api = new EbApi { ApiResponse = new ApiResponse() }; this.Api.ApiResponse.Message.ErrorCode = ApiErrorCode.ApiNotFound; this.Api.ApiResponse.Message.Status = "Api does not exist"; this.Api.ApiResponse.Message.Description = $"Api does not exist!,"; throw new Exception(this.Api.ApiResponse.Message.Description); } this.Api.SolutionId = SolutionId; this.Api.UserObject = GetUserObject(UserAuthId); this.Api.GlobalParams = ProcessGlobalDictionary(ApiData); this.Api.GlobalParams["eb_currentuser_id"] = UserId; if (!this.Api.GlobalParams.ContainsKey("eb_loc_id")) { this.Api.GlobalParams["eb_loc_id"] = this.Api.UserObject.Preference.DefaultLocation; } }