.config
.vscode
BlurHash
BlurHash.Core
BlurHash.System.Drawing.Common
Compare
Copy-Distinct
Date-Group
Delete-By-Distinct
Delete-By-Relative
Distance
Drag-Drop-Explorer
Drag-Drop-Move
Drag-Drop-Search
Drag-Drop-Set-Property-Item
Duplicate-Search
Face
FaceParts
FaceRecognitionDotNet
Instance
Map
Metadata
Metadata-Query
Mirror-Length
Move-By-Id
Offset-Date-Time-Original
PhotoPrism
PrepareForOld
Property
Property-Compare
Rename
Resize
Set-Created-Date
Shared
.foam
.kanbn
.vscode
Models
Methods
Properties
Stateless
%ClassName%.cs .ai
Console.cs
Container.cs
DatabaseFile.cs
DirectoryFileSystem.cs
DistanceHolder.cs
Face.cs
FaceDistance.cs
FaceDistanceContainer.cs
FaceEncoding.cs
FaceFileSystem.cs
FacePoint.cs
FileHolder.cs
FilePair.cs
FileSystem.cs
Item.cs
Location.cs
LocationContainer.cs
Mapping.cs
MappingFromFilter.cs
MappingFromItem.cs
MappingFromLocation.cs
MappingFromPerson.cs
MappingFromPhotoPrism.cs
Marker.cs
MatchNginx.cs
MetadataFile.cs
MetadataFileCollection.cs
MetadataFileId.cs
OutputResolution.cs
PersonBirthday.cs
PersonContainer.cs
PersonDirectory.cs
Property.cs
RelativeLocation.cs
RelativePaths.cs
SaveContainer.cs
SaveShortcutsForOutputResolutions.cs
Sorting.cs
SortingContainer.cs
Storage.cs
XPath.cs
Phares
Sample-Data
View-by-Distance.Shared.csproj
Tests
TestsWithFaceRecognitionDotNet
ThumbHash
.editorconfig
.gitattributes
.gitignore
.prettierignore
.txt
View-by-Distance-MKLink-Console.sln
package-lock.json
package.json
68 lines
3.2 KiB
C#
68 lines
3.2 KiB
C#
using System.Collections.ObjectModel;
|
|
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace View_by_Distance.Shared.Models;
|
|
|
|
public class Mapping : Properties.IMapping
|
|
{
|
|
|
|
protected int? _By;
|
|
protected MappingFromPerson? _MappingFromPerson;
|
|
public string? _SegmentC;
|
|
protected SortingContainer? _SortingContainer;
|
|
public int? By => _By;
|
|
public MappingFromItem MappingFromItem { init; get; }
|
|
public MappingFromFilter MappingFromFilter { init; get; }
|
|
public MappingFromLocation? MappingFromLocation { init; get; }
|
|
public List<MappingFromPhotoPrism>? MappingFromPhotoPrismCollection { init; get; }
|
|
public MappingFromPerson? MappingFromPerson => _MappingFromPerson;
|
|
public string? SegmentC => _SegmentC;
|
|
public SortingContainer? SortingContainer => _SortingContainer;
|
|
|
|
[JsonConstructor]
|
|
public Mapping(int? by, MappingFromItem mappingFromItem, MappingFromFilter mappingFromFilter, MappingFromLocation? mappingFromLocation, List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection, MappingFromPerson? mappingFromPerson, string? segmentC, SortingContainer? sortingContainer)
|
|
{
|
|
_By = by;
|
|
_SegmentC = segmentC;
|
|
MappingFromItem = mappingFromItem;
|
|
MappingFromFilter = mappingFromFilter;
|
|
MappingFromLocation = mappingFromLocation;
|
|
MappingFromPhotoPrismCollection = mappingFromPhotoPrismCollection;
|
|
_MappingFromPerson = mappingFromPerson;
|
|
_SortingContainer = sortingContainer;
|
|
}
|
|
|
|
public Mapping(MappingFromItem mappingFromItem, MappingFromFilter mappingFromFilter, MappingFromLocation? mappingFromLocation, List<MappingFromPhotoPrism>? mappingFromPhotoPrismCollection) :
|
|
this(null, mappingFromItem, mappingFromFilter, mappingFromLocation, mappingFromPhotoPrismCollection, null, null, null)
|
|
{ }
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
}
|
|
|
|
public void UpdateMappingFromUnknownPerson(bool saveIndividually, SortingContainer sortingContainer)
|
|
{
|
|
_By = Stateless.IMapLogic.Sorting;
|
|
_SortingContainer = sortingContainer;
|
|
_SegmentC = !saveIndividually ? null : sortingContainer.Sorting.DistancePermyriad.ToString();
|
|
}
|
|
|
|
public void UpdateMappingFromPerson(ReadOnlyCollection<string> locationContainersFiles, int? approximateYears, string displayDirectoryName, PersonBirthday personBirthday, string segmentB)
|
|
{
|
|
_SortingContainer = null;
|
|
_By = Stateless.IMapLogic.Mapping;
|
|
_MappingFromPerson = new(approximateYears, displayDirectoryName, locationContainersFiles, personBirthday, segmentB);
|
|
}
|
|
|
|
public void UpdateMappingFromPerson(int? approximateYears, string displayDirectoryName, PersonBirthday personBirthday, string segmentB, string segmentC, SortingContainer sortingContainer, ReadOnlyCollection<string> locationContainersFiles)
|
|
{
|
|
_SegmentC = segmentC;
|
|
_By = Stateless.IMapLogic.Sorting;
|
|
_SortingContainer = sortingContainer;
|
|
_MappingFromPerson = new(approximateYears, displayDirectoryName, locationContainersFiles, personBirthday, segmentB);
|
|
}
|
|
|
|
} |