Exemplo n.º 1
0
        public DataSourceColumnsResponse GetColumns(String refID)
        {
            DataSourceColumnsResponse cresp = new DataSourceColumnsResponse();

            cresp = this.Redis.Get <DataSourceColumnsResponse>(string.Format("{0}_columns", refID));
            foreach (var columnCollection in cresp.Columns)
            {
                columnCollection.Sort(CompareEbDataColumn);
            }

            return(cresp);
        }
        public IActionResult Index(string refid)
        {
            var resultlist = this.ServiceClient.Get <EbObjectParticularVersionResponse>(new EbObjectParticularVersionRequest {
                RefId = refid
            });

            Report                 = EbSerializers.Json_Deserialize <EbReport>(resultlist.Data[0].Json);
            Report.IsLastpage      = false;
            Report.watermarkImages = new Dictionary <string, byte[]>();
            Report.WaterMarkList   = new List <object>();
            if (Report.DataSourceRefId != string.Empty)
            {
                cresp = this.Redis.Get <DataSourceColumnsResponse>(string.Format("{0}_columns", Report.DataSourceRefId));
                if (cresp.IsNull)
                {
                    cresp = this.ServiceClient.Get <DataSourceColumnsResponse>(new DataSourceColumnsRequest {
                        RefId = Report.DataSourceRefId
                    });
                }

                Report.DataColumns = (cresp.Columns.Count > 1) ? cresp.Columns[1] : cresp.Columns[0];

                dresp = this.ServiceClient.Get <DataSourceDataResponse>(new DataSourceDataRequest {
                    RefId = Report.DataSourceRefId, Draw = 1, Start = 0, Length = 100
                });
                Report.DataRow = dresp.Data;
            }

            iTextSharp.text.Rectangle rec = new iTextSharp.text.Rectangle(Report.Width, Report.Height);

            d      = new Document(rec);
            ms1    = new MemoryStream();
            writer = PdfWriter.GetInstance(d, ms1);
            writer.Open();
            d.Open();
            writer.PageEvent   = new HeaderFooter(this);
            writer.CloseStream = true;//important
            canvas             = writer.DirectContent;
            Report.PageNumber  = writer.PageNumber;
            //Report.DataRow = __datarows;
            Report.InitializeSummaryFields();
            GetWatermarkImages();
            d.NewPage();

            DrawReportHeader();
            DrawDetail();
            d.Close();
            ms1.Position = 0;//important
            return(new FileStreamResult(ms1, "application/pdf"));
        }
        public IActionResult Index(string refid)
        {
            var resultlist = this.ServiceClient.Get <EbObjectParticularVersionResponse>(new EbObjectParticularVersionRequest {
                RefId = refid
            });

            Report = EbSerializers.Json_Deserialize <EbReport>(resultlist.Data[0].Json);

            if (Report.DataSourceRefId != string.Empty)
            {
                cresp = this.Redis.Get <DataSourceColumnsResponse>(string.Format("{0}_columns", Report.DataSourceRefId));
                if (cresp.IsNull)
                {
                    cresp = this.ServiceClient.Get <DataSourceColumnsResponse>(new DataSourceColumnsRequest {
                        RefId = Report.DataSourceRefId
                    });
                }

                __columns = (cresp.Columns.Count > 1) ? cresp.Columns[1] : cresp.Columns[0];

                dresp = this.ServiceClient.Get <DataSourceDataResponse>(new DataSourceDataRequest {
                    RefId = Report.DataSourceRefId, Draw = 1, Start = 0, Length = 100
                });
                dt = dresp.Data;
            }

            iTextSharp.text.Rectangle rec = (Report.IsLandscape) ?
                                            new iTextSharp.text.Rectangle(Report.Height, Report.Width) : new iTextSharp.text.Rectangle(Report.Width, Report.Height);

            d = new Document(rec);
            MemoryStream ms1 = new MemoryStream();

            writer = PdfWriter.GetInstance(d, ms1);
            writer.Open();
            d.Open();
            writer.PageEvent   = new HeaderFooter(this);
            writer.CloseStream = true;//important
            cb = writer.DirectContent;
            CalculateSectionHeights();
            d.NewPage();

            DrawReportHeader();
            DrawDetail();
            DrawReportFooter();
            d.Close();
            ms1.Position = 0;
            return(new FileStreamResult(ms1, "application/pdf"));
        }
Exemplo n.º 4
0
        public string GetColumns4Trial(string ds_refid, string parameter)
        {
            var redis      = this.Redis;
            var sscli      = this.ServiceClient;
            var token      = Request.Cookies[string.Format("T_{0}", ViewBag.cid)];
            var paramsList = new List <Dictionary <string, string> >();

            if (parameter == null)
            {
                paramsList = null;
            }
            else
            {
                Newtonsoft.Json.Linq.JArray ja = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(parameter);
                foreach (Newtonsoft.Json.Linq.JToken jt in ja)
                {
                    var _dict = new Dictionary <string, string>();
                    foreach (Newtonsoft.Json.Linq.JProperty jp in jt.Children())
                    {
                        _dict.Add(jp.Name, jp.Value.ToString());
                    }
                    paramsList.Add(_dict);
                }
            }
            DataSourceColumnsResponse columnresp = sscli.Get <DataSourceColumnsResponse>(new DataSourceColumnsRequest {
                RefId = ds_refid.ToString(), Params = paramsList
            });

            if (columnresp.Columns == null || columnresp.Columns.Count == 0)
            {
                return("");
            }
            else
            {
                string colDef    = "[";
                var    __columns = (columnresp.Columns.Count > 1) ? columnresp.Columns[1] : columnresp.Columns[0];
                foreach (EbDataColumn column in __columns)
                {
                    colDef += "{";
                    colDef += "\"data\": " + __columns[column.ColumnName].ColumnIndex.ToString();
                    colDef += ",\"title\": \"" + column.ColumnName + "\"";
                    colDef += ",\"visible\": " + true.ToString().ToLower();
                    colDef += "},";
                }
                return(colDef.Substring(0, colDef.Length - 1) + "]");
            }
        }
        private EbDataVisualization getDVObject(EbDataVisualization dvobj)
        {
            //DataSourceColumnsResponse columnresp = null;
            DataSourceColumnsResponse columnresp = this.Redis.Get <DataSourceColumnsResponse>(string.Format("{0}_columns", dvobj.DataSourceRefId));

            if (columnresp == null || columnresp.Columns.Count == 0)
            {
                columnresp = this.ServiceClient.Get <DataSourceColumnsResponse>(new DataSourceColumnsRequest {
                    RefId = dvobj.DataSourceRefId, TenantAccountId = ViewBag.cid
                });
            }

            dvobj.AfterRedisGet(this.Redis);

            var __columns = (columnresp.Columns.Count > 1) ? columnresp.Columns[1] : columnresp.Columns[0];
            int _pos      = __columns.Count + 100;

            dvobj.Columns = new DVColumnCollection();
            // Add Serial & Checkbox
            //dvobj.Columns.Add(new DVNumericColumn { Name = "serial", sTitle = "#", Type = DbType.Int64, bVisible = true, sWidth = "10px", Pos = -2 });
            //dvobj.Columns.Add(new DVBooleanColumn { Name = "checkbox", sTitle = "checkbox", Type = DbType.Boolean, bVisible = false, sWidth = "10px", Pos = -1 });


            foreach (EbDataColumn column in __columns)
            {
                DVBaseColumn _col = null;

                if (column.Type == DbType.String)
                {
                    _col = new DVStringColumn {
                        Data = column.ColumnIndex, Name = column.ColumnName, sTitle = column.ColumnName, Type = column.Type, bVisible = true, sWidth = "100px", Pos = _pos, ClassName = "tdheight"
                    }
                }
                ;
                else if (column.Type == DbType.Int16 || column.Type == DbType.Int32 || column.Type == DbType.Int64 || column.Type == DbType.Double || column.Type == DbType.Decimal || column.Type == DbType.VarNumeric)
                {
                    _col = new DVNumericColumn {
                        Data = column.ColumnIndex, Name = column.ColumnName, sTitle = column.ColumnName, Type = column.Type, bVisible = true, sWidth = "100px", Pos = _pos, ClassName = "tdheight dt-body-right"
                    }
                }
                ;
                else if (column.Type == DbType.Boolean)
                {
                    _col = new DVBooleanColumn {
                        Data = column.ColumnIndex, Name = column.ColumnName, sTitle = column.ColumnName, Type = column.Type, bVisible = true, sWidth = "100px", Pos = _pos, ClassName = "tdheight"
                    }
                }
                ;
                else if (column.Type == DbType.DateTime || column.Type == DbType.Date || column.Type == DbType.Time)
                {
                    _col = new DVDateTimeColumn {
                        Data = column.ColumnIndex, Name = column.ColumnName, sTitle = column.ColumnName, Type = column.Type, bVisible = true, sWidth = "100px", Pos = _pos, ClassName = "tdheight"
                    }
                }
                ;

                dvobj.Columns.Add(_col);
            }
            dvobj.DSColumns = dvobj.Columns;
            return(dvobj);
        }
    }
