Beispiel #1
0
        public static int GetAribaExceptionSender(string primaryFileName, out string sender, out DateTime?receivedDate, out string sourceImage, out string originalFileName)   //  only if batch type is OPG-EMAIL, use this to get sender
        {
            sender           = "";
            originalFileName = "";
            sourceImage      = "";
            receivedDate     = null;
            try
            {
                using (var db = new Octacom_OICS_Entities())
                {
                    db.Database.CommandTimeout = 180;
                    var ret = db.GetAribaExceptionSender(primaryFileName).FirstOrDefault();
                    if (ret != null)
                    {
                        sender           = ret.Sender;
                        receivedDate     = ret.ReceivedDate;
                        originalFileName = ret.Filename;
                        sourceImage      = ret.SourceImage;
                    }
                }
            }
            catch (Exception ex)
            {
                OdissLogger.Error($"GetAribaExceptionSender error: {ex.ToString()}");
                return(-1);
            }

            return(1);
        }
Beispiel #2
0
        public static int GetDayExceptionList(DateTime finalizationTime, bool processDaysTillfinalizationTime, out List <GetAribaWaitingExceptionList_Result> processList)
        {//if processDaysTillfinalizationTime == true, it will process multiple dates from aribaExceptionsStartDate to finalizationTime, if not, only process one date: finalizationTime
            int year  = finalizationTime.Year;
            int month = finalizationTime.Month;
            int day   = finalizationTime.Day;

            DateTime exceptionStartDate;

            if (processDaysTillfinalizationTime)
            {
                exceptionStartDate = aribaExceptionsStartDate;
            }
            else
            {
                exceptionStartDate = finalizationTime; // only one day
            }
            try
            {
                using (var db = new Octacom_OICS_Entities())
                {
                    processList = db.GetAribaWaitingExceptionList(exceptionStartDate, finalizationTime).ToList();

                    return(1);
                }
            }
            catch (Exception ex)
            {
                OdissLogger.Error($"GetDayExceptionList from database error: {ex.ToString()}");
                processList = null;
                return(-1);
            }
        }
Beispiel #3
0
        public static int GetAribaExceptionBatchType(string primaryFileName, out string batchType, out DateTime?finalizationTime, out string processMessage)
        {
            batchType        = "";
            finalizationTime = null;
            processMessage   = "";

            try
            {
                using (var db = new Octacom_OICS_Entities())
                {
                    db.Database.CommandTimeout = 180;
                    var ret = db.GetAribaExceptionBatchType(primaryFileName).FirstOrDefault();
                    if (ret != null)
                    {
                        batchType        = ret.BatchType;
                        finalizationTime = ret.FinalizationTime;
                    }
                }
            }
            catch (Exception ex)
            {
                processMessage = $"GetAribaExceptionBatchType error: {ex.ToString()}";
                OdissLogger.Error(processMessage);
                return(-1);
            }

            return(1);
        }
Beispiel #4
0
        public static int ProcessAribaDayExceptionList(DateTime aDate, List <GetAribaWaitingExceptionList_Result> processList)
        {
            string filename, processMessage;

            foreach (var process1 in processList)
            {
                if (stopRequested)
                {
                    return(0);
                }

                filename = process1.PrimaryFileName;
                try
                {
                    int iret = ProcessPrimaryFile(process1.FinalizationTime.Value, process1.PrimaryFileName, out processMessage);

                    if (iret == 1) // if all right, then move files to backup folder
                    {
                        MoveFilesToBackupFolder(process1.FinalizationTime.Value, process1.PrimaryFileName);
                    }

                    // insert into AribaProcessedException table, so it wont pricess it next time
                    AribaProcessedException processed1 = new AribaProcessedException();
                    processed1.OICSConnectorProcessId = process1.OICSConnectorProcessId;
                    processed1.ProcessedDate          = DateTime.Now;
                    processed1.ServiceState           = iret;
                    processed1.ServiceDetails         = processMessage;

                    using (var db = new Octacom_OICS_Entities())
                    {
                        db.Entry(processed1).State = System.Data.Entity.EntityState.Added;
                        db.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    OdissLogger.Error($"Error occurred when process {filename}: {ex.ToString()}");
                }
            }

            OdissLogger.Info($"Ariba service processed {processList.Count} exception records.");

            return(1);
        }