using System; using System.Collections.Generic; using Dapper; using DataModel.Helpers; using DataModel.Models; using Oracle.ManagedDataAccess.Client; namespace DataModel.Process { /// /// JDE business units tracking functionality for JDE interface /// public partial class JDE { /// /// Fetches updated branches /// /// Timestamp of last updated record already imported /// Streaming updated branches public static IEnumerable GetBranches(DateTime? lastUpdateDT = null) { using (OracleConnection connection = GetConnection()) { var results = lastUpdateDT.HasValue ? connection.Query(queries["SQL_GET_BUSINESS_UNITS_FILTERED"], new { typeCode = "BP", dateUpdated = lastUpdateDT.Value.ToJDEDate(), timeUpdated = lastUpdateDT.Value.ToJDETime() }, buffered: false, commandTimeout: Config.QueryTimeout) : connection.Query(queries["SQL_GET_BUSINESS_UNITS"], new { typeCode = "BP" }, buffered: false, commandTimeout: Config.QueryTimeout); foreach (var result in results) { yield return result; } } } /// /// Fetches updated profit centers /// /// Timestamp of last updated record already imported /// Streaming updated profit centers public static IEnumerable GetProfitCenters(DateTime? lastUpdateDT = null) { using (OracleConnection connection = GetConnection()) { var results = lastUpdateDT.HasValue ? connection.Query(queries["SQL_GET_BUSINESS_UNITS_FILTERED"], new { typeCode = "I3", dateUpdated = lastUpdateDT.Value.ToJDEDate(), timeUpdated = lastUpdateDT.Value.ToJDETime() }, buffered: false, commandTimeout: Config.QueryTimeout) : connection.Query(queries["SQL_GET_BUSINESS_UNITS"], new { typeCode = "I3" }, buffered: false, commandTimeout: Config.QueryTimeout); foreach (var result in results) { yield return result; } } } /// /// Fetches updated work centers /// /// Timestamp of last updated record already imported /// Streaming updated work centers public static IEnumerable GetWorkCenters(DateTime? lastUpdateDT = null) { using (OracleConnection connection = GetConnection()) { var results = lastUpdateDT.HasValue ? connection.Query(queries["SQL_GET_BUSINESS_UNITS_FILTERED"], new { typeCode = "WC", dateUpdated = lastUpdateDT.Value.ToJDEDate(), timeUpdated = lastUpdateDT.Value.ToJDETime() }, buffered: false, commandTimeout: Config.QueryTimeout) : connection.Query(queries["SQL_GET_BUSINESS_UNITS"], new { typeCode = "WC" }, buffered: false, commandTimeout: Config.QueryTimeout); foreach (var result in results) { yield return result; } } } } }