Skip to content

Instantly share code, notes, and snippets.

@RickyLin
RickyLin / Startup.cs
Created April 17, 2021 08:40
Access token management for HttpClient
// add IdentityModel.AspNetCore package
using Microsoft.Extensions.DependencyInjection;
using IdentityModel.Client;
public class Startup
{
/* removed all other code for brevity */
public void ConfigureServices(IServiceCollection services)
{
@RickyLin
RickyLin / Startup.cs
Created March 23, 2021 03:01
The token validation in project using Identity Server 3 is not compatible with token created in Identity Server 4. So I have to tweak the token process in Project using Identity Server 4 for client and scopes that will access the project using Identity Server 3.
/*
add those 2 services in Startup class of Identity Server 4 project.
services.AddTransient<ITokenService, TokenService>()
.AddTransient<ITokenCreationService, TokenCreationService>();
*/
@RickyLin
RickyLin / ExtractValuesFromXML.sql
Created February 24, 2021 02:04
Extract values from XML type in SQL Server
DECLARE @Data XML
SET @Data = '<Ids>
    <Id>64122</Id>
    <Id>12345</Id>
    <Id>67890</Id>
</Ids>'
SELECT Ids.Id.value('text()[1]', 'varchar(100)')
FROM @Data.nodes('Ids/Id') AS Ids(Id)
@RickyLin
RickyLin / AspNetWebFormValidatorEnable.js
Created February 7, 2021 05:35
Enable/Disable asp.net web form validator control on client side.
var rfv = document.getElementById('validator_control_id');
ValidatorEnable(rfv, true);
ValidatorEnable(rfv, false);
@RickyLin
RickyLin / IQueryableExtension.cs
Last active June 28, 2022 07:25
Extension methods on Queryable/IQueryable
using System;
using System.Linq.Expressions;
using System.Linq;
using System.Collections.Generic;
namespace Rvc.Utilities
{
// refer to System.Web.Query.Dynamic namespace
public static class IQueryableExtensions
{
@RickyLin
RickyLin / CreatePrimaryKeyOnTableNameIdColumns.sql
Last active September 22, 2020 03:06
Create Primary Key on TableNameId Columns
SELECT T.TABLE_NAME, C.COLUMN_NAME, C.DATA_TYPE, C.IS_NULLABLE
INTO #Tables
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN (
SELECT TABLE_NAME, COLUMN_NAME, IS_NULLABLE, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = TABLE_NAME + 'Id'
) C ON C.TABLE_NAME = T.TABLE_NAME
WHERE T.TABLE_TYPE = 'BASE TABLE'
AND T.TABLE_NAME NOT IN (
@RickyLin
RickyLin / CreatePrimaryKeyOnIdentityColumn.sql
Created September 15, 2020 07:31
Generate SQL scripts that create primary key for tables that have no primary key defined but have identity column
SELECT T.*, PK.COLUMN_NAME
INTO #Tables
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN (
SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
) PK ON PK.TABLE_NAME = T.TABLE_NAME
WHERE T.TABLE_TYPE = 'BASE TABLE'
AND T.TABLE_NAME NOT IN (
@RickyLin
RickyLin / spGenerateEntity.sql
Last active February 28, 2024 06:51
spGenerateEntity
ALTER PROCEDURE [dbo].[spGenerateEntity]
@TableName AS NVARCHAR(128),
@NewDateTypes AS BIT = 0
AS
SELECT CASE WHEN COLUMN_NAME = TABLE_NAME + 'Id' THEN '[Column("' + COLUMN_NAME + '")]
public ' ELSE 'public ' END
+ CASE DATA_TYPE WHEN 'int' THEN 'int'
WHEN 'money' THEN 'decimal'
WHEN 'varchar' THEN 'string'
WHEN 'datetime' THEN 'DateTime'
@RickyLin
RickyLin / InvokeJavaScriptFunctionAfterEachUpdatePanelRequest
Created June 11, 2020 07:47
invoke javascript functions after each UpdatePanel request
$(function () {
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm != null) {
prm.add_endRequest(function (sender, e) {
/*
if (sender._postBackSettings.panelsToUpdate != null) {
DisplayCurrentTime();
}
*/
// invoke whatever functions
@RickyLin
RickyLin / fnGetCSharpTypeNameFromSQLTypeName.sql
Last active August 18, 2020 07:09
Convert SQL data type to C# data type
ALTER FUNCTION [dbo].[fnGetCSharpTypeNameFromSQLTypeName]
(
@SQLTypeName NVARCHAR(64)
, @IsNullable BIT
)
RETURNS NVARCHAR(64)
AS
-- TEST: SELECT dbo.fnGetCSharpTypeNameFromSQLTypeName('MONEY', 1)
BEGIN
DECLARE @Result NVARCHAR(64)