N-Tier Architecture

Form User Interface:
















***************

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WinFormAppN_TierArchitecture.BLL
{
   public class EmployeeHelper
   {
      public static void SaveErrorLog(Exception ex)
      {
         string fileName = Environment.CurrentDirectory + "\\ERROR_" + Guid.NewGuid() + ".txt";
         File.WriteAllText(fileName, ex.ToString());
      }
   }
}


***************

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WinFormAppN_TierArchitecture.BLL
{
   public static class EmployeeConverter
   {
      #region [ ToDecimal ]

      public static Decimal ToDecimal(object value)
      {
         return ToDecimal(value, 0);
      }

      private static Decimal ToDecimal(object value, decimal defaultValue)
      {
         decimal retVal = defaultValue;
         if (value.Assigned())
         {
            Decimal.TryParse(Convert.ToString(value), out retVal);
         }
         return retVal;
      }

      #endregion

      #region [ ToInt32 ]

      public static Int32 ToInt32(object value, Int32 defaultValue)
      {
         Int32 retVal = defaultValue;
         if (value.Assigned())
         {
            Int32.TryParse(Convert.ToString(value), out retVal);
         }
         return retVal;
      }

      public static Int32 ToInt32(object value)
      {
         return ToInt32(value, 0);
      }

      #endregion

      public static bool Assigned(this object o)
      {
         if (o is string)
            return !string.IsNullOrEmpty((string)o);

         if (o is DateTime)
            return (DateTime)o > DateTime.MinValue;

         return (o != null);
      }
   }
}

***************

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WinFormAppN_TierArchitecture.DAL;

namespace WinFormAppN_TierArchitecture.BLL
{
   public class EmployeeBLL
   {
      public DataTable GetEmployees()
      {
         try
         {
            EmployeeDAL empDAL = new EmployeeDAL();
            return empDAL.GetEmployees();
         }
         catch (Exception ex)
         {
            EmployeeHelper.SaveErrorLog(ex);
            throw;
         }
      }
      public DataTable GetEmployee(int EmployeeId)
      {
         try
         {
            EmployeeDAL empDAL = new EmployeeDAL();
            return empDAL.GetEmployee(EmployeeId);
         }
         catch (Exception ex)
         {
            EmployeeHelper.SaveErrorLog(ex);
            throw;
         }
      }
   }
}

***************
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WinFormAppN_TierArchitecture.BLL;

namespace WinFormAppN_TierArchitecture.DAL
{
   public class EmployeeDAL
   {
      public string connectionString = "Data Source=NURHAK-KAYA;Initial Catalog=northwind;Integrated Security=True";

      SqlConnection con = new SqlConnection();
      DataTable dt = new DataTable();
      public DataTable GetEmployees()
      {
         try
         {
            con.ConnectionString = connectionString;
            if (con.State == ConnectionState.Closed)
               con.Open();
            SqlCommand cmd = new SqlCommand("select * from Employees", con);
            SqlDataReader rd = cmd.ExecuteReader();
            dt.Load(rd);
            return dt;
         }
         catch (Exception ex)
         {
            EmployeeHelper.SaveErrorLog(ex);
            throw;
         }
      }
      public DataTable GetEmployee(int EmployeeId)
      {
         try
         {
            con.ConnectionString = connectionString;
            if (con.State == ConnectionState.Closed)
               con.Open();
            SqlCommand cmd = new SqlCommand("select * from Employees where EmployeeID=" + EmployeeId, con);
            SqlDataReader rd = cmd.ExecuteReader();
            dt.Load(rd);
            return dt;
         }
         catch (Exception ex)
         {
            EmployeeHelper.SaveErrorLog(ex);
            throw;
         }
     }
   }
}

***************
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WinFormAppN_TierArchitecture.BLL;

namespace WinFormAppN_TierArchitecture
{
   public partial class Form1 : Form
   {
      public Form1()
      {
         InitializeComponent();
      }

      private void Form1_Load(object sender, EventArgs e)
      {
         try
         {
            EmployeeBLL empBLL = new EmployeeBLL();
            this.dataGridView1.DataSource = empBLL.GetEmployees();
         }
         catch (Exception ex)
         {
            EmployeeHelper.SaveErrorLog(ex);
            throw;
         }
      }

      private void button1_Click(object sender, EventArgs e)
      {
         try
         {
            EmployeeBLL empBLL = new EmployeeBLL();
            int employeeId = EmployeeConverter.ToInt32(this.textBox1.Text);
            this.dataGridView1.DataSource = empBLL.GetEmployee(employeeId);
         }
         catch (Exception ex)
         {
            EmployeeHelper.SaveErrorLog(ex);
            throw;
         }
      }
   }
}

***************

Architecture:




















Get All Employees List:

















Get One Employee By EmployeeId:






Comments

Popular posts from this blog

Solution for "Can not obtain Oracle client information from registry"

Solution for the fault: "System.Diagnostics.Process.Start is not working on IIS, but working on ASP.NET Development Server"