diff --git a/ExtensionsEx.cs b/ExtensionsEx.cs index 4dacd59..ca8f59c 100644 --- a/ExtensionsEx.cs +++ b/ExtensionsEx.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 27-08-2016 // @@ -7,24 +7,21 @@ // Last Modified On : 12-31-2021 // *********************************************************************** // -// Copyright © FCS 2015-2022 -// -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 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 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. // -// 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 . -// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see +// +// // *********************************************************************** using System; diff --git a/FCS.Lib.csproj b/FCS.Lib.csproj index f1b7f80..2d5fc99 100644 --- a/FCS.Lib.csproj +++ b/FCS.Lib.csproj @@ -67,7 +67,7 @@ - + diff --git a/Generators.cs b/Generators.cs index bb31008..e069837 100644 --- a/Generators.cs +++ b/Generators.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 2020-07-01 // @@ -7,26 +7,21 @@ // Last Modified On : 01-09-2022 // *********************************************************************** // -// Copyright © FCS 2015-2022 +// 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 // -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 FCS -// -// Partly derived from https://sourceforge.net/projects/shorturl-dotnet/ -// -// 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 . - +// // *********************************************************************** using System; @@ -56,7 +51,7 @@ namespace FCS.Lib /// /// The lengt h. /// System.String. - /// + /// derived from https://sourceforge.net/projects/shorturl-dotnet/ public static string ShortUrlGenerator(int length) { const string charsLower = "cdfghjkmnpqrstvwxyz"; @@ -129,7 +124,8 @@ namespace FCS.Lib // If we processed the last character in this group, start over. if (lastCharIdx == 0) { - charsLeftInGroup[nextGroupIdx] = charGroups[nextGroupIdx].Length; + charsLeftInGroup[nextGroupIdx] = + charGroups[nextGroupIdx].Length; } // There are more unprocessed characters left. else @@ -139,7 +135,10 @@ namespace FCS.Lib // this group. if (lastCharIdx != nextCharIdx) { - (charGroups[nextGroupIdx][lastCharIdx], charGroups[nextGroupIdx][nextCharIdx]) = (charGroups[nextGroupIdx][nextCharIdx], charGroups[nextGroupIdx][lastCharIdx]); + var temp = charGroups[nextGroupIdx][lastCharIdx]; + charGroups[nextGroupIdx][lastCharIdx] = + charGroups[nextGroupIdx][nextCharIdx]; + charGroups[nextGroupIdx][nextCharIdx] = temp; } // Decrement the number of unprocessed characters in @@ -159,7 +158,10 @@ namespace FCS.Lib // so that we don't pick it until we process all groups. if (lastLeftGroupsOrderIdx != nextLeftGroupsOrderIdx) { - (leftGroupsOrder[lastLeftGroupsOrderIdx], leftGroupsOrder[nextLeftGroupsOrderIdx]) = (leftGroupsOrder[nextLeftGroupsOrderIdx], leftGroupsOrder[lastLeftGroupsOrderIdx]); + var temp = leftGroupsOrder[lastLeftGroupsOrderIdx]; + leftGroupsOrder[lastLeftGroupsOrderIdx] = + leftGroupsOrder[nextLeftGroupsOrderIdx]; + leftGroupsOrder[nextLeftGroupsOrderIdx] = temp; } // Decrement the number of unprocessed groups. @@ -296,7 +298,7 @@ namespace FCS.Lib /// Randoms the seed. /// /// Random. - /// derived from https://sourceforge.net/projects/shorturl-dotnet/ + /// derived from https://sourceforge.net/projects/shorturl-dotnet/ public static Random RandomSeed() { // As the default randomizer is based on the current time diff --git a/IAsyncReadonlyRepo.cs b/IAsyncReadonlyRepo.cs index 08ef9d1..027fef3 100644 --- a/IAsyncReadonlyRepo.cs +++ b/IAsyncReadonlyRepo.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 03-10-2015 // @@ -7,24 +7,21 @@ // Last Modified On : 12-31-2021 // *********************************************************************** // -// Copyright © FCS 2015-2022 +// 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 // -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 FCS -// -// 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 . - +// // *********************************************************************** using System; diff --git a/IRepository.cs b/IRepository.cs index a07c890..0f402ef 100644 --- a/IRepository.cs +++ b/IRepository.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 05-13-2020 // @@ -7,24 +7,21 @@ // Last Modified On : 12-31-2021 // *********************************************************************** // -// Copyright © FCS 2015-2022 +// 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 // -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 FCS -// -// 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 . - +// // *********************************************************************** namespace FCS.Lib diff --git a/IRepositoryEx.cs b/IRepositoryEx.cs index dab5cf8..5dcf663 100644 --- a/IRepositoryEx.cs +++ b/IRepositoryEx.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 03-10-2015 // @@ -7,24 +7,21 @@ // Last Modified On : 12-31-2021 // *********************************************************************** // -// Copyright © FCS 2015-2022 +// 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 // -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 FCS -// -// 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 . - +// // *********************************************************************** using System; diff --git a/LICENSE.md b/LICENSE similarity index 100% rename from LICENSE.md rename to LICENSE diff --git a/Mogrifiers.cs b/Mogrifiers.cs index ddb5c38..75b0d79 100644 --- a/Mogrifiers.cs +++ b/Mogrifiers.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 27-08-2016 // @@ -7,24 +7,21 @@ // Last Modified On : 12-31-2021 // *********************************************************************** // -// Copyright © FCS 2015-2022 +// 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 // -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 FCS -// -// 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 . - +// // *********************************************************************** using System; diff --git a/QueryHelper.cs b/QueryHelper.cs index 5d8a1bb..1981207 100644 --- a/QueryHelper.cs +++ b/QueryHelper.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 01-01-2022 // @@ -7,24 +7,21 @@ // Last Modified On : 12-31-2021 // *********************************************************************** // -// Copyright © 2021 +// 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 // -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 FCS -// -// 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 . - +// // *********************************************************************** using System; diff --git a/Squid.cs b/Squid.cs index e990c1a..8ed6885 100644 --- a/Squid.cs +++ b/Squid.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 2020-07-01 // @@ -7,28 +7,21 @@ // Last Modified On : 01-09-2022 // *********************************************************************** // -// Copyright © FCS 2015-2022 +// 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 // -// -// Derived from https://www.madskristensen.net/blog/A-shorter-and-URL-friendly-GUID -// AGPL https://www.gnu.org/licenses/agpl-3.0.en.html -// Functional similar to https:github.com/csharpvitamins/CSharpVitamins.ShortGuid -// -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 FCS -// -// 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 . +// Derived from https:github.com/csharpvitamins/CSharpVitamins.ShortGuid // *********************************************************************** using System; @@ -37,14 +30,16 @@ using System.Diagnostics; namespace FCS.Lib { /// - /// A wrapper for unique identifiers (GUID). + /// A wrapper for handling URL-safe Base64 encoded globally unique identifiers (GUID). /// - /// Special characters are replaced (/, +) or removed (==). + /// Special characters are replaced (/, +) or removed (==). + /// Derived from https:github.com/csharpvitamins/CSharpVitamins.ShortGuid [DebuggerDisplay("{" + nameof(Value) + "}")] public readonly struct Squid : IEquatable { /// /// A read-only object of the Squid struct. + /// Value is guaranteed to be all zeroes. /// Equivalent to . /// public static readonly Squid Empty = new(Guid.Empty); @@ -115,7 +110,7 @@ namespace FCS.Lib } /// - /// Returns the hash code for the guid . + /// Returns the hash code for the underlying . /// /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. public override int GetHashCode() @@ -127,7 +122,7 @@ namespace FCS.Lib } /// - /// Initialises a new Squid using . + /// Initialises a new object of the Squid using . /// /// New Squid object public static Squid NewGuid() @@ -136,7 +131,9 @@ namespace FCS.Lib } /// - /// Encode string as a new Squid string. + /// Encode string as a new Squid encoded string. + /// The encoding is similar to Base64 with + /// non-URL safe characters replaced, and padding removed. /// /// A valid .Tostring(). /// A 22 character URL-safe Base64 string. @@ -148,6 +145,8 @@ namespace FCS.Lib /// /// Encode a object to Squid. + /// The encoding is similar to Base64 with + /// non-URL safe characters replaced, and padding removed. /// /// A valid object. /// A 22 character URL-safe Base64 string. @@ -225,7 +224,8 @@ namespace FCS.Lib } /// - /// Tries to parse the given string value and output the object. + /// Tries to parse the given string value and + /// outputs the object. /// /// The Squid encoded string or string representation of a Guid. /// A new object from the parsed string. @@ -251,7 +251,8 @@ namespace FCS.Lib } /// - /// Tries to parse the string value and outputs the underlying object. + /// Tries to parse the string value and + /// outputs the underlying object. /// /// The Squid encoded string or string representation of a Guid. /// A new object from the parsed string. @@ -270,6 +271,8 @@ namespace FCS.Lib return false; } + #region Operators + /// /// Determines if both Squid objects have the same /// underlying value. @@ -387,5 +390,6 @@ namespace FCS.Lib return oGuid == Guid.Empty ? Empty : new Squid(oGuid); } + #endregion } } \ No newline at end of file diff --git a/StringOptions.cs b/StringOptions.cs index b2e2503..b1eb922 100644 --- a/StringOptions.cs +++ b/StringOptions.cs @@ -1,5 +1,5 @@ // *********************************************************************** -// Assembly : FCS.Lib +// Assembly : Inno.Lib // Author : FH // Created : 2020-09-09 // @@ -7,26 +7,21 @@ // Last Modified On : 01-09-2022 // *********************************************************************** // -// Copyright © FCS 2015-2022 +// 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 // -// -// Part of FCS.Lib - a set of utilities for C# - pieced together from fragments -// Copyright (C) 2021 FCS -// -// 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 . - -// +// // *********************************************************************** namespace FCS.Lib