public DataResultLogMessageList SearchLogMessages(string LogginConfigurationSectionName, DataFilterLogger dataFilter)
        {
            // Pagination Sample over Azute Table Storage Entities
            // Remember that method "Count" is not supported. Thus, I can't know the total number of pages

            //using Microsoft.WindowsAzure.Storage.Table.Queryable;

            //var table = this.TableClient().GetTableReference(dataFilter.LogTraceSourceSelected);

            //var query = (from log in table.CreateQuery<AzureTableStorageListenerEntity>()
            //             where log.PartitionKey == dataFilter.CreationDateFrom.ToString("yyyyMMdd")
            //             select log).Take(dataFilter.PageSize)
            //        .AsTableQuery<AzureTableStorageListenerEntity>();

            //var result = new List<LogMessageModel>();

            //var queryResult = query.ExecuteSegmented(dataFilter.NextContinuationToken);

            //return new DataResultLogMessageList()
            //{
            //    Page = dataFilter.Page,
            //    PageSize = dataFilter.PageSize,
            //    Data = queryResult.Results.Select(p => baseModel.DeserializeFromJson<LogMessageModel>(p.LogMessageJSON)).ToList(),
            //    TotalRows = 1000, //-> just a fake
            //    NextContinuationToken = queryResult.ContinuationToken,
            //    PreviousContinuationToken = dataFilter.NextContinuationToken
            //};

            CloudTable table = this.TableClient().GetTableReference(dataFilter.LogTraceSourceSelected);

            TableQuery<AzureTableStorageListenerEntity> rangeQuery = new TableQuery<AzureTableStorageListenerEntity>().Where(

                    TableQuery.GenerateFilterCondition("PartitionKey",
                                                        QueryComparisons.Equal,
                                                        dataFilter.CreationDate.ToString("yyyyMMdd"))
                    );

            List<AzureTableStorageListenerEntity> resultsList = table.ExecuteQuery<AzureTableStorageListenerEntity>(rangeQuery).ToList();

            int rowStartIndex = dataFilter.Page.Value * dataFilter.PageSize;
            int rowEndIndex = (int)(dataFilter.Page.Value * dataFilter.PageSize) + dataFilter.PageSize;

            return new DataResultLogMessageList()
            {
                Page = dataFilter.Page,
                PageSize = dataFilter.PageSize,
                Data = resultsList.Skip(rowStartIndex).Take(dataFilter.PageSize).Select(p => baseModel.DeserializeFromJson<LogMessageModel>(p.LogMessageJSON)).ToList(),
                TotalRows = resultsList.Count,
            };
        }
 public DataResultLogMessageList SearchLogMessages(string LogginConfigurationSectionName, DataFilterLogger dataFilter)
 {
     using (ILoggingProxy provider = DependencyFactory.Resolve<ILoggingProxy>())
     {
         DataResultLogMessageList resultSearch = provider.LoggingExceptionGetAll((DataFilterLogger)dataFilter);
         return new DataResultLogMessageList()
         {
             Data = resultSearch.Data,
             Page = resultSearch.Page,
             PageSize = resultSearch.PageSize,
             SortAscending = resultSearch.SortAscending,
             SortBy = resultSearch.SortBy,
             TotalPages = resultSearch.TotalPages,
             TotalRows = resultSearch.TotalRows
         };
     }
 }
        public DataResultLogMessageList LoggingExceptionGetAll(DataFilterLogger filter)
        {
            Database db = DatabaseFactory.CreateDatabase(Info.GetDatabaseName(ApplicationConfiguration.DatabaseNames.Logging));
            DbCommand cmd = db.GetStoredProcCommand("LoggingExceptionGetAll");
            db.AddInParameter(cmd, "@filter", DbType.Xml, baseModel.Serialize(filter).DocumentElement.OuterXml);
            XmlDocument xDoc = new XmlDocument();
            Func<IDataReader, LogMessageModel> customConstructor = (rdr) =>
            {
                xDoc.LoadXml((string)rdr["FormattedMessage"]);
                return new LogMessageModel(xDoc.DocumentElement.CreateNavigator());
            };

            DataResultLogMessageList pagedList = (DataResultLogMessageList)this.ExecuteReaderForPagedResult<LogMessageModel>(
                                                                        new DataResultLogMessageList()
                                                                        {
                                                                            PageSize = filter.PageSize,
                                                                            Page = filter.Page
                                                                        }, db, null, cmd, customConstructor);
            return pagedList;
        }
        public DataResultLogMessageList SearchLogMessages(string LogginConfigurationSectionName, DataFilterLogger dataFilter)
        {
            List<LogMessageModel> logMessageModelList = new List<LogMessageModel>();

            using (MemoryStream ms = new MemoryStream(this.GetAllDataMemoryStream(dataFilter.LogTraceListenerSelected, LogginConfigurationSectionName)))
            {
                logMessageModelList = this.GetAllDataDeserialized(ms);
                logMessageModelList = logMessageModelList.Where(r => r.Category == dataFilter.LogTraceSourceSelected).ToList();
            }

            int rowStartIndex = dataFilter.Page.Value * dataFilter.PageSize;
            int rowEndIndex = (int)(dataFilter.Page.Value * dataFilter.PageSize) + dataFilter.PageSize;

            return new DataResultLogMessageList()
            {
                Page = dataFilter.Page,
                PageSize = dataFilter.PageSize,
                Data = logMessageModelList.Skip(rowStartIndex).Take(rowEndIndex).ToList(),
                TotalRows = logMessageModelList.Count,
            };
        }
 public DataResultLogMessageList LoggingExceptionGetAll(DataFilterLogger filter)
 {
     return this._bl.LoggingExceptionGetAll(filter);
 }
 public DataResultLogMessageList SearchLogMessages(string LogginConfigurationSectionName, DataFilterLogger dataFilter)
 {
     return DependencyFactory.Resolve<ILoggingDAL>().LoggingExceptionGetAll(dataFilter);
 }