Exemplo n.º 6
0
        public DataSourceColumnsResponse Any(DataSourceColumnsRequest request)
        {
            string    _dsRedisKey          = string.Format("{0}_columns", request.RefId);
            EbDataSet _dataset             = null;
            bool      _isPaged             = false;
            DataSourceColumnsResponse resp = this.Redis.Get <DataSourceColumnsResponse>(_dsRedisKey);

            if (resp == null || resp.Columns == null || resp.Columns.Count == 0)
            {
                resp         = new DataSourceColumnsResponse();
                resp.Columns = new List <ColumnColletion>();
                //                // getting DATASOURCE needs to be changed LIVE/DEV/TEST scenarios
                //                string _sql_4dsBytea = string.Format(@"
                //SELECT
                //    EOV.obj_json
                //FROM
                //    eb_objects_ver EOV, eb_objects EO
                //WHERE
                //    EO.id = EOV.eb_objects_id AND
                //    EO.obj_last_ver_id = EOV.ver_num AND
                //    EO.id = {0}", request.Id);

                //                var dt = this.DatabaseFactory.ObjectsDB.DoQuery(_sql_4dsBytea);

                //if (dt.Rows.Count > 0)
                //{
                var _ds = this.Redis.Get <EbDataSource>(request.RefId); // EbSerializers.Json_Deserialize<EbDataSource>(dt.Rows[0][0].ToString());
                if (_ds != null)
                {
                    Log.Info(">>>>>>>>>>>>>>>>>>>>>>>> dscolumns Sql: " /*+ _ds.SqlDecoded()*/);

                    string _sql = _ds.Sql /*Decoded()*/.Replace("@and_search", string.Empty).Replace("@orderby", "1");
                    _isPaged = (_sql.ToLower().Contains("@offset") && _sql.ToLower().Contains("@limit"));

                    var parameters = new List <System.Data.Common.DbParameter>();
                    if (_isPaged)
                    {
                        parameters.AddRange(new System.Data.Common.DbParameter[]
                        {
                            this.TenantDbFactory.ObjectsDB.GetNewParameter("@limit", System.Data.DbType.Int32, 0),
                            this.TenantDbFactory.ObjectsDB.GetNewParameter("@offset", System.Data.DbType.Int32, 0)
                        });
                    }

                    if (request.Params != null)
                    {
                        foreach (Dictionary <string, string> param in request.Params)
                        {
                            parameters.Add(this.TenantDbFactory.ObjectsDB.GetNewParameter(string.Format("@{0}", param["name"]), (System.Data.DbType)Convert.ToInt32(param["type"]), param["value"]));
                        }
                    }

                    Log.Info(">>>>>>>>>>>>>>>>>>>>>>>> dscolumns Parameters Added");

                    try
                    {
                        _dataset = this.TenantDbFactory.ObjectsDB.DoQueries(_sql, parameters.ToArray());

                        foreach (var dt in _dataset.Tables)
                        {
                            resp.Columns.Add(dt.Columns);
                        }

                        resp.IsPaged = _isPaged;
                        this.Redis.Set <DataSourceColumnsResponse>(_dsRedisKey, resp);
                    }
                    catch (Exception e)
                    {
                        Log.Info(">>>>>>>>>>>>>>>>>>>>>>>> dscolumns e.Message: " + e.Message);
                        this.Redis.Remove(_dsRedisKey);
                    }
                }
            }

            return(resp);
        }
Exemplo n.º 7
0
        public DataSourceColumnsResponse Any(DataVisColumnsRequest request)
        {
            EbDataVisualization _dV = request.EbDataVisualization;

            _dV.AfterRedisGet(this.Redis as RedisClient);
            var _ds = _dV.EbDataSource;

            string _dsRedisKey = string.Format("{0}_columns", _dV.DataSourceRefId);

            EbDataSet _dataset             = null;
            bool      _isPaged             = false;
            DataSourceColumnsResponse resp = this.Redis.Get <DataSourceColumnsResponse>(_dsRedisKey);

            if (resp == null || resp.Columns == null || resp.Columns.Count == 0)
            {
                resp         = new DataSourceColumnsResponse();
                resp.Columns = new List <ColumnColletion>();

                if (_ds != null)
                {
                    Log.Info(">>>>>>>>>>>>>>>>>>>>>>>> dscolumns Sql: " + _ds.SqlDecoded());

                    string _sql = _ds.SqlDecoded().Replace("@and_search", string.Empty).Replace("@orderby", "1");
                    _isPaged = (_sql.ToLower().Contains("@offset") && _sql.ToLower().Contains("@limit"));

                    var parameters = new List <System.Data.Common.DbParameter>();
                    if (_isPaged)
                    {
                        parameters.AddRange(new System.Data.Common.DbParameter[]
                        {
                            this.TenantDbFactory.ObjectsDB.GetNewParameter("@limit", System.Data.DbType.Int32, 0),
                            this.TenantDbFactory.ObjectsDB.GetNewParameter("@offset", System.Data.DbType.Int32, 0)
                        });
                    }

                    if (request.Params != null)
                    {
                        foreach (Dictionary <string, string> param in request.Params)
                        {
                            parameters.Add(this.TenantDbFactory.ObjectsDB.GetNewParameter(string.Format("@{0}", param["name"]), (System.Data.DbType)Convert.ToInt32(param["type"]), param["value"]));
                        }
                    }

                    Log.Info(">>>>>>>>>>>>>>>>>>>>>>>> dscolumns Parameters Added");

                    try
                    {
                        _dataset = this.TenantDbFactory.ObjectsDB.DoQueries(_sql, parameters.ToArray());

                        foreach (var dt in _dataset.Tables)
                        {
                            resp.Columns.Add(dt.Columns);
                        }

                        resp.IsPaged = _isPaged;
                        this.Redis.Set <DataSourceColumnsResponse>(_dsRedisKey, resp);
                    }
                    catch (Exception e)
                    {
                        Log.Info(">>>>>>>>>>>>>>>>>>>>>>>> dscolumns e.Message: " + e.Message);
                        this.Redis.Remove(_dsRedisKey);
                    }
                }
            }

            return(resp);
        }