Example #1
0
        private void Process(IList <DistributorLog> scannableDistributorLogs)
        {
            string errorMessage = string.Empty;
            var    copyList     = new List <DistributorUpdateDTO>();
            var    renewalList  = new List <DistributorUpdateDTO>();
            var    updateDict   = new Dictionary <long, DistributorUpdateDTO>();

            _logger.Info("Start loading distributor logs");
            foreach (var distLog in scannableDistributorLogs)
            {
                _logger.Debug(string.Format(" Record found: {0}\t{1}\t{2}\t{3}", distLog.DISTNO, distLog.UPDATETYPE, distLog.UPDATEDTE, distLog.WAREHOUSE));

                // Not scanned &  Join
                if (DistUpdateType.Joins.Contains(distLog.UPDATETYPE))
                {
                    copyList.Add(new DistributorUpdateDTO(distLog.DISTNO, distLog));
                }
                // Skip & Renewal
                else if (DistUpdateType.Renewals.Contains(distLog.UPDATETYPE))
                {
                    renewalList.Add(new DistributorUpdateDTO(distLog.DISTNO, distLog));
                }
                // Else, update relevant info
                else
                {
                    if (updateDict.ContainsKey(distLog.DISTNO))
                    {
                        updateDict[distLog.DISTNO].Logs.Add(distLog);
                    }
                    else
                    {
                        updateDict[distLog.DISTNO] = new DistributorUpdateDTO(distLog.DISTNO, distLog);
                    }
                }
            }
            _logger.Info("End loading distributor logs");

            _logger.Info("***Start copying distributors from DSS");
            _distributorService.CopyDistributorFromDSS(copyList, out errorMessage);
            if (!string.IsNullOrEmpty(errorMessage))
            {
                _logger.WriteLog("Distributor Copy error message: " + errorMessage, LogLevel.Error);
            }
            _logger.Info("***End copying distributors from DSS");

            _logger.Info("***Start renewing distributor's expiry");
            _distributorService.RenewDistributorExpiry(renewalList, out errorMessage);
            if (!string.IsNullOrEmpty(errorMessage))
            {
                _logger.WriteLog("Distributor Renewal error message: " + errorMessage, LogLevel.Error);
            }
            _logger.Info("***End renewing distributor's expiry");

            _logger.Info("***Start updating distributor info");
            _distributorService.UpdateDistributorInfo(updateDict, out errorMessage);
            if (!string.IsNullOrEmpty(errorMessage))
            {
                _logger.WriteLog("Distributor Update error message: " + errorMessage, LogLevel.Error);
            }
            _logger.Info("***End updating distributor info");

            _logger.Info("***Deleting distributor logs");
            _distributorService.DeleteDistributorLogs(scannableDistributorLogs);
        }