EasyExtensions 0.1.3

There is a newer version of this package available.
See the version list below for details.
dotnet add package EasyExtensions --version 0.1.3                
NuGet\Install-Package EasyExtensions -Version 0.1.3                
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="EasyExtensions" Version="0.1.3" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EasyExtensions --version 0.1.3                
#r "nuget: EasyExtensions, 0.1.3"                
#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 EasyExtensions as a Cake Addin
#addin nuget:?package=EasyExtensions&version=0.1.3

// Install EasyExtensions as a Cake Tool
#tool nuget:?package=EasyExtensions&version=0.1.3                

GitHub Nuget Static Badge GitHub Actions Workflow Status NuGet version (EasyExtensions) NuGet version (EasyExtensions)

EasyExtensions

Ready-to-use .NET Standard library for convenient development.

Purposes

  • Easy to use - just add a few lines of code to start working with the library.
  • Flexible - use the library as a base for your project.
  • Fast - add new features and commands in a few minutes.
  • Modern - use the latest technologies and approaches.
  • Secure - protect your data and users.
  • Open Source - contribute to the project and make it better.
  • Free - use the library for free.
  • Cross-platform - run the library on any platform.
  • Lightweight - use only necessary features.
  • Documented - read the documentation and start using the library.

Getting Started

Start by importing the library into your project

dotnet add package EasyExtensions --version 0.1.3

Extensions

Byte Array Extensions

string SHA512(this byte[] bytes) - Calculate SHA512 hash of byte array.

bytes - Data to calculate hash.

returns - SHA512 hash of byte array.

Claims Principal Extensions

int GetId(this ClaimsPrincipal? user) - Get user id.

user - User instance.

returns - User id.


int TryGetId(this ClaimsPrincipal? user) - Try get user id.

user - User instance.

returns - User id, or 0 if not found.


IEnumerable<string> GetRoles(this ClaimsPrincipal user, string rolePrefix = "") - Get user roles.

user - User instance.

rolePrefix - Role prefix, for example: "user-group-" prefix returns group like "user-group-admins" </param>

returns - User roles.

DateTime Extensions

DateTime DropMicroseconds(this DateTime value) - Remove microseconds from DateTime.

value - DateTime value.

returns - DateTime without microseconds.


DateTimeOffset DropMicroseconds(this DateTimeOffset value) - Remove microseconds from DateTimeOffset.

value - DateTimeOffset value.

returns - DateTimeOffset without microseconds.


DateTime ToUniversalTimeWithoutOffset(this DateTime value) - Create new datetime with same values but DateTimeKind.Utc.

value - DateTime value.

returns - New datetime.


DateTime? ToNullable(this DateTime value) - Convert datetime value to nullable datetime type.

value - DateTime value.

returns - Wrapped datetime value.

Exception Extensions

string ToStringWithInner(this Exception ex) - Create string with error message from all inner exceptions if exists.

exception - Exception instance.

returns - Error message.

HttpRequest Extensions

string GetRemoteAddress(this HttpRequest request) - Get remote host IP address using proxy "X-Real-IP", "CF-Connecting-IP", "X-Forwarded-For" headers, or connection remote IP address.

request - HttpRequest instance.

returns - IP address, or "Unknown" by default.

Math Extensions

int Pow(this int number, int exponent) - Pow specified foundation to exponent.

number - Foundation.

exponent - Exponent of pow.

returns - Calculation result.

Object Extensions

TObj MemberwiseClone<TObj>(this TObj obj) - Clone object with MemberwiseClone.

obj - Object to clone.

returns - Cloned object.

ServiceCollection Extensions

IServiceCollection AddCpuUsageService(this IServiceCollection services) - Adds CpuUsageService to the IServiceCollection.

services - IServiceCollection instance.

returns - Current IServiceCollection instance.


IServiceCollection AddRepositories(this IServiceCollection services) - Add all types inherited from IRepository.

services - IServiceCollection instance.

returns - Current IServiceCollection instance.

Stream Extensions

byte[] ReadToEnd(this Stream stream) - Reads the bytes from the current stream and writes them to the byte array.

stream - Stream instance.

returns - Received byte array.


Task<byte[]> ReadToEndAsync(this Stream stream) - Asynchronously reads the bytes from the current stream and writes them to the byte array.

stream - Stream instance.

returns - Received byte array.


string SHA512(this Stream stream) - Calculate SHA512 hash of byte stream.

stream - Data to calculate hash.

returns - SHA512 hash of byte stream.

String Extensions

string SHA512(this string str) - Create SHA512 hash of specified text string.

str - Text string.

returns - SHA512 hash.


long ReadOnlyNumbers(this string str) - Read only numbers from specified string.

str - Text string.

returns - Parsed number, or -1 by default.


string ToLowerFirstLetter(this string text) - Make first letter as lower case. If text is null or whitespace - returns string.Empty.

text - Text string.

returns - Text with lower case first letter.


string ToUpperFirstLetter(this string text) - Make first letter as upper case. If text is null or whitespace - returns string.Empty.

text - Text string.

returns - Text with upper case first letter.

Helpers

DateTime Helpers

DateTime ParseDateTimeOffset(string date) - Parse DateTimeOffset from JSON format ISO 8601.

date - Date string.

returns - Parsed DateTimeOffset.


DateTime ParseDateTime(string time) - Parse DateTime from JSON format ISO 8601.

datetime - Date string.

returns - Parsed DateTime.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

<p align="right"><a href="#readme-top">back to top</a></p>

License

Distributed under the MIT License. See LICENSE.md for more information.

Contact

E-Mail

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.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on EasyExtensions:

Package Downloads
EasyExtensions.Quartz

Ready-to-use library for simplifying the development of .NET applications.

EasyExtensions.AspNetCore

Ready-to-use library for simplifying the development of .NET applications.

EasyExtensions.EntityFrameworkCore

Ready-to-use library for simplifying the development of .NET applications.

EasyExtensions.Drawing

Ready-to-use library for simplifying the development of .NET applications.

EasyExtensions.AspNetCore.Authorization

Ready-to-use library for simplifying the development of .NET applications.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.79 229 10/22/2024
0.1.78 146 10/21/2024
0.1.77 149 10/21/2024
0.1.76 111 10/21/2024
0.1.75 112 10/21/2024
0.1.74 101 10/21/2024
0.1.73 314 10/17/2024
0.1.72 233 10/16/2024
0.1.71 105 10/15/2024
0.1.70 209 10/15/2024
0.1.69 113 10/15/2024
0.1.68 154 10/15/2024
0.1.67 113 10/15/2024
0.1.66 199 10/14/2024
0.1.65 140 10/13/2024
0.1.64 114 10/13/2024
0.1.63 137 10/12/2024
0.1.62 149 10/12/2024
0.1.61 118 10/12/2024
0.1.60 186 10/12/2024
0.1.59 111 10/12/2024
0.1.58 176 10/11/2024
0.1.57 514 9/30/2024
0.1.56 117 9/30/2024
0.1.55 125 9/27/2024
0.1.54 142 9/27/2024
0.1.53 124 9/27/2024
0.1.52 151 9/24/2024
0.1.51 122 9/24/2024
0.1.50 169 9/24/2024
0.1.49 270 9/18/2024
0.1.48 174 9/17/2024
0.1.47 181 9/15/2024
0.1.46 269 8/22/2024
0.1.45 390 8/9/2024
0.1.44 149 8/7/2024
0.1.43 128 8/7/2024
0.1.42 139 8/7/2024
0.1.41 323 8/5/2024
0.1.40 148 8/5/2024
0.1.39 121 8/5/2024
0.1.38 119 8/5/2024
0.1.37 163 8/4/2024
0.1.36 121 8/3/2024
0.1.35 138 8/2/2024
0.1.34 137 8/2/2024
0.1.33 224 8/1/2024
0.1.32 124 8/1/2024
0.1.31 110 8/1/2024
0.1.30 112 8/1/2024
0.1.29 107 8/1/2024
0.1.28 150 8/1/2024
0.1.27 143 7/30/2024
0.1.26 105 7/30/2024
0.1.25 133 7/28/2024
0.1.24 111 7/27/2024
0.1.23 118 7/27/2024
0.1.22 169 7/27/2024
0.1.21 112 7/27/2024
0.1.20 116 7/27/2024
0.1.19 120 7/27/2024
0.1.18 139 7/26/2024
0.1.17 110 7/26/2024
0.1.16 135 7/26/2024
0.1.15 97 7/26/2024
0.1.14 94 7/26/2024
0.1.13 83 7/26/2024
0.1.12 87 7/26/2024
0.1.11 107 7/26/2024
0.1.10 85 7/26/2024
0.1.9 77 7/26/2024
0.1.8 76 7/26/2024
0.1.7 66 7/26/2024
0.1.6 61 7/26/2024
0.1.5 84 7/26/2024
0.1.4 45 7/26/2024
0.1.3 67 7/24/2024
0.1.2 63 7/23/2024
0.1.1 53 7/23/2024
0.1.0 51 7/23/2024