There is a newer version of this package available.
See the version list below for details.
dotnet add package Loby --version 1.0.0
NuGet\Install-Package Loby -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Loby" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Loby --version 1.0.0
#r "nuget: Loby, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Loby as a Cake Addin
#addin nuget:?package=Loby&version=1.0.0

// Install Loby as a Cake Tool
#tool nuget:?package=Loby&version=1.0.0

loby

Lobby is an open-source, cross-platform and lightweight library (smaller than 50 kb) for .Net that includes a set of tools and extensions for easy and fast development.

Installation package (.Net Core ≥ 3.1)

PM> Install-Package Loby

Features

Tools

  • Converting types
  • Serializing and Deserializing
  • Validating
  • Pluralizing and Singularizing words
  • Hashing
  • Mailing
  • Converting date
  • Randomizing

Extensions

  • StringExtensions
  • ObjectExtensions
  • IdentityExtensions
  • EnumExtensions
  • EnumerableExtensions

Samples

Loby.Serializer

Provides functionality to serialize objects or value types to JSON, XML and to deserialize JSON, XML into objects or value types.

    var data = new string[] { "a", "b", "c" };

    var toJsonData = Serializer.ToJson(data);
    var fromJsonData = Serializer.FromJson<string[]>(toJsonData);

    var toXmlData = Serializer.ToXml(data);
    var fromXmlData = Serializer.FromXml<string[]>(toXmlData);

Loby.Validator

Includes a set of practical methods for validation.

    var input = "http://www.jackwill.com";

    bool isValidUrl = Validator.IsValidUrl(input);
    bool isValidEmail = Validator.IsValidEmail(input);

Loby.Pluralizer

Includes a set of practical methods for pluralizing and singularizing words (english only).

    var pluralWord = "people";
    var singularWord = "person";

    string pluralizedWord = Pluralizer.Pluralize(singularWord);
    string singularizeWord = Pluralizer.Singularize(pluralWord);

Loby.PasswordHasher

An implementation of PBKDF2 hash algorithm for hashing and verifing passwords.

    var password = "p4$$w0rd";

    string hashedPassword = PasswordHasher.Hash(password);
    bool verifyingHashResult = PasswordHasher.Verify(password, hashedPassword);

Loby.Mailer

Allows applications to send email by using the Simple Mail Transfer Protocol (SMTP).

    // custom smtp server
    var mailer_1 = new Mailer("smtp.gmail.com", 587, "username", "password");

    // predefined smtp servers
    var mailer_2 = new Mailer(Mailer.ClientTypes.Gmail, "username", "password");

    // sending email
    mailer_1.Send(recipient: "test@gmail.com", subject: "my subject", body: "my text");
    mailer_1.SendAsync(recipient: "test@gmail.com", subject: "my subject", body: "my text");

    var recipients = new string[] { "test1@gmail.com", "test2@gmail.com" };

    // sending email
    mailer_2.Send(recipients: recipients, subject: "my subject", body: "my text");
    mailer_2.SendAsync(recipients: recipients, subject: "my subject", body: "my text");

Loby.Dater

A set of methods for date conversions along with other practical methods.

    var dateTime = DateTime.Now;

    // Iranian Date
    var toIranianDate = Dater.ToIranSolar(dateTime, format: "yyyy MMMM dd");
    var fromIranianDate = Dater.FromIranSolar(toIranianDate);

    // Afghanistanian Date
    var toAfghanistanianDate = Dater.ToAfghanistanSolar(dateTime, format: "yyyy MMMM dd");
    var fromAfghanistanianDate = Dater.FromAfghanistanSolar(toAfghanistanianDate);

    // Custom - based on culture name
    var toCanadaDate = Dater.ToSolar(dateTime, format: "yyyy/MMMM/dd", culture: "ca");
    var fromCanadaDate = Dater.FromSolar(toCanadaDate, culture: "ca");

    // Using Extentions
    var toTargetDate = dateTime.ToSolar("yyyy/MMMM/dd", culture: "ar");
    var fromTargetDate = toTargetDate.FromSolar(culture: "ar");

Loby.Randomizer

Represents a pseudo-random data generator, which is an algorithm that produces a sequence of data that meet certain statistical requirements for randomness.

    // Random byte
    byte randomByte = Randomizer.RandomByte();
    byte[] randomBytes = Randomizer.RandomBytes(8);

    // Rnadom int32
    int randomInt_1 = Randomizer.RandomInt();
    int randomInt_2 = Randomizer.RandomInt(maxValue: 100);
    int randomInt_3 = Randomizer.RandomInt(minValue: 10, maxValue: 100);

    // Random int64
    long randomLong_1 = Randomizer.RandomLong();
    long randomLong_2 = Randomizer.RandomLong(maxValue: 100);
    long randomLong_3 = Randomizer.RandomLong(minValue: 10, maxValue: 100);

    // Random float
    float randomFloat = Randomizer.RandomFloat();

    // Random double
    double randomDouble = Randomizer.RandomDouble();

    // Rnadom bool
    bool randomBool = Randomizer.RandomBool();

    // Random color
    Color randomColor = Randomizer.RandomColor();

    // Random date time
    DateTime now = DateTime.Now;

    DateTime randomDate_1 = Randomizer.RandomDateTime();
    DateTime randomDate_2 = Randomizer.RandomDateTime(fromDate: now.AddDays(-10), toDate: now);

    // Random GUID
    string guid = Randomizer.RandomGuid();

    // Random AlphaNmerics
    string alphaNmerics = Randomizer.RandomAlphaNmeric(10);

    // Random Word(s)
    string randomWord = Randomizer.RandomWord();
    string randomWords_1 = Randomizer.RandomWords(count: 2);
    string randomWords_2 = Randomizer.RandomWords(minCount: 3, maxCount: 5);
            
    // Plus too many other methods (explore).

Loby.Convertor

Provides functionality to convert objects to another types.

    Samples comming soon...
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.1 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 3.1

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 502 3/27/2022
1.3.0 422 3/2/2022
1.2.0 273 12/2/2021
1.1.0 674 11/21/2021
1.0.0 277 11/18/2021