/// <summary>
        /// When clicking on the search filters this controller is processed 
        /// </summary>
        /// <param name="searchObject"></param>
        /// <returns>the list of attributes according the search parameters</returns>
        public ActionResult AttributeResult(AttributeSearchObject searchObject)
        {
            //Initializing the UI model
            var attrList = new AttributeModel();
            attrList.PageSize = searchObject.PageSize;
            attrList.Page = searchObject.Page;

            try
            {
                //Searching for the list of desired attributes
                attrList.Attributes = new AttributeRepository().GetFilteredAttributes(searchObject.AttributeId, searchObject.Published, searchObject.Page - 1, searchObject.PageSize).ToList();
            }
            catch(Exception e)
            {
                LoggerFactory.GetLogger().Error(string.Format(msgUtil.GetMessage(MessageKey.LOG_GETATTRIBUTES_EXCEPTION), searchObject.AttributeId, searchObject.Published, searchObject.Page, searchObject.PageSize), e);
                return null;
            }

            //Setting the session variables to save the search query in case the user refreshes the page
            SetSearchSessionVariables(searchObject);

            return PartialView("_AttributeResult", attrList);
        }
 private void SetSearchSessionVariables(AttributeSearchObject searchObject)
 {
     Session["AttributeId"] = searchObject.AttributeId;
     Session["Published"] = searchObject.Published;
     Session["Page"] = searchObject.Page;
     Session["AttributePageSize"] = searchObject.PageSize;
 }