예제 #1
0
        /// <summary>
        /// Upload the data for a specific day.
        /// </summary>
        /// <param name="date"></param>
        private void Upload(DateTime date)
        {
            AdminUploadProcessLogVo processLogVo = new AdminUploadProcessLogVo();
            bool isSnapshotUpdated = false;
            bool isHistoryUpdated  = false;
            bool isXmlCreated      = false;

            processLogVo.CreatedBy  = this.currentUserId;
            processLogVo.AssetClass = assetGroupType.ToString();
            processLogVo.ProcessId  = processId = productPriceUploadLogBo.CreateProcessLog(processLogVo);

            isXmlCreated = this.GetDataAndCreateXML(date);

            if (isXmlCreated)
            {
                processLogVo.IsXMLCreated = true;
                //productPriceUploadLogBo.UpdateProcessLog(processLogVo);

                FillXmlValuesToTempTable();
                UpdateTempTableWithWERPCode();
                rejectedRecordsCount = MoveInvalidRecords();
                updatedSnapshotCount = UpdateSnapshotTable();


                if (updatedSnapshotCount >= 0)
                {
                    isSnapshotUpdated = true;
                    processLogVo.IsInsertedToSnapshot = true;
                    processLogVo.NoOfRecordsRejected  = rejectedRecordsCount;
                    processLogVo.NoOfSnapshotsUpdated = updatedSnapshotCount;
                    //productPriceUploadLogBo.UpdateProcessLog(processLogVo);
                }
                if (isSnapshotUpdated)
                {
                    isHistoryUpdated        = false;
                    updatedHistoryRowsCount = UpdateHistoryTable();
                    if (updatedHistoryRowsCount > 0)
                    {
                        isHistoryUpdated = true;
                        processLogVo.IsInsertedToHistory  = true;
                        processLogVo.NoOfRecordsToHistory = updatedHistoryRowsCount;
                        processLogVo.EndTime = DateTime.Now;
                    }
                }
            }
            productPriceUploadLogBo.UpdateProcessLog(processLogVo);
            UpdateStatusMessage(date, isXmlCreated, isSnapshotUpdated, isHistoryUpdated);
        }
        public int MoveRejectedRecordsFromTemp(int processId, UploadType uploadType, AssetGroupType assetGroupType, int createdBy)
        {
            Database  db;
            DbCommand updateCmd;
            int       affectedRows = 0;

            try
            {
                db        = DatabaseFactory.CreateDatabase("wealtherp");
                updateCmd = db.GetStoredProcCommand("SP_ProcessPMTUploadReject");

                db.AddInParameter(updateCmd, "@ProcessId", DbType.Int32, processId);
                db.AddInParameter(updateCmd, "@UploadType", DbType.String, uploadType.ToString());
                db.AddInParameter(updateCmd, "@AssetGroup", DbType.String, assetGroupType.ToString());
                db.AddInParameter(updateCmd, "@CreatedBy", DbType.Int32, createdBy);
                db.AddOutParameter(updateCmd, "@TotalRejects", DbType.Int32, 10);

                db.ExecuteNonQuery(updateCmd);
                affectedRows = Convert.ToInt32(db.GetParameterValue(updateCmd, "@TotalRejects"));
            }
            catch (BaseApplicationException Ex)
            {
                throw Ex;
            }
            catch (Exception Ex)
            {
                BaseApplicationException exBase       = new BaseApplicationException(Ex.Message, Ex);
                NameValueCollection      FunctionInfo = new NameValueCollection();

                FunctionInfo.Add("MoveRejectedRecordsFromTemp", "UploadRejectsDao.cs:MoveRejectedRecordsFromTemp()");

                object[] objects = new object[4];
                objects[0] = processId;
                objects[1] = uploadType;
                objects[2] = assetGroupType;
                objects[3] = createdBy;

                FunctionInfo = exBase.AddObject(FunctionInfo, objects);
                exBase.AdditionalInformation = FunctionInfo;
                ExceptionManager.Publish(exBase);
                throw exBase;
            }

            return(affectedRows);
        }