public override DTO.SearchFormData GetDataWithFilter(System.Collections.Hashtable filters, int pageSize, int pageIndex, string orderBy, string orderDirection, out int totalRows, out Library.DTO.Notification notification) { notification = new Library.DTO.Notification() { Type = Library.DTO.NotificationType.Success }; DTO.SearchFormData data = new DTO.SearchFormData(); data.Data = new List <DTO.FactoryPaymentSearchResult>(); data.SummaryData = new DTO.SummaryRow(); totalRows = 0; //try to get data try { using (FactoryPayment2MngEntities context = CreateContext()) { string Season = null; int? SupplierID = null; int UserID = -1; string ReceiptNo = null; string BankReceiptNo = null; string InvoiceNo = null; if (filters.ContainsKey("Season") && !string.IsNullOrEmpty(filters["Season"].ToString())) { Season = filters["Season"].ToString().Replace("'", "''"); } if (filters.ContainsKey("SupplierID") && !string.IsNullOrEmpty(filters["SupplierID"].ToString())) { SupplierID = Convert.ToInt32(filters["SupplierID"].ToString()); } if (filters.ContainsKey("UserID") && !string.IsNullOrEmpty(filters["UserID"].ToString())) { UserID = Convert.ToInt32(filters["UserID"].ToString()); } if (filters.ContainsKey("ReceiptNo") && !string.IsNullOrEmpty(filters["ReceiptNo"].ToString())) { ReceiptNo = filters["ReceiptNo"].ToString().Replace("'", "''"); } if (filters.ContainsKey("BankReceiptNo") && !string.IsNullOrEmpty(filters["BankReceiptNo"].ToString())) { BankReceiptNo = filters["BankReceiptNo"].ToString().Replace("'", "''"); } if (filters.ContainsKey("InvoiceNo") && !string.IsNullOrEmpty(filters["InvoiceNo"].ToString())) { InvoiceNo = filters["InvoiceNo"].ToString().Replace("'", "''"); } totalRows = context.FactoryPayment2Mng_function_SearchPayment(Season, SupplierID, UserID, ReceiptNo, BankReceiptNo, InvoiceNo, orderBy, orderDirection).Count(); var result = context.FactoryPayment2Mng_function_SearchPayment(Season, SupplierID, UserID, ReceiptNo, BankReceiptNo, InvoiceNo, orderBy, orderDirection); data.Data = converter.DB2DTO_FactoryPaymentSearchResultList(result.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList()); FactoryPayment2Mng_SummaryRow_View dbSummary = context.FactoryPayment2Mng_function_SearchPaymentSummary(Season, SupplierID, UserID, ReceiptNo, BankReceiptNo, InvoiceNo).FirstOrDefault(); if (dbSummary != null) { data.SummaryData.SumConfirmedAmount = dbSummary.SumConfirmedAmount.Value; data.SummaryData.SumDPAmount = dbSummary.SumDPAmount.Value; data.SummaryData.SumTotalAmount = dbSummary.SumTotalAmount.Value; } } } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; } return(data); }