summaryrefslogtreecommitdiff
path: root/DSALib/Auxiliary/IDataObjectEnumerableExtension.cs
diff options
context:
space:
mode:
Diffstat (limited to 'DSALib/Auxiliary/IDataObjectEnumerableExtension.cs')
-rw-r--r--DSALib/Auxiliary/IDataObjectEnumerableExtension.cs25
1 files changed, 25 insertions, 0 deletions
diff --git a/DSALib/Auxiliary/IDataObjectEnumerableExtension.cs b/DSALib/Auxiliary/IDataObjectEnumerableExtension.cs
new file mode 100644
index 0000000..b8a6067
--- /dev/null
+++ b/DSALib/Auxiliary/IDataObjectEnumerableExtension.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using DSALib.Auxiliary;
+using DSALib.Models.Database;
+
+namespace DSACore.Auxiliary
+{
+ public static class DataObjectEnumerableExtension
+ {
+ public static IDataObject Match(this IEnumerable<IDataObject> dataObjects, string name)
+ {
+ return (dataObjects as IOrderedEnumerable<IDataObject> ?? throw new InvalidOperationException()).OrderBy(x => SpellCorrect.Compare(name,x.Name)).Last();
+ }
+
+ public static bool TryMatch(this IEnumerable<IDataObject> dataObjects,out IDataObject data, string name)
+ {
+ data = (dataObjects as IOrderedEnumerable<IDataObject> ?? throw new InvalidOperationException()).OrderBy(x => SpellCorrect.Compare(name,x.Name)).Last();
+
+ return SpellCorrect.IsMatch(name, data.Name);
+ }
+ }
+}