How To Redirect HTTP to HTTPS using C#

HttpToHTTPs

Hello Readers,

While developing web application many of us must have observed that after deploying to web server, web page url starts with http but not the secured one https.

So if we want to redirect url from HTTP to HTTPS there is a very simple solution in C#.

Just copy and paste the below code in your “Global.asax.cs” file and you are all done.

Continue reading

Download a PDF file stored in a network location

In View page (.cshtml) Create a Link using anchor tag and define href field as:

href = ‘@Url.Action(“Download”, “YourControllerName”,new{filePath = “”})’

public FileResult Download(string filePath)
{
MemoryStream ms = new MemoryStream();

byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);
string fileNAme = Path.GetFileName(filePath);

string tmpPath = Path.GetTempPath();
tmpPath = tmpPath + fileNAme;

PdfReader pdfReader = new PdfReader(fileBytes);

PdfReader.unethicalreading = true;
FileStream sourceFileStream = new FileStream(tmpPath, FileMode.Create, FileAccess.Write);
PdfStamper pdfStream = new PdfStamper(pdfReader, sourceFileStream);
string waterMark= "Confidential"
for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
Rectangle pageRectangle = pdfReader.GetPageSizeWithRotation(page);
PdfContentByte pdfData = pdfStream.GetUnderContent(page);
pdfData.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 50);
PdfGState graphicsState = new PdfGState();
graphicsState.FillOpacity = 0.6F;
pdfData.SetGState(graphicsState);
pdfData.SetColorFill(BaseColor.GRAY);
pdfData.BeginText();
pdfData.ShowTextAligned(Element.ALIGN_CENTER, waterMark, pageRectangle.Width / 2, pageRectangle.Height / 2, 45);
pdfData.EndText();
}
pdfStream.FormFlattening = true;
pdfStream.Close();
pdfStream.Dispose();
sourceFileStream.Close();
sourceFileStream.Dispose();

byte[] byteArray = System.IO.File.ReadAllBytes(tmpPath);
System.IO.File.Delete(tmpPath);
ms.Write(byteArray, 0, byteArray.Length);
ms.Position = 0;

return new FileStreamResult(ms, "application/pdf");
}

To use above code you need iTextSharp dll. you can install it using Nuget as: Install-Package iTextSharp

References :
<ul>
	<li><a https://developers.itextpdf.com/itextsharp-net</a></li>
</ul>

EXPORT TO EXCEL USING OPEN XML IN MVC

ExportToExcel

In Your View

Create a Link: using anchor tag href = "'@Url.Action("ExportToExcel", "YourControllerName")'";

<strong><span style="text-decoration: underline;">Create a Model class to store the data:</span></strong>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using OpenXmlPackaging;

namespace ExportToExcel
{
public class ExcelModel
{
public string Column1{ get; set; }
public string Column2{ get; set; }
public string Column3{ get; set; }
public string Column4{ get; set; }}
}
}

<!--more-->

<span style="text-decoration: underline;"><strong>In Your Controller</strong></span>

<strong>public FileResult ExportToExcel()</strong>
<strong> {</strong>
List ListExcelModelObj = new List();

var data = (from row1 in DBEntity.Table1
join row2 in DBEntity.Table2 on row1.Id equals row2.id
select new {
row1.Col1,
row1.Col2,
row1.Col3,
row1.Col4
}).ToList();

ExcelModel ExcelModelObj = null;

foreach(var item in data)
{
ExcelModelObj = new ExcelModel ();
ExcelModelObj.Column1 = item.Col1;
ExcelModelObj.Column2 = item.Col2;
ExcelModelObj.Column3 = item.Col3;
ExcelModelObj.Column4 = item.Col4;
ListExcelModelObj.Add(ExcelModelObj);
}

<strong>DataTable table = ConvertToDataTable(ListExcelModelObj);</strong>

string tmpPath = Path.GetTempPath();
tmpPath = tmpPath + "ExcelName.xlsx";
<strong>ExportToExcelUsingOpenXMLPkg(table, tmpPath);</strong>

byte[] fileBytes = System.IO.File.ReadAllBytes(tmpPath);
string fileName = Path.GetFileName(tmpPath);
return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);

<strong>}</strong>

<strong>public DataTable ConvertToDataTable(IList data)</strong>
<strong> {</strong>
PropertyDescriptorCollection properties =
TypeDescriptor.GetProperties(typeof(T));
DataTable table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (T item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
return table;
<strong>}</strong>

<strong>public void ExportToExcelUsingOpenXMLPkg(DataTable tbl, string excelFilePath = null)</strong>
<strong> {</strong>
using (var doc = new SpreadsheetDocument(excelFilePath))
{
Worksheet sheet1 = doc.Worksheets.Add("My Sheet");
//sheet1.Cells[1, 1].Value = "Test";
//sheet1.Cells["A1"].Value = 1;
//sheet1.Cells.CreateRange("B10:D5").MergeCells();
sheet1.ImportDataTable(tbl, "A1", true);
}
<strong>}</strong>

To use above code you need Open XML Package dll. you can install it using Nuget as: Install-Package DocumentFormat.OpenXml

References :
<ul>
	<li><a href="https://www.nuget.org/packages/DocumentFormat.OpenXml">Nuget Install OPEN XML PACKAGE</a></li>
	<li><a href="https://github.com/OfficeDev/Open-XML-SDK">https://github.com/OfficeDev/Open-XML-SDK</a></li>
	<li><a href="https://msdn.microsoft.com/en-us/library/documentformat.openxml.packaging.spreadsheetdocument(v=office.14).aspx">MSDN - Create Excel Document</a></li>
</ul>

ASP .NET MVC Architecture History

MVC 6.0 | ASP .NET vNext

  •          Single Programming Model for ASP.NET MVC and ASP.NET Web API.
  •          Cloud Computing: MVC 6.0 is optimized for Cloud Computing.
  •          Supporting side by side deployment of runtime and framework along with application. In order to dynamically compile code, Roslyn compiler is used
  •         Dependency injection: MVC 6.0 provides Out of the box support for dependency injection.
  •         vNext is Open Source and supports multiple platforms including Linux and Mac.
  •         New JSON-based project Extension.

MVC 5.0

  •         Visual Studio 2013.
  •         .Net Framework 4.5
  •         It was released on 17th Oct 2013.

New features in MVC 5.0:

Continue reading