Friday, 29 December 2017

.Net technologies list and tools and editors

Data Base
====================================================================
1. SQL

2. PostgreSQL

3. ADO.NET

4. Npgsql( ado.net for PostgreSQL)

Web Apps
====================================================================

Services
====================================================================

Tools
====================================================================

1. DBever
   
     Opensource editor to connect all data sources(like SQL, PostgreSQL)

2. Postman

3. InSominan

4. mRemoteNg( To connect all production boxes include windows, linuex)

Thursday, 28 December 2017

Excel Manipulation

protected void LoadDatatoControlFile(Int32 BatchId)
        {
            ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Function 'LoadDatatoControlFile(BatchId)' Call Started");
            try
            {
                bool IsValidateDataCheck = false;
                if (hdnDataType.Value == "2")
                {
                    IsValidateDataCheck = true;
                }

                ArrayList DT1 = new ArrayList();
                string StrFilename = "";
                string Uploadedfiletype = "";
                string StrConn = string.Empty;
                /**** Checking if file is selectd to upload ****/
                if (IsValidateDataCheck)
                {
                    if (FileUpload3.HasFile)
                    {
                        StrFilename = System.IO.Path.GetFileName(FileUpload3.PostedFile.FileName.ToString());
                    }
                }
                else
                {
                    if (FileUpload1.HasFile)
                    {
                        StrFilename = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName.ToString());
                    }
                }

                ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - control file name uploaded is - " + StrFilename);

                string[] Files = Directory.GetFiles(Server.MapPath(""));
                foreach (string file in Files)
                {
                    int Length = file.Length;
                    int LastIndex = file.LastIndexOf('\\');

                    string ArFile = "";
                    ArFile = file.Substring(LastIndex + 1, (Length - LastIndex - 1));

                    if (ArFile.ToLower().Contains(".xls"))
                    {
                        //if (ArFile == strFilename)
                        //{
                        File.Delete(file);
                        //}
                    }
                }

                /*****  Including the connection string for the EXCEL file containing the filename and Provider settings. ****/
                StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(StrFilename) + ";Extended Properties='Excel 8.0;IMEX=1'";
                //strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(strFilename) + ";Extended Properties=Excel 12.0 Xml;";
                /***** Create a new connection object. ****/
                OleDbConnection ObjCSVCon = new OleDbConnection(StrConn);
                /****** Create a DataTable which will store spread sheet names. *****/
                DataTable dtsn = null;
                /****** This is to read Uploaded file type. *****/
                string FileExt = "";
                if (IsValidateDataCheck)
                {
                    Uploadedfiletype = FileUpload3.PostedFile.ContentType.ToString().ToLower();
                    FileExt = System.IO.Path.GetExtension(FileUpload3.PostedFile.FileName.ToString());
                }
                else
                {
                    Uploadedfiletype = FileUpload1.PostedFile.ContentType.ToString().ToLower();
                    /****** Checking if Uploaded file type is Excel or not. *****/
                    ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Uploaded control file type - " + Uploadedfiletype);
                    FileExt = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName.ToString());
                }

                ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Uploaded control file Extension - " + FileExt);

                if (Uploadedfiletype != "application/excel" && Uploadedfiletype != "application/vnd.ms-excel" && Uploadedfiletype != "application/octet-stream" && Uploadedfiletype != "application/ms-excel")
                {
                    ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Uploaded control file type is not in 'application/excel','application/vnd.ms-excel','application/octet-stream','application/ms-excel' - " + Uploadedfiletype);
                    /****** If Uploaded file type is not Excel show error message. *****/
                    if (IsValidateDataCheck)
                    {
                        lblFormatMsg2.Visible = true;
                        lblFormatMsg2.Text = "Please Upload Excel File !!!";
                    }
                    else
                    {
                        lblFormatMsg.Visible = true;
                        lblFormatMsg.Text = "Please Upload Excel File !!!";
                    }
                }
                else
                {
                    if (FileExt != ".xls")
                    {
                        ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Uploaded control file Extension().xls is not valid - " + FileExt);

                        /****** If Uploaded file type is not Excel show error message. *****/
                        if (IsValidateDataCheck)
                        {
                            lblFormatMsg2.Visible = true;
                            lblFormatMsg2.Text = "Please Upload Excel File !!!";
                        }
                        else
                        {
                            lblFormatMsg.Visible = true;
                            lblFormatMsg.Text = "Please Upload Excel File !!!";
                        }
                    }
                    else
                    {
                        bool Checkifhasfile = false;
                        if (IsValidateDataCheck)
                        {
                            if (FileUpload3.PostedFile.ContentLength != 0)
                            {
                                Checkifhasfile = true;
                                FileUpload3.PostedFile.SaveAs(Server.MapPath(StrFilename));
                                ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - FileUpload1.PostedFile.ContentLength - " + Convert.ToString(FileUpload3.PostedFile.ContentLength));
                            }
                        }
                        else
                        {
                            if (FileUpload1.PostedFile.ContentLength != 0)
                            {
                                Checkifhasfile = true;
                                FileUpload1.PostedFile.SaveAs(Server.MapPath(StrFilename));
                                ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - FileUpload1.PostedFile.ContentLength - " + Convert.ToString(FileUpload1.PostedFile.ContentLength));
                            }
                        }
                        if (Checkifhasfile)
                        {

                            //string xlFilePath = Server.MapPath("UploadedCSVFiles") + "\\" + strFilename;                         

                            /***** Saving the Uploaded file to project folder structure to read data from spread sheets *****/
                            // FileUpload1.PostedFile.SaveAs(xlFilePath);


                            ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Trying to open the connection - objCSVCon.Open()");
                            /***** Open connection for processing. ****/
                            ObjCSVCon.Open();

                            ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Connection Opened - objCSVCon.Open()");

                            //This Block is to Read Sheet Names from Excel File Uploaded
                            dtsn = ObjCSVCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                            DataSet DsLabInfo = new DataSet();
                            DataLoaderBO ObjValidatBatchBO = new DataLoaderBO();
                            foreach (DataRow row in dtsn.Rows)
                            {

                                string Sql = "SELECT * FROM [" + row["TABLE_NAME"].ToString() + "]";
                                OleDbCommand ObjCmdSelect1 = new OleDbCommand(Sql, ObjCSVCon);
                                /******  Create new OleDbDataAdapter  ****/
                                OleDbDataAdapter DaCSV1 = new OleDbDataAdapter();
                                DaCSV1.SelectCommand = ObjCmdSelect1;
                                /****** Create a DataTable which will hold the data extracted from the worksheet. *****/
                                DataTable DtCSV1 = new DataTable();
                                DtCSV1.TableName = row["TABLE_NAME"].ToString().Replace("$", "");
                                /***** Fill the DataTable from the data extracted from the worksheet. ******/
                                DaCSV1.Fill(DtCSV1);
                                DaCSV1 = null;
                                if (DtCSV1.TableName.ToLower() == "metadata")
                                {
                                    ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Calling function 'ValidateControlFile(dtCSV1, BatchId)'");
                                    try
                                    {
                                        ValidateControlFile(DtCSV1, BatchId);
                                    }
                                    catch (Exception ex)
                                    {
                                        ObjLogger.WriteExceptionLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile - ValidateControlFile", ex, HttpContext.Current);
                                    }
                                    ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - Completed with function calling 'ValidateControlFile(dtCSV1, BatchId)' successfully");
                                }
                            }
                            ObjCSVCon.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Exception in function 'LoadDatatoControlFile'");
                ObjLogger.WriteExceptionLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", ex, HttpContext.Current);
            }
        }

        protected void LoadDatatoDatafileCSV(Int32 BatchId)
        {
            ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - trying to call function 'LoadDatatoDatafileCSV(BatchId)' - started ");
            try
            {

                bool IsValidateDataCheck = false;
                if (hdnDataType.Value == "2")
                {
                    IsValidateDataCheck = true;
                }

                string[] Files = Directory.GetFiles(Server.MapPath("UploadedCSVFiles"));
                foreach (string file in Files)
                    File.Delete(file);

                string StrFilename = "";
                string Uploadedfiletype = "";

                bool Checkifhasfile = false;
                if (IsValidateDataCheck)
                {
                    if (FileUpload4.HasFile)
                    {
                        Checkifhasfile = true;
                        /******** Reading uploaded file name ********/
                        StrFilename = System.IO.Path.GetFileName(FileUpload4.PostedFile.FileName.ToString());
                    }
                }
                else
                {
                    if (FileUpload2.HasFile)
                    {
                        Checkifhasfile = true;
                        /******** Reading uploaded file name ********/
                        StrFilename = System.IO.Path.GetFileName(FileUpload2.PostedFile.FileName.ToString());
                    }
                }
                if (Checkifhasfile)
                {
                    string FileExt = "";
                    FileInfo FileInfo;
                    if (IsValidateDataCheck)
                    {
                        FileInfo = new FileInfo(FileUpload4.PostedFile.FileName);
                        Uploadedfiletype = FileUpload4.PostedFile.ContentType.ToString().ToLower();
                        FileExt = System.IO.Path.GetExtension(FileUpload4.PostedFile.FileName.ToString());
                    }
                    else
                    {
                        FileInfo = new FileInfo(FileUpload2.PostedFile.FileName);
                        Uploadedfiletype = FileUpload2.PostedFile.ContentType.ToString().ToLower();
                        FileExt = System.IO.Path.GetExtension(FileUpload2.PostedFile.FileName.ToString());
                    }
                    if (FileExt.ToLower() == ".csv")
                    {
                        string FileName = FileInfo.Name.Replace(".csv", "").ToString();
                        string CsvFilePath = Server.MapPath("UploadedCSVFiles") + "\\" + FileInfo.Name;
                        //Save the CSV file in the Server inside 'MyCSVFolder'
                        if (IsValidateDataCheck)
                        {
                            FileUpload4.SaveAs(CsvFilePath);
                        }
                        else
                        {
                            FileUpload2.SaveAs(CsvFilePath);
                        }

                        //Fetch the location of CSV file
                        string FilePath = Server.MapPath("UploadedCSVFiles") + "\\";
                        string StrSql = "SELECT * FROM [" + FileInfo.Name + "]";
                        string StrCSVConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath + ";Extended Properties='text;HDR=NO;FMT=Delimited;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text'";
                        // load the data from CSV to DataTable
                        OleDbDataAdapter Adapter = new OleDbDataAdapter(StrSql, StrCSVConnString);
                        DataTable DtCSV = new DataTable();
                        DataTable DtSchema = new DataTable();
                        Adapter.FillSchema(DtCSV, SchemaType.Mapped);
                        Adapter.Fill(DtCSV);
                        if (DtCSV.Rows.Count > 0)
                        {
                            ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - trying to call function 'ValidateDataFileData(dtCSV, BatchId)' ");
                            try
                            {
                                NewValidateDataFileData(DtCSV, BatchId);
                            }
                            catch (Exception ex)
                            {
                                ObjLogger.WriteExceptionLog("DataLoaderNew.ascx.cs", "LoadDatatoDatafileCSV - ValidateDataFileData", ex, HttpContext.Current);
                            }
                            ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoControlFile", "Uploading Control N Data Files - trying to call function 'ValidateDataFileData(dtCSV, BatchId)' completed successfully");
                        }
                        else
                        {
                            if (IsValidateDataCheck)
                            {
                                lblFormatMsg2.Visible = true;
                                lblFormatMsg2.Text = "Data Inconsistency Error";
                            }
                            else
                            {
                                lblFormatMsg.Visible = true;
                                lblFormatMsg.Text = "Data Inconsistency Error";
                            }
                        }

                        string[] Files1 = Directory.GetFiles(Server.MapPath("UploadedCSVFiles"));
                        foreach (string file in Files1)
                            File.Delete(file);


                    }
                    else
                    {
                        if (IsValidateDataCheck)
                        {
                            lblFormatMsg2.Text = "Please Upload Csv File !!!";
                            lblFormatMsg2.Visible = true;
                        }
                        else
                        {
                            lblFormatMsg.Text = "Please Upload Csv File !!!";
                            lblFormatMsg.Visible = true;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoDatafileCSV", "Exception in function 'LoadDatatoControlFile'");
                ObjLogger.WriteExceptionLog("DataLoaderNew.ascx.cs", "LoadDatatoDatafileCSV", ex, HttpContext.Current);
            }
        }

        protected void LoadDatatoDataFile(Int32 BatchId)
        {
            ObjLogger.WriteLog("DataLoaderNew.ascx.cs", "LoadDatatoDataFile", (HttpContext.Current).ToString());

            try
            {

                ArrayList DT1 = new ArrayList();
                string StrFilename = "";
                string Uploadedfiletype = "";
                string StrConn = string.Empty;
                /**** Checking if file is selectd to upload ****/
                if (FileUpload2.HasFile)
                {
                    /******** Reading uploaded file name ********/
                    StrFilename = System.IO.Path.GetFileName(FileUpload2.PostedFile.FileName.ToString());
                }

                /*****  Including the connection string for the EXCEL file containing the filename and Provider settings. ****/
                StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(StrFilename) + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text'";
                /***** Create a new connection object. ****/
                OleDbConnection ObjCSVCon = new OleDbConnection(StrConn);
                /****** Create a DataTable which will store spread sheet names. *****/
                DataTable Dtsn = null;
                /****** This is to read Uploaded file type. *****/
                Uploadedfiletype = FileUpload2.PostedFile.ContentType.ToString().ToLower();
                /****** Checking if Uploaded file type is Excel or not. *****/
                if (Uploadedfiletype != "application/excel" && Uploadedfiletype != "application/vnd.ms-excel" && Uploadedfiletype != "application/octet-stream" && Uploadedfiletype != "application/ms-excel")
                {
                    /****** If Uploaded file type is not Excel show error message. *****/
                    //lblMsg.Visible = true;
                    //lblMsg.CssClass = "redtext";
                    //lblMsg.Text = "Please Upload Excel File !!!";
                }
                else
                {
                    if (FileUpload2.PostedFile.ContentLength != 0)
                    {
                        /***** Saving the Uploaded file to project folder structure to read data from spread sheets *****/
                        FileUpload2.PostedFile.SaveAs(Server.MapPath(StrFilename));
                        /***** Open connection for processing. ****/
                        ObjCSVCon.Open();

                        //This Block is to Read Sheet Names from Excel File Uploaded
                        Dtsn = ObjCSVCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                        DataSet DsLabInfo = new DataSet();
                        DataLoaderBO ObjValidatBatchBO = new DataLoaderBO();
                        foreach (DataRow row in Dtsn.Rows)
                        {

                            string Sql = "SELECT * FROM [" + row["TABLE_NAME"].ToString() + "]";
                            OleDbCommand ObjCmdSelect1 = new OleDbCommand(Sql, ObjCSVCon);
                            /******  Create new OleDbDataAdapter  ****/
                            OleDbDataAdapter daCSV1 = new OleDbDataAdapter();
                            daCSV1.SelectCommand = ObjCmdSelect1;
                            /****** Create a DataTable which will hold the data extracted from the worksheet. *****/
                            DataTable DtCSV1 = new DataTable();
                            DtCSV1.TableName = row["TABLE_NAME"].ToString().Replace("$", "");
                            /***** Fill the DataTable from the data extracted from the worksheet. ******/
                            daCSV1.Fill(DtCSV1);
                            daCSV1 = null;

                            if (DtCSV1.TableName.ToLower() == "template")
                            {
                                ValidateDataFileData(DtCSV1, BatchId);

                            }
                        }
                    }
                }

            }
            catch (Exception ex)
            {
                ObjLogger.WriteExceptionLog("DataLoaderNew.ascx.cs", "LoadDatatoDataFile", ex, HttpContext.Current);
            }
        }

Sunday, 17 December 2017

Angular2 testing

Angular 2 Testing in Depth: Services

Service


import { Injectable } from '@angular/core';
@Injectable()
export class Engine {
  getHorsepower() {
    return 150;
  }
  getName() {
    return 'Basic engine';
  }
}

test file

V1)
import { Engine } from './engine.service';

describe('Engine', () => {
  it('should return it\'s horsepower', () => {
    let subject = new Engine();
    expect(subject.getHorsepower()).toEqual(150);
  });
});

V2)

describe('Engine', () => {
  let subject: Engine;
  beforeEach(() => {
    subject = new Engine();
  });
  it('should return it\'s horsepower', () => {
    expect(subject.getHorsepower()).toEqual(150);
  });
  it('should return it\'s horsepower', () => {
    expect(subject.getName()).toEqual('Basic engine');
  });
});

V3)

import { TestBed, inject } from '@angular/core/testing';
import { Engine } from './engine.service';
import { Car } from './car.service';
describe('Car', () => {
  let subject: Car;
  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [Engine, Car]
    });
  });
  beforeEach(inject([Car], (car: Car) => {
    subject = car;
  }));
  it('should display name with engine', () => {
    expect(subject.getName()).toEqual('Car with Basic engine(150 HP)');
  });
});

or

it('should display name with engine', inject([Car], (car: Car) => {
  expect(car.getName()).toEqual('Car with Basic engine(150 HP)');
}));

or 

beforeEach(() => {
  TestBed.configureTestingModule({
    providers: [Engine, Car]
  });
  spyOn(Engine.prototype, 'getHorsepower').and.returnValue(400);
  spyOn(Engine.prototype, 'getName').and.returnValue('V8 engine');
});
...
it('should display name with engine', () => {
  expect(subject.getName()).toEqual('Car with V8 engine(400 HP)');
});


V4)

Mcok Service

@Injectable()
class V8Engine {
  getHorsepower() {
    return 400;
  }
  getName() {
    return 'V8 engine';
  }
}

beforeEach(() => {
  TestBed.configureTestingModule({
    providers: [
      { provide: Engine, useClass: V8Engine },
      Car
    ]
  });
});

References

https://dzone.com/articles/angular-2-testing-in-depth-services
https://developers.livechatinc.com/blog/angular-dependency-injection-components/
http://blog.danieleghidoli.it/2016/11/06/testing-angular-component-mock-services/