Clone a generic list in C# using extension method

In practical situation you need to clone of object so that change in cloned object will not affect the original one. If you need a cloned list with the same capacity you need to do some extra stuff with your user type. I came up with this easy solution using ICloneable interface in your custom type class. The first step you need to implement the ICloneable interface in your class like below. public class MyClassDto : ICloneable { public Int64 Id { get; set; } public string Time { get; set; } public int user{ get; set; } public object Clone() { return new MyClassDto{ Date = this.Date, Id = this.Id, user = this.user}; } } after that you need to add extension method in common class so that you can use it everywhere you want. public static class Extensions { public static List<T> Clone<T>(this List<T> listToClone) where T : ICloneable { return listToClone.Select(item

Email validation using regular expression in jQuery

To validate user input for email-id it's very easy using regular expressions. Using regular expressions you do not need to write lengthy logical code in jQuery. Following are the steps to do the same. Pass a string to RegExp or create a regex using the  // syntax Call  regex.test(string) So code would be... jQuery ( function () { $ ( ".mail" ). keyup ( function () { var VAL = this . value ; var email = new RegExp ( '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$' ); if ( email . test ( VAL )) { alert ( 'Great, you entered an valid E-Mail-address' ); } }); });

Remove Owin from MVC 5 Application and use custom forms authentication

Owin comes with 15 other dependencies when we add default "blank" mvc5 template in solution. Which some time is irrelevant to web application hence needs to be removed for adding custom authentication techniques in the web application. Remove the owin  from solution is tedious task but if we follow the below procedure then it can be easily removed from the solution. Right click on your project and from menu click on Manage Nuget Packages. on left side of Manage Nuget Packages window click on Installed Package then on right side of window in search box type owin.  Uninstall packages in order of: microsoft.aspnet.identity.owin microsoft.aspnet.identity.entityframework microsoft.aspnet.identity.core Open web.config file and remove these sections from   &l

Step by step migration of ASP.NET Core 2.2 to 3.1

In order to upgrade/migrate core version to 3.1 following steps to be perform. Download and install Visual Studio 2019 version 16.4 or higher. Download and install .NET Core 3.1 Upgrade the projects of solution to .NET Core 3.1 , because ASP.NET Core 3.1 requires it. Update existing Nuget packages to a version compatible with ASP.NET Core 3.1 in each project Use IHost interface from a IHostBuilder instead of building and running a IWebHost from a IWebHostBuilder in Program.cs public static IHostBuilder CreateWebHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseKestrel() .UseSerilog() .UseStartup<Startup>(); }) Change AddMvc method has been replaced by AddControllers in Startup.cs of each projects. In Startup.cs, UseMvc method to b

Log exception to file in c# .net core application explained

In production environment when any bug gets reported at that time as developer wants to get the exception details of bug to resolve the issue on high priority. In some case there might be situation where exception is not logged in table but developer wants to check the bug immediately. for that purpose we need to write the exception details including stack trace of bug in file. To implement this easily i am going to demonstrate the implementation of custom logging in file as below. First we need to construct the exception and logger method in custom logger class as shown below. public class CustomLogger { public static List<string> ConstructExceptionDetails(Exception ex,string FunctionName) { return new List<string>() { $"{DateTime.Now} - {FunctionName}", $"Exception: {ex.Message}", $"StackTrace: {ex.StackTrace}", $"InnerException: {ex.InnerEx