Tuesday, 19 August 2014

MVC ViewModel Pattern

View Model

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DataAccessLayer.Models;

namespace DataAccessLayer.ViewModels
{
    public class EmployeeViewModel
    {
        public long Emp_Id { get; set; }
        public string Emp_Name { get; set; }
        public Nullable<long> DepartmentId { get; set; }
        public string DepartMentName { get; set; }

        public EmployeeViewModel()
        {
       
        }

        public EmployeeViewModel ConvertToViewModel(Employee emp)
        {
            EmployeeViewModel empvm = new EmployeeViewModel();
            empvm.Emp_Id = emp.Emp_Id;
            empvm.Emp_Name = emp.Emp_Name;
            empvm.DepartmentId = emp.DepartmentId;
            empvm.DepartMentName = emp.Department.DepartmentName;
            return empvm;
        }

        public Employee ConvertToModel(EmployeeViewModel empvm)
        {
            Employee emp = new Employee();
            emp.Emp_Id = empvm.Emp_Id;
            emp.Emp_Name = empvm.Emp_Name;
            emp.DepartmentId = empvm.DepartmentId;
            return emp;
        }

        public List<EmployeeViewModel> ConvertToList(List<Employee> EmpList)
        {
            List<EmployeeViewModel> emplist = new List<EmployeeViewModel>();
            foreach (Employee emp in EmpList)
            {
                EmployeeViewModel Emprec = ConvertToViewModel(emp);
                emplist.Add(Emprec);
            }
            return emplist;
        }
    }
}

Repository

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DataAccessLayer.Models;
using DataAccessLayer.ViewModels;

namespace Repository
{
    public class EmployeeRepository
    {
        DBEntities _dbconn = new DBEntities();

        public IEnumerable<EmployeeViewModel> GetAllEmployee()
        {
            EmployeeViewModel empvm = new EmployeeViewModel();
            return (empvm.ConvertToList(_dbconn.Employees.ToList()));
        }
    }
}

Controller 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Repository;

namespace MvcApplication1.Controllers
{
    public class EmployeeController : Controller
    {
        //
        // GET: /Employee/

        public ActionResult Index()
        {
            EmployeeRepository emprepo = new EmployeeRepository();
            return View(emprepo.GetAllEmployee());
        }
    }
}

Tuesday, 5 August 2014

user repository

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Gammers.Repository;
using Gammers.Models;
using PagedList;
using System.Data;
using System.Data.Common;
using Gammers.Models;
using System.Data.SqlClient;
using System.Configuration;
using Gammers.Helpers;
using System.Threading;
using Gammers.PushNotification;

namespace Gammers.Repository
{
    public class UserRepository
    {
        #region "Declaration"

        private static DBHelper objDBHelper = new DBHelper();
        private string SPName = "SP_UserMaster";
        private string key = "Users";

        #endregion

        #region "Add Parameter"
        private void AddParameter(Pro_UserMaster objPro_UserMaster)
        {
            objDBHelper.Command.Parameters.Clear();
            objDBHelper.AddParameter("@Mode", objPro_UserMaster.Mode);
            objDBHelper.AddParameter("@UserId", objPro_UserMaster.UserId, DbType.Int32);
            objDBHelper.AddParameter("@ContactNo", objPro_UserMaster.ContactNo);
            objDBHelper.AddParameter("@UserName", objPro_UserMaster.UserName);
            objDBHelper.AddParameter("@EmailId", objPro_UserMaster.EmailId);
            objDBHelper.AddParameter("@Sex", objPro_UserMaster.Sex);
            objDBHelper.AddParameter("@Status", objPro_UserMaster.Status);
            objDBHelper.AddParameter("@Birthdate", objPro_UserMaster.Birthdate);
            objDBHelper.AddParameter("@AboutYou", objPro_UserMaster.AboutYou);
            objDBHelper.AddParameter("@Intrestes", objPro_UserMaster.Intrestes);
            objDBHelper.AddParameter("@Hobbies", objPro_UserMaster.Hobbies);
            objDBHelper.AddParameter("@Favoritemovies", objPro_UserMaster.Favoritemovies);
            objDBHelper.AddParameter("@LookingFor", objPro_UserMaster.LookingFor);
            objDBHelper.AddParameter("@ProfilePic", objPro_UserMaster.ProfilePic);
            objDBHelper.AddParameter("@CreatedOn", objPro_UserMaster.CreatedOn);
            objDBHelper.AddParameter("@DeviceId", objPro_UserMaster.DeviceId);
            objDBHelper.AddParameter("@DeviceType", objPro_UserMaster.DeviceType);

            objDBHelper.AddParameter("@MultiIDs", objPro_UserMaster.MultiIDs);
            objDBHelper.AddParameter("@SortBy", objPro_UserMaster.SortBy);
            objDBHelper.AddParameter("@SortOrder", objPro_UserMaster.SortOrder);
            objDBHelper.AddParameter("@SearchField", objPro_UserMaster.SearchField);
            objDBHelper.AddParameter("@SearchValue", objPro_UserMaster.SearchValue);
            objDBHelper.AddParameter("@Name", objPro_UserMaster.Name);
            objDBHelper.AddParameter("@IsActive", objPro_UserMaster.IsActive);
            objDBHelper.AddParameter("@CreatedFrom", objPro_UserMaster.CreatedFrom);
            objDBHelper.AddParameter("@CreatedTo", objPro_UserMaster.CreatedTo);
        }
        #endregion

