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); }
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); }