Skip to content

Instantly share code, notes, and snippets.

View NDiiong's full-sized avatar
😀
Hi there!

duong.nb NDiiong

😀
Hi there!
View GitHub Profile
@NDiiong
NDiiong / AdapterWithDelegation.cs
Created August 12, 2020 06:42
22 Design Patterns in C#
class Abstraction
{
Bridge bridge;
public Abstraction(Bridge implementation)
{
bridge = implementation;
}
public string Operation()
{
return "Abstraction <<< BRIDGE >>>> " + bridge.OperationImp();
@NDiiong
NDiiong / GuardExample.cs
Created August 5, 2020 03:06 — forked from ilivewithian/GuardExample.cs
Guard Example
Guard.Against<InvalidOperationException>(string.IsNullOrEmpty(serverName), "Server name must be provided")
@NDiiong
NDiiong / Expressions.cs
Created August 4, 2020 03:04 — forked from ielcoro/Expressions.cs
Guard exception helper
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace Ormazabal.PanelMonitoring.Helpers
{
static class Expressions
@NDiiong
NDiiong / Guard.cs
Created August 3, 2020 09:04 — forked from RhysC/Guard.cs
Showing a proposed use of Guard with expression for static checks and correct name evaluation in exception messages
public static class Guard
{
public static void NotNull<T>(Expression<Func<T>> notNullableExpression) where T : class
{
var compliedExpression = notNullableExpression.Compile();
if (compliedExpression() == null)
{
var paramName = notNullableExpression.GetObjectNameGraph();
throw new ArgumentNullException(paramName);
@NDiiong
NDiiong / HttpClientSample.cs
Created July 30, 2020 06:05 — forked from tohnaman/HttpClientSample.cs
HttpClient Sample
private static HttpClient client = new HttpClient();
// GET
var response = await client.GetAsync(@"http://localhost/admin");
var cookies = response.Headers.FirstOrDefault(pair => String.Compare(pair.Key, @"Set-Cookie", StringComparison.OrdinalIgnoreCase) == 0).Value;
// get token from html
var html = await response.Content.ReadAsStringAsync();
var regex = new Regex("(name=\\\"_token\\\" value=)\\\"(.*)\\\"");
var token = regex.Match(html).Groups[2].Value;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Converters;
namespace ArchDev
{
public static class HttpClientExtensions
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Net.Http.Formatting;
using System.Threading.Tasks;
namespace Infrastructure.Services
{
public class HttpClientService : IHttpClientService
public class JsonClient : IRestClient
{
private IJsonSerializer serializer;
private HttpClient httpClient;
protected virtual HttpClient HttpClient
{
get
{
return this.httpClient ?? (this.httpClient = new HttpClient());
@NDiiong
NDiiong / HttpClient Sample2.cs
Created July 30, 2020 05:52 — forked from tohnaman/HttpClient Sample2.cs
HttpClient Sample2
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var param = new Dictionary<string, string>
{
{
"title", title
}
};
var query = await new FormUrlEncodedContent(param).ReadAsStringAsync();
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;
using System.Xml.XPath;
namespace XSD_fun
{
class Program
{