Code Simplified – Viral Sarvaiya

Code Simplified – Viral Sarvaiya, Web Developer Friends, dot net Developer, Sql Server Developer

Archive for the ‘.Net’ Category

SOLID Principles C#

Posted by Viral Sarvaiya on August 7, 2017

I know i am very very late in getting knowledge of this powerful principles but this is very nice article for getting knowledge of SOLID Principles for creating architecture of your project.

S: Single Responsibility Principle (SRP)
O: Open closed Principle (OSP)
L: Liskov substitution Principle (LSP)
I: Interface Segregation Principle (ISP)
D: Dependency Inversion Principle (DIP)

here is some nice articles which explains in simple words and with examples.

Thank you!


Posted in .Net, Architect, C#, SOLID Principles | Leave a Comment »

Refused to display url in a frame because it set ‘X-Frame-Options’ to ‘SAMEORIGIN’.

Posted by Viral Sarvaiya on July 21, 2016

Hello All,

After a very log time adding new post in my blog.

Few days before I get one problem that my MVC website is not opening in Iframe.

for eg. my URL is http://localhost/websitename/page

This URL I am opening in Iframe tab like below.

<iframe src="http://localhost/websitename/page" width="500" height="500" />

and getting error as below.

Refused to display ‘http://localhost/websitename/page’ in a frame because it set ‘X-Frame-Options’ to ‘SAMEORIGIN’.

and it is not opening my website in IFrame.


Open Global.asax.cs file, and add one method as below.

protected void Application_PreSendRequestHeaders()
 Response.AddHeader("X-Frame-Options", "AllowAll");

This will open website in Iframe.


protected void Application_Start()
 AntiForgeryConfig.SuppressXFrameOptionsHeader = true;

This will open website in IFrame

Hope this will helps you.


Posted in .Net, ASP.NET, C#, MVC | Tagged: , , , , | Leave a Comment »

Export to Excel using jQuery

Posted by Viral Sarvaiya on October 21, 2013

From my past posts explains how to export to excel as
1. Export GridView Data into CSVFile In
2. GridView Export to Excel

So here its 3rd type to export to excel using Jquery.

In javascript, we have function. We are using same function to export to excel using jquery.


MIMEtype : this is the optional parameter, and its for type of document. default it take as “text/html”
replace : this is also optional parameter, and its set.


$("#btn_Export").click(function(e) {'data:application/,' + $('#divData').html());

Hope its helps you.


Posted in .Net, ASP.NET, Javascript, Jquery | Tagged: , , , , , | Leave a Comment »

Use of Cookies in jQuery

Posted by Viral Sarvaiya on September 27, 2013

I have already writen that how to use cookies in and silverlight from below post

here i am posting new post that shows how to use cookies in Jquery

Create cookie:

$.cookie('myCookie', 'CookieValue', { expires: 7, path: '/' });

Read cookie:

$.cookie('myCookie'); // => "CookieValue"

Read all available cookies:

$.cookie(); // => { "myCookie": "CookieValue", "...remaining": "cookies" }

Delete cookie:

// Returns true when cookie was found, false when no cookie was found...

// Same path as when the cookie was written...
$.removeCookie('myCookie', { path: '/' });


Posted in .Net, ASP.NET, Javascript, Jquery | Tagged: , , , , , | Leave a Comment »

Convert data from Generic List to DataTable.

Posted by Viral Sarvaiya on May 9, 2013

Today i am sharing very good a function which convert all Generic list’s data to Datatable is as below

public DataTable LINQToDataTable<T>(IEnumerable<T> varlist)
  DataTable dtReturn = new DataTable();

  // column names
  PropertyInfo[] oProps = null;

  if (varlist == null) return dtReturn;

  foreach (T rec in varlist)
    // Use reflection to get property names, to create table, Only first time, others will follow
    if (oProps == null)
      oProps = ((Type)rec.GetType()).GetProperties();
      foreach (PropertyInfo pi in oProps)
        Type colType = pi.PropertyType;

        if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition() == typeof(Nullable<>)))
          colType = colType.GetGenericArguments()[0];

        dtReturn.Columns.Add(new DataColumn(pi.Name, colType));
    DataRow dr = dtReturn.NewRow();

    foreach (PropertyInfo pi in oProps)
      dr[pi.Name] = pi.GetValue(rec, null) == null ? DBNull.Value : pi.GetValue(rec, null);

  return dtReturn;

Hope this will helps you.

Posted in .Net, C#, General, LINQ | Tagged: , , , , , , , , , , | Leave a Comment »

Find Difference between 2 dates in Year, month, day, hour, minute, second and millisecond.

Posted by Viral Sarvaiya on May 3, 2013

After a long time i get time to post in my blog.

Few day ago i get very good function which finds difference between 2 dates.

Below is the class named “DateTimeSpan.cs”

using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;