        #region "Functions"
        public IEnumerable<Pro_UserMaster> GetUsers(Pro_UserMaster objPro_UserMaster)
        {
            objDBHelper = new DBHelper();
            List<Pro_UserMaster> obj_Pro_UserMasterList = new List<Pro_UserMaster>();
            try
            {
                AddParameter(objPro_UserMaster);
                using (SqlDataReader SqlReader = (SqlDataReader)objDBHelper.ExecuteReader(SPName, CommandType.StoredProcedure))
                {
                    while (SqlReader.Read())
                    {
                        Pro_UserMaster obj_Pro_UserMaster = new Pro_UserMaster();
                        obj_Pro_UserMaster.UserId = CommanLogic.GetIntValue(SqlReader["UserId"], 0);
                        obj_Pro_UserMaster.UserName = CommanLogic.GetStringValue(SqlReader["UserName"], string.Empty);
                        obj_Pro_UserMaster.ContactNo = CommanLogic.GetStringValue(SqlReader["ContactNo"], string.Empty);
                        obj_Pro_UserMaster.EmailId = CommanLogic.GetStringValue(SqlReader["EmailId"], string.Empty);
                        obj_Pro_UserMaster.Sex = CommanLogic.GetStringValue(SqlReader["Sex"], string.Empty);
                        DateTime date = CommanLogic.GetDateTimeValue(SqlReader["Birthdate"]);
                        obj_Pro_UserMaster.Birthdate1 = string.Format("{0:dd/MM/yyyy}", date);
                        obj_Pro_UserMaster.Birthdate = CommanLogic.GetDateTimeValue(SqlReader["Birthdate"]);
                        obj_Pro_UserMaster.AboutYou = CommanLogic.GetStringValue(SqlReader["AboutYou"]);
                        obj_Pro_UserMaster.Intrestes = CommanLogic.GetStringValue(SqlReader["Intrestes"]);
                        obj_Pro_UserMaster.Hobbies = CommanLogic.GetStringValue(SqlReader["Hobbies"]);
                        obj_Pro_UserMaster.Favoritemovies = CommanLogic.GetStringValue(SqlReader["Favoritemovies"]);
                        obj_Pro_UserMaster.Status = CommanLogic.GetBoolValue(SqlReader["Status"]);
                        obj_Pro_UserMasterList.Add(obj_Pro_UserMaster);
                    }
                }

            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            { objDBHelper = null; }

            return obj_Pro_UserMasterList;
        }

        public IEnumerable<Pro_UserMaster> GetUsersByIDs(string ListofUsers)
        {
            objDBHelper = new DBHelper();
            List<Pro_UserMaster> obj_Pro_UserMasterList = new List<Pro_UserMaster>();
            try
            {
                objDBHelper.Command.Parameters.Clear();
                objDBHelper.AddParameter("@Mode", "SelectListofUsers");
                objDBHelper.AddParameter("@MultiIDs", ListofUsers);
                using (SqlDataReader SqlReader = (SqlDataReader)objDBHelper.ExecuteReader(SPName, CommandType.StoredProcedure))
                {
                    while (SqlReader.Read())
                    {
                        Pro_UserMaster obj_Pro_UserMaster = new Pro_UserMaster();
                        obj_Pro_UserMaster.UserId = CommanLogic.GetIntValue(SqlReader["UserId"], 0);
                        obj_Pro_UserMaster.UserName = CommanLogic.GetStringValue(SqlReader["UserName"], string.Empty);
                        obj_Pro_UserMaster.ContactNo = CommanLogic.GetStringValue(SqlReader["ContactNo"], string.Empty);
                        obj_Pro_UserMaster.EmailId = CommanLogic.GetStringValue(SqlReader["EmailId"], string.Empty);
                        obj_Pro_UserMaster.Sex = CommanLogic.GetStringValue(SqlReader["Sex"], string.Empty);
                        DateTime date = CommanLogic.GetDateTimeValue(SqlReader["Birthdate"]);
                        obj_Pro_UserMaster.Birthdate1 = string.Format("{0:dd/MM/yyyy}", date);
                        obj_Pro_UserMaster.Birthdate = CommanLogic.GetDateTimeValue(SqlReader["Birthdate"]);
                        obj_Pro_UserMaster.AboutYou = CommanLogic.GetStringValue(SqlReader["AboutYou"]);
                        obj_Pro_UserMaster.Intrestes = CommanLogic.GetStringValue(SqlReader["Intrestes"]);
                        obj_Pro_UserMaster.Hobbies = CommanLogic.GetStringValue(SqlReader["Hobbies"]);
                        obj_Pro_UserMaster.Favoritemovies = CommanLogic.GetStringValue(SqlReader["Favoritemovies"]);
                        obj_Pro_UserMaster.Status = CommanLogic.GetBoolValue(SqlReader["Status"]);
                        obj_Pro_UserMasterList.Add(obj_Pro_UserMaster);
                    }
                }

            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            { objDBHelper = null; }

            return obj_Pro_UserMasterList;
        }

        public object GetUserCount()
        {
            objDBHelper = new DBHelper();
            try
            {
                objDBHelper.AddParameter("@Mode", "GetUserCount");
                return (objDBHelper.ExecuteScaler(SPName, CommandType.StoredProcedure));
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                CacheHelper.Clear(key);
                objDBHelper = null;
            }
        }

        public object SaveUser(Pro_UserMaster user)
        {
            objDBHelper = new DBHelper();
            try
            {
                if (user.UserId > 0)
                    user.Mode = "UPDATE";
                else
                    user.Mode = "INSERT";

                AddParameter(user);
                return objDBHelper.ExecuteScaler(SPName, CommandType.StoredProcedure);

            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                CacheHelper.Clear(key);
                objDBHelper = null;
            }
        }

db helper class

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.IO;

namespace Gammers.Models
{
    public class DBHelper
    {
        #region "Private Members"

        private string _ConnString;
        private DbConnection _Connection;
        private DbCommand _Command;
        private DbProviderFactory _Factory = null;

        #endregion

        #region "Cunstructor"
        ///<summary>
        /// Cunstructor
        ///</summary>      
        public DBHelper()
        {
            this._ConnString = string.Empty;
            this.CreateConnection();
        }
        #endregion

        #region "Properties"

        /// <summary>
        /// Gets or Sets the Connection string for the database
        /// </summary>
        public string ConnString
        {
            get { return _ConnString; }
            set
            {
                if (value != string.Empty)
                {
                    _ConnString = value;
                }
            }
        }

        /// <summary>
        /// Gets the Connection object for the database
        /// </summary>
        public DbConnection Connection
        {
            get { return _Connection; }
        }

        /// <summary>
        /// Gets the Command object for the database
        /// </summary>
        public DbCommand Command
        {
            get { return _Command; }
        }

        #endregion

        # region "Methods"

        public void CreateConnection()
        {
            CreateDBObjects(ConfigurationManager.ConnectionStrings["ConnString"].ToString(),
                ConfigurationManager.ConnectionStrings["ConnString"].ProviderName);
        }

        /// <summary>
        /// Determines the correct provider to use and sets up the Connection and Command
        /// objects for use in other methods
        /// </summary>
        /// <param name="connectString">The full Connection string to the database</param>
        /// <param name="providerlist">The enum value of providers from dbutilities.Providers</param>
        public void CreateDBObjects(string connectString, string strProvider)
        {
            _Factory = DbProviderFactories.GetFactory(strProvider);
            _Connection = _Factory.CreateConnection();
            _Command = _Factory.CreateCommand();

            _Connection.ConnectionString = connectString;
            _Command.Connection = Connection;
        }

        #region "Parameters"

        /// <summary>
        /// Creates a parameter and adds it to the Command object
        /// </summary>
        /// <param name="name">The parameter name</param>
        /// <param name="value">The paremeter value</param>
        /// <returns></returns>
        public int AddParameter(string name, object value)
        {
            DbParameter parm = _Factory.CreateParameter();
            parm.ParameterName = name;
            parm.Value = value;
            return Command.Parameters.Add(parm);
        }

        /// <summary>
        /// Creates a parameter and adds it to the Command object
        /// </summary>
        /// <param name="parameter">A parameter object</param>      
        public int AddParameter(DbParameter parameter)
        {
            return Command.Parameters.Add(parameter);
        }

        /// <summary>
        /// Creates a parameter and adds it to the Command object
        /// </summary>
        /// <param name="name">A parameter Name</param>
        /// <param name="Value">A parameter Value</param>
        /// <param name="dbType">A parameter data type</param>
        public int AddParameter(string name, object value, DbType dbtype)
        {
            DbParameter parm = _Factory.CreateParameter();
            parm.ParameterName = name;
            parm.Value = value;
            parm.DbType = dbtype;
            return Command.Parameters.Add(parm);
        }

        /// <summary>
        /// Creates a parameter and adds it to the Command object
        /// </summary>
        /// <param name="name">A parameter Name</param>
        /// <param name="Value">A parameter Value</param>
        /// <param name="dbType">A parameter data type</param>
        /// <param name="size">A prameter size in int</param>
        public int AddParameter(string name, object value, DbType dbtype, int size)
        {
            DbParameter parm = _Factory.CreateParameter();
            parm.ParameterName = name;
            parm.Value = value;
            parm.DbType = dbtype;
            parm.Size = size;
            return Command.Parameters.Add(parm);
        }

        /// <summary>
        /// Creates a parameter and adds it to the Command object
        /// </summary>
        /// <param name="name">A parameter Name</param>
        /// <param name="Value">A parameter Value</param>
        /// <param name="dbType">A parameter data type</param>
        /// <param name="Direction">A prameter Direction</param>
        public int AddParameter(string name, object value, DbType dbtype, ParameterDirection direction)
        {
            DbParameter parm = _Factory.CreateParameter();
            parm.ParameterName = name;
            parm.Value = value;
            parm.DbType = dbtype;
            parm.Direction = direction;
            return Command.Parameters.Add(parm);
        }

        /// <summary>
        /// Creates a parameter and adds it to the Command object
        /// </summary>
        /// <param name="name">A parameter Name</param>
        /// <param name="Value">A parameter Value</param>
        /// <param name="dbType">A parameter data type</param>
        /// <param name="size">A prameter size in int</param>
        /// <param name="Direction">A prameter Direction</param>
        public int AddParameter(string name, object value, DbType dbtype, int size, ParameterDirection direction)
        {
            DbParameter parm = _Factory.CreateParameter();
            parm.ParameterName = name;
            parm.Value = value;
            parm.DbType = dbtype;
            parm.Size = size;
            parm.Direction = direction;
            return Command.Parameters.Add(parm);
        }

        #endregion

        #region "DB Transactions"

        /// <summary>
        /// Starts a transaction for the Command object
        /// </summary>
        private void BeginTransaction()
        {
            if (Connection.State.Equals(ConnectionState.Closed))
            {
                Connection.Open();
            }
            Command.Transaction = Connection.BeginTransaction();
        }

        /// <summary>
        /// Commits a transaction for the Command object
        /// </summary>
        private void CommitTransaction()
        {
            Command.Transaction.Commit();
            Connection.Close();
        }

        /// <summary>
        /// Rolls back the transaction for the Command object
        /// </summary>
        private void RollbackTransaction()
        {
            Command.Transaction.Rollback();
            Connection.Close();
        }

        #endregion

        #region "Execute DB Functions"

        /// <summary>
        /// Executes a statement that does not return a result set, such as an INSERT, UPDATE, DELETE, or a data definition statement
        /// </summary>
        /// <param name="query">The query, either SQL or Procedures</param>
        /// <param name="Commandtype">The Command type, text, storedprocedure, or tabledirect</param>
        /// <param name="Connectionstate">The Connection state</param>
        /// <returns>An integer value</returns>
        public int ExecuteNonQuery(string commandText, CommandType commandType)
        {
            Command.CommandText = commandText;
            Command.CommandType = commandType;
            int i = -1;

            try
            {
                if (Connection.State.Equals(ConnectionState.Closed))
                {
                    Connection.Open();
                }

                //BeginTransaction();

                i = Command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                //RollbackTransaction();
                throw (ex);
            }
            finally
            {
                //CommitTransaction();
                Command.Parameters.Clear();

                if (Connection.State.Equals(ConnectionState.Open))
                {
                    Connection.Close();
                    Connection.Dispose();
                }
            }

            return i;
        }

        /// <summary>
        /// Executes a statement that returns a single value.
        /// If this method is called on a query that returns multiple rows and columns, only the first column of the first row is returned.
        /// </summary>
        /// <param name="query">The query, either SQL or Procedures</param>
        /// <param name="Commandtype">The Command type, text, storedprocedure, or tabledirect</param>
        /// <param name="Connectionstate">The Connection state</param>
        /// <returns>An object that holds the return value(s) from the query</returns>
        public object ExecuteScaler(string commandText, CommandType commandType)
        {
            Command.CommandText = commandText;
            Command.CommandType = commandType;
            object obj = null;
            try
            {
                if (Connection.State.Equals(ConnectionState.Closed))
                {
                    Connection.Open();
                }

                BeginTransaction();
                obj = Command.ExecuteScalar();
            }
            catch (Exception ex)
            {
                RollbackTransaction();
                throw (ex);
            }
            finally
            {
                CommitTransaction();
                Command.Parameters.Clear();

                if (Connection.State.Equals(ConnectionState.Open))
                {
                    Connection.Close();
                    Connection.Dispose();
                    Command.Dispose();
                }
            }

            return obj;
        }

        /// <summary>
        /// Executes a SQL statement that returns a result set.
        /// </summary>
        /// <param name="query">The query, either SQL or Procedures</param>
        /// <param name="Commandtype">The Command type, text, storedprocedure, or tabledirect</param>
        /// <param name="Connectionstate">The Connection state</param>
        /// <returns>A datareader object</returns>
        public DbDataReader ExecuteReader(string query, CommandType Commandtype)
        {
            //this.CreateConnection();
            Command.CommandText = query;
            Command.CommandType = Commandtype;
            DbDataReader reader = null;
            try
            {
                if (Connection.State.Equals(ConnectionState.Closed))
                {
                    Connection.Open();
                }
                reader = Command.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            finally
            {
                Command.Parameters.Clear();
            }

            return reader;
        }

        /// <summary>
        /// Generates a dataset
        /// </summary>
        /// <param name="query">The query, either SQL or Procedures</param>
        /// <param name="Commandtype">The Command type, text, storedprocedure, or tabledirect</param>
        /// <param name="Connectionstate">The Connection state</param>
        /// <returns>A dataset containing data from the database</returns>
        public DataSet GetDataSet(string query, CommandType Commandtype)
        {
            DbDataAdapter adapter = _Factory.CreateDataAdapter();
            Command.CommandText = query;
            Command.CommandType = Commandtype;
            adapter.SelectCommand = Command;
            DataSet ds = new DataSet();
            try
            {
                adapter.Fill(ds);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                Command.Parameters.Clear();

                if (Connection.State.Equals(ConnectionState.Open))
                {
                    Connection.Close();
                    Connection.Dispose();
                    Command.Dispose();
                }
            }
            return ds;
        }

        /// <summary>
        /// Generates a dataset
        /// </summary>
        /// <param name="query">The query, either SQL or Procedures</param>
        /// <param name="Commandtype">The Command type, text, storedprocedure, or tabledirect</param>
        /// <param name="Connectionstate">The Connection state</param>
        /// <returns>A dataset containing data from the database</returns>
        public DataSet GetDataSet(string query, CommandType Commandtype, string tableName)
        {
            DbDataAdapter adapter = _Factory.CreateDataAdapter();
            Command.CommandText = query;
            Command.CommandType = Commandtype;
            adapter.SelectCommand = Command;
            DataSet ds = new DataSet();
            try
            {
                adapter.Fill(ds, tableName);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                Command.Parameters.Clear();

                if (Connection.State.Equals(ConnectionState.Open))
                {
                    Connection.Close();
                    Connection.Dispose();
                    Command.Dispose();
                }
            }
            return ds;
        }

        #endregion

        #endregion
    }
}

My Sql connectivity

mysql commandprompt

Step1 : Open CMD
Step2 : Paste the command --> cd "Program Files\MySQL\MySQL Server 5.6\bin\"
Step3 : Type --> mysql.exe
Step4 : Create database test
etc...

connectivity :

in helper class

public static string GetConnectionString()
{
            string connStr = "server=localhost;Database=test;Uid=root;pwd=;";
            return connStr;
}

private void LoadData()
{
        string strconn = Helper.GetConnectionString();
        MySqlConnection _dbconn = new MySqlConnection(strconn);
        _dbconn.Open();
        try
        {
            MySqlCommand cmd = _dbconn.CreateCommand();
            cmd.CommandText = "select * from employee";
            MySqlDataAdapter adap =new MySqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            adap.Fill(ds);
            GridView1.DataSource = ds.Tables[0].DefaultView;
            GridView1.DataBind();
        }
        catch(Exception)
        {}
        finally
        {
            if(_dbconn.State == ConnectionState.Open)
            {
                _dbconn.Close();
            }
        }   
}