From b6e78e4950e56930352f9d5cb7d24231dc2118f7 Mon Sep 17 00:00:00 2001 From: Kevin MONDEJAR Date: Tue, 25 Mar 2025 14:01:21 +0100 Subject: [PATCH] Generic mappers (to use in extention methode) --- WF_EF_Api/Shared/Mapper.cs | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 WF_EF_Api/Shared/Mapper.cs diff --git a/WF_EF_Api/Shared/Mapper.cs b/WF_EF_Api/Shared/Mapper.cs new file mode 100644 index 0000000..890c8d3 --- /dev/null +++ b/WF_EF_Api/Shared/Mapper.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shared +{ + public class Mapper where T : class + where U : class + { + readonly HashSet> mapper = new HashSet>(); + + public bool AddMapping(T t, U u) + { + var mapping = new Tuple(t, u); + if (mapper.Contains(mapping)) return false; + mapper.Add(mapping); + return true; + } + + public T? GetT(U u) + { + var result = mapper.Where(tuple => ReferenceEquals(tuple.Item2, u)); + if (result.Count() != 1) + { + return null; + } + return result.First().Item1; + } + + public U? GetU(T t) + { + var result = mapper.Where(tuple => ReferenceEquals(tuple.Item1, t)); + if (result.Count() != 1) + { + return null; + } + return result.First().Item2; + } + + public void Reset() + { + mapper.Clear(); + } + } +}