public HarvestLogInfoResult GetHarvestLogInfo(HarvestLogInfoRequest request)
        {
            var retVal = new HarvestLogInfoResult();
            var sql    = SqlStatements.HarvestLogInfo;

            sql = string.Format(sql,
                                string.IsNullOrEmpty(request.ArchiveRecordIdFilter) ? "" : " AND m.gsft_obj_id = :gsft_obj_id ",
                                request.ActionStatusFilterList.Any()
                    ? $" AND aktn_stts in ({string.Join(",", request.ActionStatusFilterList.Select(a => ((int) a).ToString()))}) "
                    : "",
                                "" /* no sort order yet */);


            using (var cn = AISConnection.GetConnection())
            {
                var dateRange = new QueryDateRange(request.DateRangeFilter);
                var cmd       = new OracleCommand(sql, cn);
                cmd.Parameters.Add("cur1", OracleDbType.Cursor, ParameterDirection.Output);
                cmd.Parameters.Add("cur2", OracleDbType.Cursor, ParameterDirection.Output);
                cmd.Parameters.AddWithValue("dateFrom", dateRange.From);
                cmd.Parameters.AddWithValue("dateTo", dateRange.To);
                cmd.Parameters.AddWithValue("recordFrom", request.PageSize * (request.Page - 1));
                cmd.Parameters.AddWithValue("recordTo", request.PageSize * request.Page);
                if (!string.IsNullOrEmpty(request.ArchiveRecordIdFilter))
                {
                    cmd.Parameters.AddWithValue("gsft_obj_id", request.ArchiveRecordIdFilter);
                }

                var ds = new DataSet();
                var da = new OracleDataAdapter(cmd);
                da.TableMappings.Add("Table", "ResultCount");
                da.TableMappings.Add("Table1", "LogInfo");
                da.Fill(ds);

                var dsDetail = new DataSet();
                if (ds.Tables["LogInfo"].Rows.Count > 0)
                {
                    var ids = string.Join(",", ds.Tables["LogInfo"].AsEnumerable().Select(t => (int)t.Field <double>("mttn_id")));
                    dsDetail = GetDataSetFromSql <DataSet>(string.Format(SqlStatements.HarvestLogInfoDetail, ids));
                }

                retVal.TotalResultSetSize = (int)(decimal)ds.Tables["ResultCount"].Rows[0][0];
                retVal.ResultSet          = (from r in ds.Tables["LogInfo"].AsEnumerable()
                                             select new HarvestLogInfo
                {
                    MutationId = (int)r.Field <double>("mttn_id"),
                    ArchiveRecordId = r.Field <double>("gsft_obj_id").ToString("F0"),
                    ArchiveRecordIdName = r.Field <string>("gsft_obj_kurz_nm"),
                    ActionName = r.Field <string>("aktn"),
                    CurrentStatus = (ActionStatus)r.Field <int>("aktn_stts"),
                    CreationDate = r.Field <DateTime>("erfsg_dt"),
                    LastChangeDate = r.Field <DateTime>("mttn_dt"),
                    NumberOfSyncRetries = r.Field <int>("sync_anz_vrsch"),
                    Details = GetLogDetails(dsDetail, (int)r.Field <double>("mttn_id"))
                }
                                             ).ToList();
            }

            return(retVal);
        }
Example #2
0
 /// <summary>
 ///     Gets the detailed log information for the data harvesting.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns>HarvestLogInfo.</returns>
 public HarvestLogInfoResult GetLogInfo(HarvestLogInfoRequest request)
 {
     return(dataProvider.GetHarvestLogInfo(request));
 }
Example #3
0
 /// <summary>
 ///     Gets the detailed log information for the data harvesting.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns>HarvestLogInfo.</returns>
 public HarvestLogInfoResult GetLogInfo(HarvestLogInfoRequest request)
 {
     return(statusAccess.GetLogInfo(request));
 }