public struct DateTimeSpan
  private readonly int m_years;
  private readonly int m_months;
  private readonly int m_days;
  private readonly int m_hours;
  private readonly int m_minutes;
  private readonly int m_seconds;

  private readonly int m_milliseconds;
  public DateTimeSpan(int years, int months, int days, int hours, int minutes, int seconds, int milliseconds)
    this.m_years = years;
    this.m_months = months;
    this.m_days = days;
    this.m_hours = hours;
    this.m_minutes = minutes;
    this.m_seconds = seconds;
    this.m_milliseconds = milliseconds;

  public int Years
    get { return m_years; }
  public int Months
    get { return m_months; }
  public int Days
    get { return m_days; }
  public int Hours
    get { return m_hours; }
  public int Minutes
    get { return m_minutes; }
  public int Seconds
    get { return m_seconds; }
  public int Milliseconds
    get { return m_milliseconds; }

  private enum Phase

  public static DateTimeSpan CompareDates(DateTime date1, DateTime date2)
    if (date2 < date1)
      dynamic sub = date1;
      date1 = date2;
      date2 = sub;

    DateTime current = date1;
    int years = 0;
    int months = 0;
    int days = 0;

    Phase phase__1 = Phase.Years;
    DateTimeSpan span = new DateTimeSpan();

    while (phase__1 != Phase.Done)
      switch (phase__1)
        case Phase.Years:
          if (current.AddYears(years + 1) > date2)
            phase__1 = Phase.Months;
            current = current.AddYears(years);
            years += 1;
          break; // TODO: might not be correct. Was : Exit Select

        case Phase.Months:
          if (current.AddMonths(months + 1) > date2)
            phase__1 = Phase.Days;
            current = current.AddMonths(months);
            months += 1;
          break; // TODO: might not be correct. Was : Exit Select

        case Phase.Days:
          if (current.AddDays(days + 1) > date2)
            current = current.AddDays(days);
            dynamic timespan = date2 - current;
            span = new DateTimeSpan(years, months, days, timespan.Hours, timespan.Minutes, timespan.Seconds, timespan.Milliseconds);
            phase__1 = Phase.Done;
            days += 1;
          break; // TODO: might not be correct. Was : Exit Select
    return span;

Now in default.aspx page i am using this structure to get difference between 2 dates as below.

protected void Page_Load(object sender, EventArgs e)
  DateTimeSpan datetimespan = new DateTimeSpan(); // Create object of constructer to get difference.

  string date1 = "3-May-2013 9:26:10.011 AM";  //Date 1
  string date2 = "4-June-2014 6:50:20.136 PM";  // date2
  datetimespan = DateTimeSpan.CompareDates(Convert.ToDateTime(date1), Convert.ToDateTime(date2));  //Call static function of DateTimeSpan structure. which return difference of 2 dates.

  Response.Write("Date 1 : " + date1 + "  <br>");
  Response.Write("Date 2 : " + date2 + " <br><br>");

  Response.Write("Years : " + datetimespan.Years + "<br>");
  Response.Write("Months : " + datetimespan.Months + "<br>");
  Response.Write("Days : " + datetimespan.Days + "<br>");
  Response.Write("Hours : " + datetimespan.Hours + "<br>");
  Response.Write("Minutes : " + datetimespan.Minutes + "<br>");
  Response.Write("Seconds : " + datetimespan.Seconds + "<br>");
  Response.Write("Milliseconds : " + datetimespan.Milliseconds + "<br>");


This will give difference in all possible ways as below output.


Hope this will helps you.

Posted in .Net, C#, General | Tagged: , , , , , , , , | Leave a Comment »

Handling Window services thru C#

Posted by Viral Sarvaiya on November 23, 2012


Open Run window form start menu or Press Window key + R, Run window will open, in textbox type “services.msc” and Hit Enter, Service window will open.

Service window has list of the services installed in the computer.

To these all service we can call Window service in technical word.

Window service enable you to create long-running executable applications.

To know how to create window service please click here

C# provide you functionality to handle installed services, that will include in namespace System.ServiceProcess

Here i am explain, how to handle window service.

1. To get list of the Window service.

You can get list of the window service installed in computer from below code,

In System.ServiceProcess namespace we have a from that we can get list of the window service.

ServiceController[] ListServices = ServiceController.GetServices();

2. Search particular service from list.

ServiceController[] ListServices = ServiceController.GetServices();

string TextService = "My Sample Service"

if (LstServices.Where(a => a.ServiceName == TextService).Count() > 0)
ServiceController Myservice = new ServiceController(TextService);
MessageBox.Show(TextService + " is not Installed");

ServiceController.GetServices() gives list of the service so i take that in array of the ServiceController class.

And from linq query we can check that particular service is in the list or not and if that list count is greater than zero then we get that service is installed in the computer else not.

And to get that particular service, here i have creating object of the ServiceController class.

3. Check the status of the Service.

If the window service is installed in computer then we can also check the status of that window service.

Now we assume that we find the service “My Sample Service”.

So from below code we can get the status of the service whether it is Running, Paused, Stopped.

ServiceControllerStatus ServiceStatus = Myservice.Status;

ServiceControllerStatus is Enum for all service statuses.

If we want to compare status then we can use as like below.

if (ServiceStatus == ServiceControllerStatus.Running)
//Do something

