Skip to content

Instantly share code, notes, and snippets.

View dehghani-mehdi's full-sized avatar
💭
Waiting ...

Mehdi Dehghani dehghani-mehdi

💭
Waiting ...
  • Rightek
  • That's what she said
View GitHub Profile
// ref: https://stackoverflow.com/a/538238/3367974
public class Foo : IDisposable
{
protected void Dispose(Boolean disposing)
{
// free unmanaged resources
if (disposing)
{
// free managed resources
@dehghani-mehdi
dehghani-mehdi / validate-national-code.js
Last active August 4, 2023 00:27
Validate Iranian national code in JavaScript - بررسی صحت کد ملی در جاوا اسکریپت
// C# version -> https://gist.github.com/dehghani-mehdi/2af3d913786d8b1b286f9c28cc75d5f4
var isValidNationalCode = function(code) {
if (code.length !== 10 || /(\d)(\1){9}/.test(code)) return false;
var sum = 0,
chars = code.split(''),
lastDigit,
remainder;
// based on js version -> https://gist.github.com/dehghani-mehdi/df7f216d8031abad8c911b8117b7000e
public bool IsValidNationalCode(string value)
{
// extract only numbers form the value
value = new string(value?.Where(char.IsDigit).ToArray());
if (value.Length != 10 || Regex.IsMatch(value, @"(\d)(\1){9}")) return false;
var sum = 0;
var chars = value.ToCharArray();
@dehghani-mehdi
dehghani-mehdi / git-commands.md
Last active October 4, 2022 12:12
Useful git commands
  • Pull (Update repo): git pull
  • Commit:
    • git add .
    • git commit -m "COMMIT COMMENT"
    • Short version: git commit -am "COMMIT COMMENT"
  • Push (Update remote): git push <remote-name> <branch-name>
  • Clone: git clone <url>
  • Clone a branch: git clone <url> BRANCH_NAME
  • Clone and create a branch: git clone <url> -b BRANCH_NAME
  • Get repo's remote URL: git config --get remote.origin.url
[buildPlans.iosevka-custom]
family = "Iosevka Custom"
spacing = "term"
serifs = "sans"
no-cv-ss = true
[buildPlans.iosevka-custom.variants]
inherits = "ss10"
[buildPlans.iosevka-custom.variants.design]
@dehghani-mehdi
dehghani-mehdi / discount.md
Last active November 12, 2020 08:08
Get discount price and discount percentage in C# and JavaScript

C#

public decimal GetDiscountPercentage(decimal sellPrice, decimal discountPrice)
    => sellPrice == 0 ? 0 : Math.Abs((((discountPrice - sellPrice) / sellPrice) * 100));

public decimal GetDiscountPrice(decimal sellPrice, byte discountPercentage)
    => discountPercentage == 0 ? 0 : sellPrice == 0 ? 0 : sellPrice - (sellPrice * discountPercentage / 100);
@dehghani-mehdi
dehghani-mehdi / commands.md
Last active November 2, 2020 06:15
Linux Commands frequently used by Linux Sysadmins
  1. ip – from Iproute2, a collection of utilities for controlling TCP/IP networking and traffic control in Linux.
  2. ls – list directory contents.
  3. df – display disk space usage.
  4. du – estimate file space usage.
  5. free – display memory usage.
  6. scp – securely Copy Files Using SCP, with examples.
  7. find – locates files based on some user-specified criteria.
  8. ncdu – a disk utility for Unix systems.
  9. pstree – display a tree of processes.
  10. last – show a listing of last logged in users.
@dehghani-mehdi
dehghani-mehdi / git-commit.bat
Last active May 2, 2020 22:42
Commit on GitHub/GitLab using batch file (.bat file)
@echo off
echo Commit on GitHub/GitLab
echo.
set /p comment="Enter comment: "
git.exe add .
git.exe commit -m "%comment%"
git.exe push
@dehghani-mehdi
dehghani-mehdi / slugify.cs
Created October 1, 2018 10:24
Generate clean url slug in C#
public string Slugify(string s)
{
if (string.IsNullOrWhiteSpace(s)) return "";
// removing extra spaces and keeping just one
s = string.Join(" ", Regex.Split(s, @"\s+")).ToLower();
var specialPhases = new Dictionary<string, string>
{
{"c#","c-sharp"},
@dehghani-mehdi
dehghani-mehdi / backup-restore-firefox-data.md
Last active September 16, 2018 12:13
[Firefox] How to backup and restore important data

BACKUP

  1. Head to C:\Users\%USERNAME%\AppData\Roaming\Mozilla\Firefox\Profiles\
  2. Copy/Backup the directory in some place safe

Do you have multiple directories? that means you have multiple Firefox's profiles, in most cases xxxxxxxx..default is the main one (if you have multiple Firefox's profiles, you are pro user, what the hell you doing here?!)

RESTORE