예제 #1
0
        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);
        }
예제 #3
0
        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());
        }