public override List <DTO.PriceListDTO> GetDataWithFilter(Hashtable filters, int pageSize, int pageIndex, string orderBy, string orderDirection, out int totalRows, out Library.DTO.Notification notification) { List <DTO.PriceListDTO> data = new List <DTO.PriceListDTO>(); notification = new Library.DTO.Notification() { Type = Library.DTO.NotificationType.Success }; totalRows = 0; string articleCode = string.Empty; string description = string.Empty; if (filters.ContainsKey("articleCode")) { articleCode = filters["articleCode"].ToString(); } if (filters.ContainsKey("description")) { description = filters["description"].ToString(); } try { using (PriceListEntities context = CreateContext()) { totalRows = context.PriceListMng_function_SearchPriceList(orderBy, orderDirection, articleCode, description).Count(); var result = context.PriceListMng_function_SearchPriceList(orderBy, orderDirection, articleCode, description); data = converter.DB2DTO_PriceListSearch(result.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList()); } return(data); } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; notification.DetailMessage.Add(ex.Message); if (ex.GetBaseException() != null) { notification.DetailMessage.Add(ex.GetBaseException().Message); } return(new List <DTO.PriceListDTO>()); } }