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); }
/// <summary> /// 获取(全记录)时间查询条件 /// </summary> /// <param name="dateRange"></param> /// <returns></returns> private ViewQueryInfo GetViewDateQuery(QueryDateRange dateRange) { var dateNow = DateTime.Now; var startDate = DateTime.Now; var endDate = dateNow; //if (dateRange == QueryDateRange.ThisWeek) // startDate = dateNow.AddDays(1 - Convert.ToInt32(dateNow.DayOfWeek.ToString("d"))); if (dateRange == QueryDateRange.ThisMonth) startDate = dateNow.AddDays(1 - dateNow.Day); if (dateRange == QueryDateRange.ThisQuarter) startDate = dateNow.AddMonths(0 - (dateNow.Month - 1) % 3).AddDays(1 - dateNow.Day); if (dateRange == QueryDateRange.ThisYear) startDate = new DateTime(dateNow.Year, 1, 1); if (dateRange == QueryDateRange.Customer) { FmCustomTime customTime = new FmCustomTime(); customTime.StartDate = CurQueryInfo.StartDate.HasValue ? CurQueryInfo.StartDate.Value : DateTime.Now; customTime.EndDate = CurQueryInfo.EndDate.HasValue ? CurQueryInfo.EndDate.Value : DateTime.Now; if (customTime.ShowDialog() == DialogResult.OK) { ViewQueryInfo queryInfo = new ViewQueryInfo(); startDate = customTime.StartDate; endDate = customTime.EndDate; } } return new ViewQueryInfo() { DateRange = dateRange, StartDate = startDate, EndDate = dateNow }; //return new ViewQueryGoodsInfo() { DateRange = dateRange, StartPurchaseDate = startDate, StartSaledDate = startDate, EndPurchaseDate = dateNow, EndSaledDate = dateNow }; }
public HarvestStatusInfo GetHarvestStatusInfo(QueryDateRange dataRange) { var retVal = new HarvestStatusInfo { NumberOfRecordsCurrentlySyncing = 0, NumberOfRecordsWaitingForSync = 0, NumberOfRecordsWithSyncFailure = 0, NumberOfRecordsWithSyncSuccess = 0 }; try { var ds = GetDataSetFromSql <DataSet>(SqlStatements.HarvestStatusInfo, new[] { new OracleParameter("fromDate", OracleDbType.Date) { Value = dataRange.From }, new OracleParameter("toDate", OracleDbType.Date) { Value = dataRange.To } }); foreach (DataRow row in ds.Tables[0].Rows) { switch ((int)row["aktn_stts"]) { case (int)ActionStatus.WaitingForSync: if (row["counttype"].ToString().ToLowerInvariant() == "total") { retVal.TotalNumberOfRecordsWaitingForSync = (int)(decimal)row["cnt"]; } else { retVal.NumberOfRecordsWaitingForSync = (int)(decimal)row["cnt"]; } break; case (int)ActionStatus.SyncInProgress: if (row["counttype"].ToString().ToLowerInvariant() == "total") { retVal.TotalNumberOfRecordsCurrentlySyncing = (int)(decimal)row["cnt"]; } else { retVal.NumberOfRecordsCurrentlySyncing = (int)(decimal)row["cnt"]; } break; case (int)ActionStatus.SyncCompleted: if (row["counttype"].ToString().ToLowerInvariant() == "total") { retVal.TotalNumberOfRecordsWithSyncSuccess = (int)(decimal)row["cnt"]; } else { retVal.NumberOfRecordsWithSyncSuccess = (int)(decimal)row["cnt"]; } break; case (int)ActionStatus.SyncFailed: if (row["counttype"].ToString().ToLowerInvariant() == "total") { retVal.TotalNumberOfRecordsWithSyncFailure = (int)(decimal)row["cnt"]; } else { retVal.NumberOfRecordsWithSyncFailure = (int)(decimal)row["cnt"]; } break; case (int)ActionStatus.SyncAborted: // Not relevant for us here break; } } } catch (Exception ex) { Log.Error(ex, ex.Message); retVal = new HarvestStatusInfo { NumberOfRecordsCurrentlySyncing = -1, NumberOfRecordsWaitingForSync = -1, NumberOfRecordsWithSyncFailure = -1, NumberOfRecordsWithSyncSuccess = -1 }; } return(retVal); }