Sunday 11 December 2016

C# - Update Querystring Values in a Url

We will look into a solution to update querystring values in a Url.

using System.Web;

// url has the complete url with querystring 
// ex:
var uriBuilder = new UriBuilder(url);

var query = HttpUtility.ParseQueryString(uriBuilder.Query);

// Existing Querystring parameter xyz value will be updated from 20 to 10
query["xyz"] = "10";

// As QS Parameter hello doesn't existed, it will be added.
query["hello"] = "world";

// Set updated querystring to the Url.
uriBuilder.Query = query.ToString();

// New Url:

Remember to import namespace "System.Web"

Thursday 8 December 2016

ASP.NET MVC C# - Redirect to External Website from Controller Action Method

Refer the below code snippet for redirection from ASP.NET MVC Controller to an external website.
The MVC Controller method "Redirect()", is used for redirection from MVC Controller.

public ActionResult Index()
    return Redirect("");

Redirect() method can be used for redirecting to an internal url as well.
Find the sample code below:
public ActionResult Index()
    return Redirect("/Customer/List");

Monday 24 October 2016

SQL - While Loop Syntax

Below is the WHILE LOOP Syntax in SQL

DECLARE @cnt INT = 1;


PRINT @cnt;
SET @cnt = @cnt+1;


SQL Doesn't have For Loop, instead you have to use While loop.

SQL - For Loop Syntax

SQL doesn't have For Loop, instead you have to use While loop.
The syntax is as below.

DECLARE @cnt INT = 1;


PRINT @cnt;
SET @cnt = @cnt+1;


Thursday 18 August 2016

SQL Server - Get DB Object Names, Count

FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'

The above example lists all the tables in the database.
You can modify the query to access other details about the db objects.
Also the same can be used to count the number of objects (tables / stored procedures) in the database.

Below are the reference to the other XTYPE values corresponding to each objects.

-- AF: Aggregate function (CLR)
-- C: CHECK constraint
-- D: Default or DEFAULT constraint
-- F: FOREIGN KEY constraint
-- L: Log
-- FN: Scalar function
-- FS: Assembly (CLR) scalar-function
-- FT: Assembly (CLR) table-valued function
-- IF: In-lined table-function
-- IT: Internal table
-- P: Stored procedure
-- PC: Assembly (CLR) stored-procedure
-- PK: PRIMARY KEY constraint (type is K)
-- RF: Replication filter stored procedure
-- S: System table
-- SN: Synonym
-- SQ: Service queue
-- TA: Assembly (CLR) DML trigger
-- TF: Table function
-- TR: SQL DML Trigger
-- TT: Table type
-- U: User table
-- UQ: UNIQUE constraint (type is K)
-- V: View
-- X: Extended stored procedure

Thursday 21 July 2016

Windows 2012 - Install IIS on Windows Server 2012 R2

Installing and configuring IIS on Windows 2012 R2 is well explained in the below article with step by step screenshots.
Below is the link to the article:

Wednesday 20 July 2016

XSL - If Else condition Choose When Otherwise

In XSL, there is no If - Else construct. Only If is present.

If your requirement is stricly If - Else, instead use the Choose When Otherwise construct as below:

 <xsl:when test="$a > $b">
  <h2> A is greater than B </h2>
  <h2> B is greater than A </h2>

In the above example, a ($a) and b ($b), are variables.

Tuesday 19 July 2016

XSL - Check if item is contained in a list

Use the below sample if you want to check if an item is contained in a list.
This sample is using XSL and XPATH with XML input.
In the below sample:
<!-- .xsl file -->

<!-- List of items to be checked against -->
<xsl:variable name="students" select="'Jon Tom Ana Ben'" />

<!-- Item to be checked if contained in list -->
<xsl:variable name="classTopper" select="'Ana'" />

<!-- Alternately the item can be dynamically taken from the xml input file as below -->
<!-- <xsl:variable name="classTopper" select="/root/@topper" /> -->

<!-- Check if class topper is in the students list -->
<xsl:if test="
    concat(' ', $students, ' '),
    concat(' ', $classTopper, ' ')
  <xsl:value-of select="concat('Student ', $classTopper, ' is in the students list.')" />

Note: Here space is used as separator in the list. You can replace with something else like a pipe "|". In that case, the concat in contains() will be like:
concat ('|', $list, '|') ...

Thursday 14 July 2016

JavaScript - Replace Comma with New Line

Use JavaScript String functions "split" and "join":
var formattedString = yourString.split(",").join("\n")
If you'd like the newlines to be HTML line breaks replace "\n" with "<br />"

Alternate method using "replace" function.
yourString.replace(/,/g, '\n');

Monday 11 April 2016

SQL - Insert Multiple Rows in a Single Query

Below code snippets can be used to insert multiple rows in a Single SQL Query Statement.
This will be faster than using multiple Insert statements.

INSERT INTO MyTable ( Column1, Column2 ) 
  ( Value1, Value2 ), 
  ( Value1, Value2 );

-- Ex:

INSERT INTO tblPerson (First,Last) 

-- If data is from another table
INSERT INTO table1 ( col1, col2, col3, col4 )
SELECT  table2.column1, table2.column2, 8, 'some string etc.'
FROM    table2
WHERE   table2.ID = 7;

Thursday 17 March 2016

C# - String to Stream & Stream to String

Following code can be used to convert Stream to String and Stream to String using C#

Tuesday 8 March 2016

ASP.NET MVC - WebGrid Column Width

Its easy to set the individual column width for ASP.NET MVC WebGrid. You can apply a CSS Style Class to the column. Find a sample below.

As in the sample above, you can apply multiple classes as well for the same column.

Friday 12 February 2016

HTML / ASP.NET / Javascript - 301 Redirect

There are multiple ways to implement a 301 Redirect on a webpage.
Below are methods to do redirection as soon as the page gets the visit using HTML Meta tag, ASP.NET and Javascript.
The most preferred way is ASP.NET than HTML Meta tag and Javascript as it is the most compatible option.

The above sample will redirect user to as soon as he reaches this page.

Monday 11 January 2016

ASP.NET MVC - Configure Multiple Roles for Controller

Using ASP.NET Identity you can easily set access to Controllers based on Roles.
You can use the "Authorize" for this.

Setting access to single Role:

Setting access to single Role:
[Authorize(Roles="Admin, User")]

[Authorize(Roles = "SuperAdmin", "Admin")]
public ActionResult Register()
    return View();

Its that simple. Happy coding... :)