public static T GetEbObject <T>(string refId, IRedisClient Redis, IDatabase ObjectsDB) { T ebObject = Redis.Get <T>(refId); if (ebObject == null) { List <EbObjectWrapper> wrap = EbObjectsHelper.GetParticularVersion(ObjectsDB, refId); ebObject = EbSerializers.Json_Deserialize <T>(wrap[0].Json); } return(ebObject); }
public object ExecuteSqlFunction(EbApi Api) { SqlFuncTestResponse response; try { EbSqlFunction sqlFunc = Api.GetEbObject <EbSqlFunction>(this.Reference, Api.Redis, Api.ObjectsDB); List <Param> InputParams = sqlFunc.GetParams(null); Api.FillParams(InputParams); response = EbObjectsHelper.SqlFuncTest(InputParams, sqlFunc.Name, Api.ObjectsDB); } catch (Exception ex) { throw new ApiException("[ExecuteSqlFunction], " + ex.Message); } return(response); }
public ReportRenderResponse Post(ReportRenderMultipleMQRequest request) { string Displayname = ""; this.Ms1 = new MemoryStream(); this.EbConnectionFactory = new EbConnectionFactory(request.SolnId, this.Redis); JsonServiceClient authClient = this.ServiceStackClient; MyAuthenticateResponse authResponse = authClient.Get <MyAuthenticateResponse>(new Authenticate { provider = CredentialsAuthProvider.Name, UserName = GetUserObject(request.ReadingUserAuthId)?.Email, Password = "******", Meta = new Dictionary <string, string> { { RoutingConstants.WC, RoutingConstants.UC }, { TokenConstants.CID, request.SolnId }, { "sso", "true" }, { TokenConstants.IP, "" }, { RoutingConstants.USER_AGENT, "" } }, }); this.FileClient.BearerToken = authResponse?.BearerToken; this.FileClient.RefreshToken = authResponse?.RefreshToken; List <EbObjectWrapper> resultlist = EbObjectsHelper.GetParticularVersion(this.EbConnectionFactory.ObjectsDB, request.RefId); EbReport ReportObject = EbSerializers.Json_Deserialize <EbReport>(resultlist[0].Json); ReportObject.ObjectsDB = this.EbConnectionFactory.ObjectsDB; ReportObject.Redis = this.Redis; ReportObject.FileClient = this.FileClient; ReportObject.Solution = GetSolutionObject(request.SolnId); ReportObject.ReadingUser = GetUserObject(request.ReadingUserAuthId); ReportObject.RenderingUser = GetUserObject(request.RenderingUserAuthId); ReportObject.CultureInfo = CultureHelper.GetSerializedCultureInfo(ReportObject.ReadingUser?.Preference.Locale ?? "en-US").GetCultureInfo(); ReportObject.GetWatermarkImages(); try { byte[] encodedDataAsBytes = System.Convert.FromBase64String(request.Params); string returnValue = System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes); List <Param> _paramlist = (returnValue == null) ? null : JsonConvert.DeserializeObject <List <Param> >(returnValue); if (_paramlist != null) { for (int i = 0; i < _paramlist.Count; i++) { string[] values = _paramlist[i].Value.Split(','); for (int j = 0; j < values.Length; j++) { List <Param> _newParamlist = new List <Param> { new Param { Name = "id", Value = values[j], Type = "7" } }; this.Report = ReportObject; if (Report != null) { InitializePdfObjects(); Report.Doc.NewPage(); Report.GetData4Pdf(_newParamlist, EbConnectionFactory); if (Report.DataSet != null) { Report.Draw(); } else { throw new Exception(); } } } } } } catch (Exception e) { Console.WriteLine("Exception-reportService " + e.Message + e.StackTrace); Report.HandleExceptionPdf(); } Report.Doc.Close(); if (Report.DataSourceRefId != string.Empty && Report.DataSet != null) { Report.DataSet.Tables.Clear(); Report.DataSet = null; } Displayname = Regex.Replace(((Displayname == "") ? Report.DisplayName : Displayname), @"\s+", ""); Ms1.Position = 0; string uid = request.RefId + request.UserId + request.SubscriptionId; byte[] compressedData = Compress(Ms1.ToArray()); this.Redis.Set("PdfReport" + uid, compressedData, DateTime.Now.AddMinutes(15)); this.ServerEventClient.BearerToken = authResponse?.BearerToken; this.ServerEventClient.RefreshToken = authResponse?.RefreshToken; this.ServerEventClient.RefreshTokenUri = Environment.GetEnvironmentVariable(EnvironmentConstants.EB_GET_ACCESS_TOKEN_URL); Console.WriteLine("Calling NotifySubscriptionRequest to subsc.id :" + request.SubscriptionId); this.ServerEventClient.Post <NotifyResponse>(new NotifySubscriptionRequest { Msg = "/DV/GetPdf?refid=" + uid + "&filename=" + Displayname + ".pdf", Selector = StaticFileConstants.PDFDOWNLOADSUCCESS, ToSubscriptionId = request.SubscriptionId }); return(new ReportRenderResponse()); }