예제 #1
0
        protected override CustomListColumnCollection GetColumnsOverride(CustomListData data)
        {
            var columnCollection   = new CustomListColumnCollection();
            var chooseEntityOrView = data.Parameter.Split(';')[7];

            if (chooseEntityOrView == "View")
            {
                var link            = data.Parameter.Split(';')[0];
                var username        = data.Parameter.Split(';')[1];
                var password        = data.Parameter.Split(';')[2];
                var logicalNameView = data.Parameter.Split(';')[4];

                columnCollection = CrmHelper.GetViewColumns(link, username, password, logicalNameView);
            }
            else if (chooseEntityOrView == "Entity")
            {
                var      displayNameColumn    = data.Parameter.Split(';')[5];
                string[] newDisplayNameColumn = displayNameColumn.Replace(" ", String.Empty).Split(',');

                foreach (var c in newDisplayNameColumn)
                {
                    columnCollection.Add(new CustomListColumn(c, CustomListColumnTypes.String));
                }
            }

            return(columnCollection);
        }
        protected override CustomListColumnCollection GetColumnsOverride(CustomListData data)
        {
            CustomListColumnCollection cols = new CustomListColumnCollection();
            DataTable sqlresult             = GetSQLTable(data);

            foreach (DataColumn sqlcol in sqlresult.Columns)
            {
                CustomListColumn newcol = new CustomListColumn(sqlcol.ColumnName);

                // We convert the SQdL type to one of the three Peakboard types (string, number or boolean)
                if (sqlcol.DataType.ToString().Equals("System.Int32"))
                {
                    newcol.Type = CustomListColumnTypes.Number;
                }
                else if (sqlcol.DataType.ToString().Equals("System.Boolean"))
                {
                    newcol.Type = CustomListColumnTypes.Boolean;
                }
                else
                {
                    newcol.Type = CustomListColumnTypes.String;
                }

                cols.Add(newcol);
            }

            return(cols);
        }
예제 #3
0
        public static CustomListColumnCollection GetViewColumns(string link, string username, string password, string logicalNameView)
        {
            CustomListColumnCollection columnCollection = new CustomListColumnCollection();

            IOrganizationService service = TryConnection(link, username, password);

            if (service == null)
            {
                throw new InvalidOperationException("Connection has failed!");
            }
            else
            {
                var query = new QueryExpression
                {
                    EntityName = "savedquery",
                    ColumnSet  = new ColumnSet("fetchxml"),
                    Criteria   = new FilterExpression
                    {
                        FilterOperator = LogicalOperator.And,
                        Conditions     =
                        {
                            new ConditionExpression
                            {
                                AttributeName = "name",
                                Operator      = ConditionOperator.Equal,
                                Values        = { logicalNameView }//View Name - "Active Accounts"
                            },
                        }
                    }
                };

                var result = service.RetrieveMultiple(query);

                var fetchToQueryExpressionRequest = new FetchXmlToQueryExpressionRequest();
                fetchToQueryExpressionRequest.FetchXml = result.Entities[0].Attributes["fetchxml"].ToString();
                var             fetchToQueryExpressionResponse = (FetchXmlToQueryExpressionResponse)service.Execute(fetchToQueryExpressionRequest);
                QueryExpression qe = fetchToQueryExpressionResponse.Query;

                EntityCollection ec = new EntityCollection();

                try
                {
                    ec = service.RetrieveMultiple(qe);
                }
                catch
                {
                    throw new InvalidOperationException("Connection has failed!");
                }

                foreach (var c in qe.ColumnSet.Columns)
                {
                    columnCollection.Add(new CustomListColumn(c, CustomListColumnTypes.String));
                }
            }

            return(columnCollection);
        }
예제 #4
0
        protected override CustomListColumnCollection GetColumnsOverride(CustomListData data)
        {
            data.Properties.TryGetValue("SQLStatement", StringComparison.OrdinalIgnoreCase, out var SQLStatement);

            var cols        = new CustomListColumnCollection();
            var con         = GetConnection(data);
            var command     = new IngresCommand(SQLStatement, con);
            var reader      = command.ExecuteReader();
            var schemaTable = reader.GetSchemaTable();

            foreach (DataRow sqlcol in schemaTable.Rows)
            {
                var columnName     = (string)sqlcol["ColumnName"];
                var dataType       = (Type)sqlcol["DataType"];
                var listColumnType = CustomListColumnTypes.String;

                // We convert the types to one of the three Peakboard types (string, number or boolean)
                if (dataType == typeof(string))
                {
                    listColumnType = CustomListColumnTypes.String;
                }
                else if (dataType == typeof(bool))
                {
                    listColumnType = CustomListColumnTypes.Boolean;
                }
                else
                {
                    listColumnType = DataTypeHelper.IsNumericType(dataType) ? CustomListColumnTypes.Number : CustomListColumnTypes.String;
                }

                cols.Add(new CustomListColumn(columnName, listColumnType));
            }

            con.Close();

            return(cols);
        }