Code Simplified – Viral Sarvaiya

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

Archive for the ‘C#’ 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.

https://www.codeproject.com/Articles/703634/SOLID-architecture-principles-using-simple-Csharp

http://www.c-sharpcorner.com/UploadFile/damubetha/solid-principles-in-C-Sharp/

Thank you!

Advertisements

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.

Solution-1:

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

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

This will open website in Iframe.

Solution-2:


protected void Application_Start()
 {
 AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
 }

This will open website in IFrame

Hope this will helps you.

Thanks.

Posted in .Net, ASP.NET, C#, MVC | 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);
    }

    dtReturn.Rows.Add(dr);
  }
  return dtReturn;
}

Hope this will helps you.
Thanks.

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
  {
    Years,
    Months,
    Days,
    Done
  }

  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);
          }
          else
          {
            years += 1;
          }
          break; // TODO: might not be correct. Was : Exit Select
        break;

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

        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;
          }
          else
          {
            days += 1;
          }
          break; // TODO: might not be correct. Was : Exit Select
        break;
       }
    }
    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.

Output

Hope this will helps you.
Thanks.

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

 
%d bloggers like this: