Skip to content

Instantly share code, notes, and snippets.

@Edkorenkov
Edkorenkov / RandomRobotNameGenerator.cs
Last active August 11, 2022 09:02
Random robot name generator in format of XX123 where XX : letters from A to Z
var name = Guid.NewGuid()
.ToString()
.Aggregate("", (acc, x) =>
{
return acc.Length switch
{
< 2 when char.IsLetter(x) => $"{acc}{x.ToString().ToUpper()}",
>= 2 and < 5 when char.IsDigit(x) => $"{acc}{x.ToString()}",
_ => acc
};
@Edkorenkov
Edkorenkov / Program.cs
Last active August 2, 2022 14:09
.NET6 minimal startup tamplate
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app
.UseRouting()
.UseEndpoints(x => x.MapControllers());
@Edkorenkov
Edkorenkov / RefitHttpClientWithPollyPolicy.cs
Last active July 22, 2022 17:40
Example of how to use .NET Refit Http Client with Polly Retry Policy
var retryPolicy = Policy
.Handle<ApiException>()
.WaitAndRetryAsync(3, x => TimeSpan.FromSeconds(Math.Pow(2, x)))
.AsAsyncPolicy<HttpResponseMessage>();
services
.AddRefitClient<IHttpClient>()
.ConfigureHttpClient(x => x.BaseAddress = new Uri("https://localhost:8080"))
.AddPolicyHandler(retryPolicy);
@Edkorenkov
Edkorenkov / ArgumentNullException.cs
Created June 23, 2022 09:27
Throw Argument Null Exception
// before C#10 and .NET6
//
public void GetSomething(string id)
{
if (id is null)
{
throw new ArgumentNullException(nameof(id));
}
// ... and here your code to get some data
@Edkorenkov
Edkorenkov / ValidateUri.cs
Created June 21, 2022 09:44
Validate Uri in .NET
using System;
using System.Web;
public static bool IsValidUri(string input) => Uri.IsWellFormedUriString(input, UriKind.Absolute);
// Input: https://www.youtube.com/watch?v=dfzBMxXQUOc
// Output: dfzBMxXQUOc
static string? GetYouTubeVideoId(string input)
=> HttpUtility.ParseQueryString(new Uri(input).Query).Get("v");
@Edkorenkov
Edkorenkov / ValidateIpAddress.cs
Last active November 29, 2022 09:50
Validate IP Addresses in .NET
using System.Net;
using System.Linq;
public static bool IsValidIpAddress(string input)
=> IPAddress.TryParse(input, out var ipAddress) && ipAddress.ToString() == input;
public static bool IsValidIpAddress(string input)
=> input.Split(".") switch
{
{Length: 4} parts => parts.All(x => int.TryParse(x, out var y) && y is >= 0 and <= 255),