From 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:38:18 -0300 Subject: chore: location --- .../Gestor.Common.Helpers/Functions.cs | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 Codemerx/Gestor.Common/Gestor.Common.Helpers/Functions.cs (limited to 'Codemerx/Gestor.Common/Gestor.Common.Helpers/Functions.cs') diff --git a/Codemerx/Gestor.Common/Gestor.Common.Helpers/Functions.cs b/Codemerx/Gestor.Common/Gestor.Common.Helpers/Functions.cs new file mode 100644 index 0000000..25ffadf --- /dev/null +++ b/Codemerx/Gestor.Common/Gestor.Common.Helpers/Functions.cs @@ -0,0 +1,110 @@ +using Gestor.Common.Validation; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Runtime.CompilerServices; + +namespace Gestor.Common.Helpers +{ + public class Functions + { + public static System.Diagnostics.Stopwatch Stopwatch; + + public static DateTime? StartTime; + + public Functions() + { + } + + public static int Compare(string original, string modified) + { + if (original == null) + { + original = ""; + } + if (modified == null) + { + modified = ""; + } + string str = original.ToLongNullable().ToString(); + if (!string.IsNullOrWhiteSpace(str)) + { + original = str; + } + str = modified.ToLongNullable().ToString(); + if (!string.IsNullOrWhiteSpace(str)) + { + modified = str; + } + int length = original.Length; + int num = modified.Length; + int[,] numArray = new int[length + 1, num + 1]; + for (int i = 0; i <= length; i++) + { + numArray[i, 0] = i; + } + for (int j = 0; j <= num; j++) + { + numArray[0, j] = j; + } + for (int k = 1; k <= length; k++) + { + for (int l = 1; l <= num; l++) + { + int num1 = modified[l - 1] != original[k - 1]; + numArray[k, l] = (new int[] { numArray[k - 1, l] + 1, numArray[k, l - 1] + 1, numArray[k - 1, l - 1] + num1 }).Min(); + if (k > 1 && l > 1 && original[k - 1] == modified[l - 2] && original[k - 2] == modified[l - 1]) + { + numArray[k, l] = Math.Min(numArray[k, l], numArray[k - 2, l - 2] + num1); + } + } + } + return numArray[length, num]; + } + + public static DateTime GetNetworkTime() + { + DateTime value; + try + { + if (!Functions.StartTime.HasValue) + { + byte[] numArray = new byte[48]; + numArray[0] = 27; + IPEndPoint pEndPoint = new IPEndPoint(((IEnumerable)Dns.GetHostEntry("time.google.com").AddressList).First((IPAddress a) => a.AddressFamily == AddressFamily.InterNetwork), 123); + using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) + { + socket.Connect(pEndPoint); + socket.ReceiveTimeout = 3000; + socket.Send(numArray); + socket.Receive(numArray); + socket.Close(); + } + ulong num = (ulong)numArray[40] << 24 | (ulong)numArray[41] << 16 | (ulong)numArray[42] << 8 | (ulong)numArray[43]; + ulong num1 = (ulong)numArray[44] << 24 | (ulong)numArray[45] << 16 | (ulong)numArray[46] << 8 | (ulong)numArray[47]; + ulong num2 = num * (long)1000 + num1 * (long)1000 / 4294967296L; + DateTime dateTime = new DateTime(1900, 1, 1); + dateTime = dateTime.AddMilliseconds((double)num2); + Functions.StartTime = new DateTime?(dateTime.ToLocalTime()); + Functions.Stopwatch = System.Diagnostics.Stopwatch.StartNew(); + value = Functions.StartTime.Value; + } + else + { + value = Functions.StartTime.Value; + value = value.AddMilliseconds((double)Functions.Stopwatch.ElapsedMilliseconds); + } + } + catch (Exception exception) + { + Functions.StartTime = new DateTime?(DateTime.Now); + Functions.Stopwatch = System.Diagnostics.Stopwatch.StartNew(); + value = Functions.StartTime.Value; + } + return value; + } + } +} \ No newline at end of file -- cgit v1.2.3