4. Start/Stop the Service

From ServiceController class we can start or stop the particular Service with object of the ServiceController.

To start the service you can use


And to stop the service you can use


5. To Restart the Service

To restart the service first we have to check that service is running or not and if it is running then we can stop the service and start the service.

ServiceController[] ListServices = ServiceController.GetServices();

string TextService = "My Sample Service"

if (LstServices.Where(a => a.ServiceName == TextService).Count() > 0)
ServiceController Myservice = new ServiceController(TextService);

ServiceControllerStatus ServiceStatus = Myservice.Status;

if (ServiceStatus == ServiceControllerStatus.Running)

TimeSpan timeout = TimeSpan.FromMilliseconds(2000);

Myservice.WaitForStatus(ServiceControllerStatus.Stopped, timeout);  //To wait 2 second for Stop Service


Myservice.WaitForStatus(ServiceControllerStatus.Running, timeout);   // To wait 2 second for Start Service
MessageBox.Show(TextService + " is not Installed");

hope this will helpful


Posted in .Net, Window Service | Tagged: , , , , , , , , , , | Leave a Comment »

String.Split – by Multiple Character Delimiter in C#.Net

Posted by Viral Sarvaiya on October 31, 2012


Basically String Split function split the string with the single character delimiter;
we take one example of single string of the multiple emails.
If we have comma separated emails then we can use Split function as like below

string strEmailText = ",,";
string[] strSplitText = strEmailText.Split(",");

this will give us string array of the Emails.

But what if we want to use split with 2 or more than one character?
Means what if i have string as like below

string strEmailText = ",;,";

at this time above split function will not work with this string. so for that below solution works well.

string strEmailText = ",;,";
string[] strSplitText = strEmailText.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries);

this will give you string array of the Emails.


Posted in .Net, ASP.NET, feature, LINQ | Tagged: , , , , , , , , , | Leave a Comment »

Difference Between LINQ to SQL and Entity Framework

Posted by Viral Sarvaiya on August 14, 2012

In my current company we have discussion about what is the difference between LINQ to SQL Vs Entity Framework and I get following conclusion from the surfing from internet (off course from google. 🙂 )

LINQ to SQL supports one to one mapping of database table or views or procedures or functions
Entity Framework map single class to multiple tables of database. Means you can map one table to multiple entities or multiple table to one entities.

LINQ to SQL does not support the creation of complex types
Entity Framework support the creation of complex types.

LINQ to SQL is easy to use
Entity framework is more complex compared to LINQ to SQL.

While introduction of LINQ to SQL it supports only sql server and letter on “DBLINQ” that can use with mysql, sqllite or other DBs
Entity Framework  plug with any database server like DB2, Sybase, Oracle, SQL Azure and other.

In LINQ to SQL, inheritance is difficult.
Entity Framework is simple to apply because it supports Table per class and table per Type.

LINQ to SQL file type is DBML
Entity Framework File type is EDMX.

LINQ to SQL has DataContext object which we can query the database,
Entity Framework, we can query database using LINQ To Entities through the ObjectContext object and ESQL(provides SQL like query language). In addition, Entity Framework has ObjectQuery class(used with Object Services for dynamically constructing queries at runtime) and EntityClient provider(runs query against conceptual model).

LINQ to SQL is slow for the first time run, after first run acceptable performance.
Entity Framework is also slow for the first but  performance is good then LINQ to SQL after first run.

LINQ to SQL has not capability to generate database from Model
Entity Framework has capability to generate database from Model.


Posted in .Net, ASP.NET, feature, LINQ | Tagged: , , , , , | Leave a Comment »

Random in Linq

Posted by Viral Sarvaiya on July 12, 2012

In sql query if we want to get one random row form the whole set of data we get from NEWID() in select statement’s order by clouse as like below.

Select top 1 * from Customers where IsActive = 1 order by newid()

What if we are using ORM like linq?

We can do this at the database, by using a fake UDF; in a partial class, add a method to the data context

partial class MyDataContext {
    [Function(Name="NEWID", IsComposable=true)]
    public Guid Random()
    { // to prove not used by our C# code...
        throw new NotImplementedException();

Then just order by ctx.Random(); this will do a random ordering at the SQL-Server courtesy of NEWID(). i.e.

var cust = (from row in ctx.Customers
   .where row.IsActive // your filter
   .orderby ctx.Random()
   select row).FirstOrDefault();

Note that this is only suitable for small-to-mid-size tables; for huge tables, it will have a performance impact at the server, and it will be more efficient to find the number of rows (Count), then pick one at random (Skip/First).

var qry = from row in ctx.Customers select row;

int count = qry.Count(); // 1st round-trip
int index = new Random().Next(count);

Customer cust = qry.Skip(index).FirstOrDefault(); // 2nd round-trip

We can also do woth Guid class

var cust = ctx.Customers
 .Where(x => x.IsActive)
 .OrderBy(x => Guid.NewGuid())

Hope this will helps you.

Thank you.

Posted in .Net, ASP.NET, LINQ | Tagged: , , , , , , , | Leave a Comment »

%d bloggers like this: