private Models.AdvanceUnit GetAdvanceUnitList(int loanId)
        {
            UnitAccess unitAccess = new UnitAccess();
            List <BankLoanSystem.Models.Unit> unitList = new List <Models.Unit>();

            unitList = unitAccess.GetNotAdvancedUnitDetailsByLoanId(loanId);
            List <BankLoanSystem.Models.Unit> unitList2 = new List <Models.Unit>();

            Models.AdvanceUnit unitList1 = new Models.AdvanceUnit();
            unitList1.NotAdvanced = unitList;

            unitList1.Search = unitList2;

            return(unitList1);
        }
        /// <summary>
        /// Frontend page: Advance Unit(Search section)
        /// Title: get unit list which match with given search parameters
        /// Designed: Piyumi Perera
        /// User story:
        /// Developed: Piyumi Perera
        /// Date created: 02/27/2016
        /// </summary>
        /// <param name="identificationNumber"></param>
        /// <param name="year"></param>
        /// <param name="make"></param>
        /// <param name="vehicleModel"></param>
        /// <returns></returns>
        public ActionResult SearchUnit(string identificationNumber, string year, string make, string vehicleModel)
        {
            string loanCode;

            try
            {
                //convert session to string variable
                loanCode = Session["loanCode"].ToString();
            }
            catch (Exception)
            {
                //if exception occured return to login page
                return(RedirectToAction("UserLogin", "Login", new { lbl = "Due to inactivity your session has timed out, please log in again." }));
            }
            //get loan details for given loan code
            LoanSetupStep1 loanDetails = (new LoanSetupAccess()).GetLoanDetailsByLoanCode(loanCode);


            ViewBag.loanDetails = loanDetails;
            //convert Session["notAdvancedList"] to list object
            List <Models.Unit> unitList = (List <Models.Unit>)Session["notAdvancedList"];

            Models.AdvanceUnit unitListMain = new Models.AdvanceUnit();
            unitListMain.NotAdvanced = new List <Models.Unit>();
            //check atleast one parameter is not null or empty
            if (((!string.IsNullOrEmpty(identificationNumber)) || (!string.IsNullOrEmpty(year)) || (!string.IsNullOrEmpty(make)) || (!string.IsNullOrEmpty(vehicleModel))))
            {
                //search through list elements
                Search sc = new Search();
                //get result list of search
                unitListMain.Search = sc.GetSearchResultsList(unitList, identificationNumber.Trim().ToLower(), year.Trim().ToLower(), make.Trim().ToLower(), vehicleModel.Trim().ToLower());
                //return result list in to partial view
                return(PartialView(unitListMain));
            }
            else
            {
                //create empty list if all search parameters are null or empty
                unitListMain.Search = new List <Models.Unit>();
                //return list to partial view
                return(PartialView(unitListMain));
            }
        }
        private Models.AdvanceUnit GetAdvanceUnitList(int loanId)
        {
            UnitAccess unitAccess = new UnitAccess();
            List<BankLoanSystem.Models.Unit> unitList = new List<Models.Unit>();
            unitList = unitAccess.GetNotAdvancedUnitDetailsByLoanId(loanId);
            List<BankLoanSystem.Models.Unit> unitList2 = new List<Models.Unit>();
            Models.AdvanceUnit unitList1 = new Models.AdvanceUnit();
            unitList1.NotAdvanced = unitList;

            unitList1.Search = unitList2;
           
            return unitList1;
        }
        /// <summary>
        /// Frontend page: Advance Unit(Search section)
        /// Title: get unit list which match with given search parameters
        /// Designed: Piyumi Perera
        /// User story:
        /// Developed: Piyumi Perera
        /// Date created: 02/27/2016
        /// </summary>
        /// <param name="identificationNumber"></param>
        /// <param name="year"></param>
        /// <param name="make"></param>
        /// <param name="vehicleModel"></param>
        /// <returns></returns>
        public ActionResult SearchUnit(string identificationNumber, string year, string make, string vehicleModel)
        {
            string loanCode;
            try
            {
                //convert session to string variable
                loanCode = Session["loanCode"].ToString();
            }
            catch (Exception)
            {
                //if exception occured return to login page
                return RedirectToAction("UserLogin", "Login", new { lbl = "Due to inactivity your session has timed out, please log in again." });
            }
            //get loan details for given loan code
            LoanSetupStep1 loanDetails = (new LoanSetupAccess()).GetLoanDetailsByLoanCode(loanCode);
            

            ViewBag.loanDetails = loanDetails;
            //convert Session["notAdvancedList"] to list object
            List<Models.Unit> unitList = (List<Models.Unit>)Session["notAdvancedList"];
            Models.AdvanceUnit unitListMain = new Models.AdvanceUnit();
            unitListMain.NotAdvanced = new List<Models.Unit>();
            //check atleast one parameter is not null or empty
            if (((!string.IsNullOrEmpty(identificationNumber)) || (!string.IsNullOrEmpty(year)) || (!string.IsNullOrEmpty(make)) || (!string.IsNullOrEmpty(vehicleModel))))
            {
                //search through list elements
                Search sc = new Search();
                //get result list of search
                unitListMain.Search = sc.GetSearchResultsList(unitList, identificationNumber.Trim().ToLower(), year.Trim().ToLower(), make.Trim().ToLower(), vehicleModel.Trim().ToLower());
                //return result list in to partial view
                return PartialView(unitListMain);
            }
            else
            {
                //create empty list if all search parameters are null or empty
                unitListMain.Search = new List<Models.Unit>();
                //return list to partial view
                return PartialView(unitListMain);
            }
        }