Drag Drop Form
This commit is contained in:
78
Drag-Drop/Program.cs
Normal file
78
Drag-Drop/Program.cs
Normal file
@ -0,0 +1,78 @@
|
||||
using View_by_Distance.Shared.Models;
|
||||
using View_by_Distance.Shared.Models.Stateless.Methods;
|
||||
|
||||
namespace View_by_Distance.Drag_Drop;
|
||||
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
ApplicationConfiguration.Initialize();
|
||||
Application.Run(new Form());
|
||||
}
|
||||
|
||||
private static Item[] GetFilterItems(Models.Configuration configuration, Container container)
|
||||
{
|
||||
List<Item> results = new();
|
||||
foreach (Item item in container.Items)
|
||||
{
|
||||
if (item.ImageFileHolder is not null
|
||||
&& (item.Abandoned is null || !item.Abandoned.Value)
|
||||
&& item.ValidImageFormatExtension
|
||||
&& !configuration.IgnoreExtensions.Contains(item.ImageFileHolder.ExtensionLowered))
|
||||
results.Add(item);
|
||||
}
|
||||
return results.ToArray();
|
||||
}
|
||||
|
||||
private static bool IsIgnoreRelativePath(Models.Configuration configuration, string directory)
|
||||
{
|
||||
bool result = false;
|
||||
string? checkDirectory = Path.GetFullPath(directory);
|
||||
for (int i = 0; i < int.MaxValue; i++)
|
||||
{
|
||||
if (configuration.IgnoreRelativePaths.Contains(Path.GetFileName(checkDirectory)))
|
||||
{
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
checkDirectory = Path.GetDirectoryName(checkDirectory);
|
||||
if (string.IsNullOrEmpty(checkDirectory) || checkDirectory == configuration.PropertyConfiguration.RootDirectory)
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<MappingFromItem> GetCollection(Models.Configuration configuration, Container[] containers)
|
||||
{
|
||||
List<MappingFromItem> results = new();
|
||||
bool? isWrongYear;
|
||||
Item[] filteredItems;
|
||||
DateTime minimumDateTime;
|
||||
MappingFromItem mappingFromItem;
|
||||
foreach (Container container in containers)
|
||||
{
|
||||
if (!container.Items.Any())
|
||||
continue;
|
||||
if (configuration.IgnoreRelativePaths.Any(l => container.SourceDirectory.Contains(l)) && IsIgnoreRelativePath(configuration, container.SourceDirectory))
|
||||
continue;
|
||||
filteredItems = GetFilterItems(configuration, container);
|
||||
if (!filteredItems.Any())
|
||||
continue;
|
||||
foreach (Item item in filteredItems)
|
||||
{
|
||||
if (item.Property?.Id is null || item.ImageFileHolder is null)
|
||||
continue;
|
||||
minimumDateTime = IProperty.GetMinimumDateTime(item.Property);
|
||||
(isWrongYear, _) = item.Property.IsWrongYear(item.ImageFileHolder.FullName, minimumDateTime);
|
||||
mappingFromItem = new(item.Property.Id.Value, item.ImageFileHolder, isWrongYear, minimumDateTime, item.RelativePath, item.ImageFileHolder);
|
||||
results.Add(mappingFromItem);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user