Added basic search implementation with display components
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using NpgsqlTypes;
|
||||
using Persic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
@@ -11,8 +13,8 @@ public class ArtifactGrouping
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
|
||||
public string? ArtifactGroupingIdentifier
|
||||
{
|
||||
public string? ArtifactGroupingIdentifier
|
||||
{
|
||||
get
|
||||
{
|
||||
return ModelHelpers.MakeIdentifier(IdentifierFields.Values, Category.FieldSeparator, null);
|
||||
@@ -36,7 +38,8 @@ public class ArtifactGrouping
|
||||
public required ArchiveCategory Category { get; set; }
|
||||
|
||||
private IdentifierFields _identifierFields;
|
||||
public required IdentifierFields IdentifierFields {
|
||||
public required IdentifierFields IdentifierFields
|
||||
{
|
||||
get => _identifierFields;
|
||||
set
|
||||
{
|
||||
@@ -45,7 +48,7 @@ public class ArtifactGrouping
|
||||
throw new ArgumentException(nameof(IdentifierFields), $"The number of field values must be equal to the field count of the {nameof(ArchiveCategory)}");
|
||||
}
|
||||
|
||||
_identifierFields = value;
|
||||
_identifierFields = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +98,7 @@ public class ArtifactGrouping
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// Only yield a tag if we have not yielded it yet
|
||||
foreach (ArtifactEntryTag tag in tags)
|
||||
{
|
||||
@@ -110,4 +113,38 @@ public class ArtifactGrouping
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Enables searching using postgres full text search
|
||||
/// </summary>
|
||||
///
|
||||
public string AllSearchString { get; set; } = "";
|
||||
public NpgsqlTsVector? AllSearchVector { get; set; }
|
||||
|
||||
public string TagsSearchString { get; set; } = "";
|
||||
|
||||
public NpgsqlTsVector? TagsSearchVector { get; set; }
|
||||
|
||||
public string DefectsSearchString { get; set; } = "";
|
||||
|
||||
public NpgsqlTsVector? DefectsSearchVector { get; set; }
|
||||
|
||||
public string ListedNamesSearchString { get; set; } = "";
|
||||
|
||||
public NpgsqlTsVector? ListedNamesSearchVector { get; set; }
|
||||
|
||||
public string TitleSearchString { get; set; } = "";
|
||||
|
||||
public NpgsqlTsVector? TitleSearchVector { get; set; }
|
||||
|
||||
public string DescriptionSearchString { get; set; } = "";
|
||||
|
||||
public NpgsqlTsVector? DescriptionSearchVector { get; set; }
|
||||
|
||||
public string FilenamesSearchString { get; set; } = "";
|
||||
public NpgsqlTsVector FilenamesSearchVector { get; set; }
|
||||
|
||||
public string FileContentSearchString { get; set; } = "";
|
||||
|
||||
public NpgsqlTsVector FileContentSearchVector { get; set; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user