update
This commit is contained in:
parent
80f6a35d02
commit
071dcb33f2
4 changed files with 59 additions and 185 deletions
|
@ -31,16 +31,8 @@ using System.Security.Cryptography;
|
|||
|
||||
namespace FCS.Lib.Utility
|
||||
{
|
||||
/// <summary>
|
||||
/// Class Generators
|
||||
/// <remarks>generates varioous kinds of random strings. </remarks>
|
||||
/// </summary>
|
||||
public static class Generators
|
||||
{
|
||||
/// <summary>
|
||||
/// Shorts the URL generator.
|
||||
/// </summary>
|
||||
/// <returns>System.String.</returns>
|
||||
public static string ShortUrlGenerator()
|
||||
{
|
||||
return ShortUrlGenerator(6);
|
||||
|
@ -54,9 +46,9 @@ namespace FCS.Lib.Utility
|
|||
/// <remarks>derived from https://sourceforge.net/projects/shorturl-dotnet/</remarks>
|
||||
public static string ShortUrlGenerator(int length)
|
||||
{
|
||||
const string charsLower = "cdfghjkmnpqrstvwxyz";
|
||||
const string charsUpper = "BCDFGHJKLMNPQRSTVWXYZ-_";
|
||||
const string charsNumeric = "23456789";
|
||||
const string charsLower = "abcdefghijkmnopqrstuvwxyz";
|
||||
const string charsUpper = "ABCDFEGHJKLMNPQRSTUVWXYZ-";
|
||||
const string charsNumeric = "1234567890";
|
||||
|
||||
// Create a local array containing supported short-url characters
|
||||
// grouped by types.
|
||||
|
@ -135,10 +127,7 @@ namespace FCS.Lib.Utility
|
|||
// this group.
|
||||
if (lastCharIdx != nextCharIdx)
|
||||
{
|
||||
var temp = charGroups[nextGroupIdx][lastCharIdx];
|
||||
charGroups[nextGroupIdx][lastCharIdx] =
|
||||
charGroups[nextGroupIdx][nextCharIdx];
|
||||
charGroups[nextGroupIdx][nextCharIdx] = temp;
|
||||
(charGroups[nextGroupIdx][lastCharIdx], charGroups[nextGroupIdx][nextCharIdx]) = (charGroups[nextGroupIdx][nextCharIdx], charGroups[nextGroupIdx][lastCharIdx]);
|
||||
}
|
||||
|
||||
// Decrement the number of unprocessed characters in
|
||||
|
@ -158,10 +147,7 @@ namespace FCS.Lib.Utility
|
|||
// so that we don't pick it until we process all groups.
|
||||
if (lastLeftGroupsOrderIdx != nextLeftGroupsOrderIdx)
|
||||
{
|
||||
var temp = leftGroupsOrder[lastLeftGroupsOrderIdx];
|
||||
leftGroupsOrder[lastLeftGroupsOrderIdx] =
|
||||
leftGroupsOrder[nextLeftGroupsOrderIdx];
|
||||
leftGroupsOrder[nextLeftGroupsOrderIdx] = temp;
|
||||
(leftGroupsOrder[lastLeftGroupsOrderIdx], leftGroupsOrder[nextLeftGroupsOrderIdx]) = (leftGroupsOrder[nextLeftGroupsOrderIdx], leftGroupsOrder[lastLeftGroupsOrderIdx]);
|
||||
}
|
||||
|
||||
// Decrement the number of unprocessed groups.
|
||||
|
@ -220,8 +206,8 @@ namespace FCS.Lib.Utility
|
|||
/// <returns>System.String.</returns>
|
||||
public static string GenerateRandomText(int length)
|
||||
{
|
||||
const string consonants = "bdfghjklmnprstvyBDFGHJKLMNPRSTVY";
|
||||
const string vowels = "aeiouAEIOU";
|
||||
const string consonants = "bcdfghjklmnprstvxzBDFGHJKLMNPRSTVXZ";
|
||||
const string vowels = "aeiouyAEIOUY";
|
||||
|
||||
var rndString = "";
|
||||
var randomNum = RandomSeed();
|
||||
|
|
179
Mogrifiers.cs
179
Mogrifiers.cs
|
@ -35,15 +35,23 @@ using System.Text.RegularExpressions;
|
|||
|
||||
namespace FCS.Lib.Utility
|
||||
{
|
||||
/// <summary>
|
||||
/// Class Converters
|
||||
/// </summary>
|
||||
public static class Mogrifiers
|
||||
{
|
||||
public static Dictionary<string,long> DateToTimestampRange(DateTime dateTime)
|
||||
{
|
||||
var dt1 = new DateTime(dateTime.Year,dateTime.Month,dateTime.Day,0,0,0);
|
||||
var dt2 = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, 23, 59, 59);
|
||||
return new Dictionary<string, long>{
|
||||
{ "lower", DateTimeToTimeStamp(dt1) },
|
||||
{ "upper", DateTimeToTimeStamp(dt2) }
|
||||
};
|
||||
}
|
||||
|
||||
public static long IsoDateToTimestamp(string isoDateString)
|
||||
{
|
||||
var result = DateTime.TryParse(isoDateString, out var test);
|
||||
if (!result) return 0;
|
||||
if (!result)
|
||||
return 0;
|
||||
return $"{test:yyyy-MM-dd}" == isoDateString ? DateTimeToTimeStamp(test) : 0;
|
||||
}
|
||||
|
||||
|
@ -52,53 +60,26 @@ namespace FCS.Lib.Utility
|
|||
return $"{TimeStampToDateTime(timestamp):yyyy-MM-dd}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reverse boolean
|
||||
/// </summary>
|
||||
/// <param name="value">if set to <c>true</c> [value].</param>
|
||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
|
||||
public static bool BoolReverse(bool value)
|
||||
{
|
||||
return !value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Boolean to integer
|
||||
/// </summary>
|
||||
/// <param name="value">if set to <c>true</c> [value].</param>
|
||||
/// <returns>System.Int32.</returns>
|
||||
public static int BoolToInt(bool value)
|
||||
{
|
||||
return value ? 1 : 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Boolean to string
|
||||
/// </summary>
|
||||
/// <param name="value">if set to <c>true</c> [value].</param>
|
||||
/// <returns>System.String.</returns>
|
||||
public static string BoolToString(bool value)
|
||||
{
|
||||
return value ? "true" : "false";
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Enum to integer
|
||||
/// </summary>
|
||||
/// <param name="enumeration">The enumeration.</param>
|
||||
/// <returns>System.Int32.</returns>
|
||||
public static int EnumToInt(object enumeration)
|
||||
{
|
||||
return Convert.ToInt32(enumeration, CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Enum to string.
|
||||
/// </summary>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns>System.String.</returns>
|
||||
public static string EnumToString(Enum value)
|
||||
{
|
||||
return value == null ? string.Empty : value.ToString();
|
||||
|
@ -109,32 +90,16 @@ namespace FCS.Lib.Utility
|
|||
return (T[])Enum.GetValues(typeof(T));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Integer to boolean.
|
||||
/// </summary>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
|
||||
public static bool IntToBool(int value)
|
||||
{
|
||||
return value > 0 || value < 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Integer to enum.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns>T.</returns>
|
||||
public static T IntToEnum<T>(int value)
|
||||
{
|
||||
return (T) Enum.ToObject(typeof(T), value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Integer to letter.
|
||||
/// </summary>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns>System.String.</returns>
|
||||
public static string IntToLetter(int value)
|
||||
{
|
||||
var empty = string.Empty;
|
||||
|
@ -156,25 +121,12 @@ namespace FCS.Lib.Utility
|
|||
|
||||
return empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lists to string using semicolon(;)
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="list">The list.</param>
|
||||
/// <returns>System.String.</returns>
|
||||
|
||||
public static string ListToString<T>(List<T> list)
|
||||
{
|
||||
return ListToString(list, ";");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lists to string userdefined delimiter
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="list">The list.</param>
|
||||
/// <param name="delimiter">The delimiter.</param>
|
||||
/// <returns>System.String.</returns>
|
||||
|
||||
public static string ListToString<T>(List<T> list, string delimiter)
|
||||
{
|
||||
var empty = string.Empty;
|
||||
|
@ -186,23 +138,13 @@ namespace FCS.Lib.Utility
|
|||
|
||||
return empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Pascals to lower.
|
||||
/// </summary>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns>System.String.</returns>
|
||||
|
||||
public static string PascalToLower(string value)
|
||||
{
|
||||
var result = string.Join("-", Regex.Split(value, @"(?<!^)(?=[A-Z])").ToArray());
|
||||
return result.ToLower(CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// String to bool.
|
||||
/// </summary>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
|
||||
|
||||
public static bool StringToBool(string value)
|
||||
{
|
||||
if (string.IsNullOrEmpty(value))
|
||||
|
@ -224,12 +166,6 @@ namespace FCS.Lib.Utility
|
|||
|
||||
return flag;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// String to decimal.
|
||||
/// </summary>
|
||||
/// <param name="inString">The in string.</param>
|
||||
/// <returns>System.Nullable<System.Decimal>.</returns>
|
||||
public static decimal? StringToDecimal(string inString)
|
||||
{
|
||||
if (string.IsNullOrEmpty(inString)) return 0;
|
||||
|
@ -239,38 +175,14 @@ namespace FCS.Lib.Utility
|
|||
? (decimal?) null
|
||||
: decimal.Divide(num, new decimal((long) 100));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// String to enum.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns>T.</returns>
|
||||
public static T StringToEnum<T>(string value)
|
||||
{
|
||||
return (T) Enum.Parse(typeof(T), value, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// String to list using semicolon(;).
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns>List<T>.</returns>
|
||||
public static List<T> StringToList<T>(string value)
|
||||
{
|
||||
return StringToList<T>(value, ";");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// String to list userdefined delimiter.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <param name="delimiter">The delimiter.</param>
|
||||
/// <returns>List<T>.</returns>
|
||||
/// <exception cref="ArgumentNullException">value</exception>
|
||||
/// <exception cref="ArgumentNullException">delimiter</exception>
|
||||
public static List<T> StringToList<T>(string value, string delimiter)
|
||||
{
|
||||
if (string.IsNullOrEmpty(value)) throw new ArgumentNullException(nameof(value));
|
||||
|
@ -300,42 +212,18 @@ namespace FCS.Lib.Utility
|
|||
|
||||
return ts;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// String to stream using system default encoding.
|
||||
/// </summary>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <returns>Stream.</returns>
|
||||
public static Stream StringToStream(string value)
|
||||
{
|
||||
return StringToStream(value, Encoding.Default);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Strings to stream with userdefined encoding.
|
||||
/// </summary>
|
||||
/// <param name="value">The value.</param>
|
||||
/// <param name="encoding">The encoding.</param>
|
||||
/// <returns>Stream.</returns>
|
||||
public static Stream StringToStream(string value, Encoding encoding)
|
||||
{
|
||||
return encoding == null ? null : new MemoryStream(encoding.GetBytes(value ?? ""));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns timestamp for current date-time object.
|
||||
/// </summary>
|
||||
/// <returns>System.Int32.</returns>
|
||||
public static long CurrentDateTimeToTimeStamp()
|
||||
{
|
||||
return Convert.ToUInt32(DateTimeToTimeStamp(DateTime.Now));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Currents the date time to alpha.
|
||||
/// </summary>
|
||||
/// <returns>System.String.</returns>
|
||||
public static string CurrentDateTimeToAlpha()
|
||||
{
|
||||
var dt = DateTime.UtcNow.ToString("yy MM dd HH MM ss");
|
||||
|
@ -349,12 +237,7 @@ namespace FCS.Lib.Utility
|
|||
sb.Append((char) int.Parse(dts[5]) + 97);
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Convert a DateTime object to timestamp
|
||||
/// </summary>
|
||||
/// <param name="dateTime">The date time.</param>
|
||||
/// <returns>System.Int64.</returns>
|
||||
|
||||
public static long DateTimeToTimeStamp(DateTime dateTime)
|
||||
{
|
||||
var bigDate = new DateTime(2038, 1, 19, 0, 0, 0, 0);
|
||||
|
@ -366,43 +249,23 @@ namespace FCS.Lib.Utility
|
|||
|
||||
return Convert.ToInt64((dateTime - nixDate).TotalSeconds);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Convert timestamp to DataTime format
|
||||
/// </summary>
|
||||
/// <param name="timeStamp">The time stamp.</param>
|
||||
/// <returns>DateTime.</returns>
|
||||
|
||||
public static DateTime TimeStampToDateTime(long timeStamp)
|
||||
{
|
||||
var nixDate = new DateTime(1970, 1, 1, 0, 0, 0, 0);
|
||||
return nixDate.AddSeconds(timeStamp);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Convert timespan to seconds
|
||||
/// </summary>
|
||||
/// <param name="timespan">The timespan.</param>
|
||||
/// <returns>System.Int32.</returns>
|
||||
|
||||
public static long TimeSpanToSeconds(TimeSpan timespan)
|
||||
{
|
||||
return Convert.ToUInt32(timespan.Ticks / 10000000L);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts seconds to timespan
|
||||
/// </summary>
|
||||
/// <param name="seconds">The seconds.</param>
|
||||
/// <returns>TimeSpan.</returns>
|
||||
|
||||
public static TimeSpan SecondsToTimeSpan(long seconds)
|
||||
{
|
||||
return TimeSpan.FromTicks(10000000L * seconds);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts timespan to minutes
|
||||
/// </summary>
|
||||
/// <param name="timespan">The timespan.</param>
|
||||
/// <returns>System.Int32.</returns>
|
||||
|
||||
public static long TimespanToMinutes(TimeSpan timespan)
|
||||
{
|
||||
return Convert.ToUInt32(timespan.Ticks / 10000000L) / 60;
|
||||
|
|
|
@ -4,22 +4,22 @@
|
|||
// Created : 2020-09-09
|
||||
//
|
||||
// Last Modified By : FH
|
||||
// Last Modified On : 02-24-2022
|
||||
// Last Modified On : 03-14-2022
|
||||
// ***********************************************************************
|
||||
// <copyright file="StringOptions.cs" company="FCS">
|
||||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the Affero GNU General Public License as
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// Affero GNU General Public License for more details.
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the Affero GNU General Public License
|
||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see [https://www.gnu.org/licenses]
|
||||
// </copyright>
|
||||
// <summary></summary>
|
||||
// ***********************************************************************
|
||||
|
|
|
@ -1,4 +1,29 @@
|
|||
using System.Linq;
|
||||
// ***********************************************************************
|
||||
// Assembly : FCS.Lib.Utility
|
||||
// Author : FH
|
||||
// Created : 03-30-2022
|
||||
//
|
||||
// Last Modified By : FH
|
||||
// Last Modified On : 04-19-2022
|
||||
// ***********************************************************************
|
||||
// <copyright file="VatFormatValidator.cs" company="FCS">
|
||||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see [https://www.gnu.org/licenses]
|
||||
// </copyright>
|
||||
// <summary></summary>
|
||||
// ***********************************************************************
|
||||
using System.Linq;
|
||||
|
||||
namespace FCS.Lib.Utility
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue