Exemple #1
0
        internal List <SearchResultColumn> GetSearchResultsFields(Entity currentEntity)
        {
            var result = new List <SearchResultColumn>();

            foreach (var field in Fields.Where(f => f.ShowInSearchResults).OrderBy(f => f.FieldOrder))
            {
                if (RelationshipsAsChild.Any(r => r.RelationshipFields.Any(f => f.ChildFieldId == field.FieldId)))
                {
                    var rel = RelationshipsAsChild.Single(r => r.RelationshipFields.Any(f => f.ChildFieldId == field.FieldId));
                    if (rel.ParentEntity == currentEntity)
                    {
                        continue;
                    }

                    result.Add(new SearchResultColumn {
                        Header = rel.ParentEntity.FriendlyName, Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ rel.ParentName.ToCamelCase() }.{ rel.ParentField.Name.ToCamelCase() } }}}}"
                    });
                }
                else
                {
                    var column = new SearchResultColumn {
                        Header = field.Label
                    };
                    if (field.FieldType == FieldType.Enum)
                    {
                        column.Value = $"{{{{ vm.appSettings.find(vm.appSettings.{ field.Lookup.Name.ToCamelCase() }, {field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() }).label }}}}";
                    }
                    else if (field.FieldType == FieldType.Bit)
                    {
                        column.Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() } ? \"Yes\" : \"No\" }}}}";
                    }
                    else if (field.FieldType == FieldType.Date)
                    {
                        column.Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() } | toLocaleDateString }}}}";
                    }
                    else
                    {
                        column.Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() } }}}}";
                    }
                    result.Add(column);
                }
            }

            return(result);
        }
        ////Get the column value based on the column name.
        protected object GetColumnValue(string columnName)
        {
            SearchResultColumn column = new SearchResultColumn();
            column.ColumnName = string.Empty;
            column.Value = string.Empty;

            if (this._row != null && this._row.Columns != null && this._row.Columns.Count > 0)
            {
                foreach (SearchResultColumn col in this._row.Columns)
                {
                    if (col.ColumnName.ToLower() == columnName.ToLower())
                    {
                        column = col;
                        break;
                    }
                }
            }

            return column.Value;
        }
Exemple #3
0
        internal List <SearchResultColumn> GetSearchResultsFields(Entity currentEntity)
        {
            var result = new List <SearchResultColumn>();

            foreach (var field in Fields.Where(f => f.ShowInSearchResults).OrderBy(f => f.FieldOrder))
            {
                if (RelationshipsAsChild.Any(r => r.RelationshipFields.Any(f => f.ChildFieldId == field.FieldId)))
                {
                    var rel = RelationshipsAsChild.Single(r => r.RelationshipFields.Any(f => f.ChildFieldId == field.FieldId));
                    if (rel.ParentEntity == currentEntity)
                    {
                        continue;
                    }

                    var value = string.Empty;
                    if (rel.ParentEntity.PrimaryField.FieldType == FieldType.Enum)
                    {
                        if (field.IsNullable)
                        {
                            throw new Exception("unhandled: what now!?");
                        }
                        value = $"{{{{ {rel.ParentEntity.PrimaryField.Lookup.PluralName.ToCamelCase()}[{ field.Entity.Name.ToCamelCase()}.{ rel.ParentName.ToCamelCase() }.{ rel.ParentField.Name.ToCamelCase() }].label }}}}";
                    }
                    else
                    {
                        value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ rel.ParentName.ToCamelCase() + (field.IsNullable ? "?" : "") }.{ rel.ParentField.Name.ToCamelCase() } }}}}";
                    }

                    result.Add(new SearchResultColumn
                    {
                        Header            = rel.ParentEntity.FriendlyName,
                        Value             = value,
                        IsOnAnotherEntity = true
                    });
                }
                else
                {
                    var column = new SearchResultColumn {
                        Header = field.Label, IsOnAnotherEntity = false
                    };
                    // these should use local formats?
                    if (field.FieldType == FieldType.Enum)
                    {
                        column.Value = $"{{{{ {field.Lookup.PluralName.ToCamelCase()}[{field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() }].label }}}}";
                    }
                    else if (field.FieldType == FieldType.Bit)
                    {
                        column.Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() } | booleanPipe }}}}";
                    }
                    else if (field.FieldType == FieldType.Money)
                    {
                        column.Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() } | currency }}}}";
                    }
                    else if (field.FieldType == FieldType.Date)
                    {
                        column.Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() } | momentPipe: 'DD MMM YYYY' }}}}";
                    }
                    else if (field.FieldType == FieldType.DateTime || field.FieldType == FieldType.SmallDateTime)
                    {
                        column.Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() } | momentPipe: 'DD MMM YYYY HH:mm' }}}}";
                    }
                    else
                    {
                        column.Value = $"{{{{ { field.Entity.Name.ToCamelCase()}.{ field.Name.ToCamelCase() } }}}}";
                    }
                    result.Add(column);
                }
            }

            return(result);
        }