public void ProcessDepartments(JobAudit job)
        {
            try
            {
                _job           = job;
                _job.JobStatus = BOFileStatus.Processing;
                JobAuditDAL.UpdateJobAudit(_job);

                DateTime start = DateTime.Now;

                List <byte[]> files = CompressHelper.DeCompress(_job.FilePath);

                int totalItems = 0;
                List <Department> fromClient = ProcessDepartmentsFile(job.RetailerId, files.FirstOrDefault(), out totalItems);
                List <Department> fromDB     = DeptDAL.GetAllDepartments(job.RetailerId);

                UpdateDB(fromClient, fromDB);

                _job.ItemsProcessed = totalItems;
                _job.ProcessTime    = (int)DateTime.Now.Subtract(start).TotalSeconds;
                _job.JobStatus      = BOFileStatus.Done;
                JobAuditDAL.UpdateJobAudit(_job);
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
            }
        }
        public static void ProcessJobs(int retailerId)
        {
            Trace.WriteLine("Checking for available jobs - " + retailerId);
            List <JobAudit> jobs = JobAuditDAL.GetNewJobAudits(retailerId);

            if (jobs == null || jobs.Count == 0)
            {
                Trace.WriteLine("No Jobs Waiting");
                return;
            }

            Trace.WriteLine(jobs.Count + " jobs found");

            DepartmentProcessor  deptProcessor  = new DepartmentProcessor();
            ItemProcessor        itmProcessor   = new ItemProcessor();
            TransactionProcessor transProcessor = new TransactionProcessor();

            while (jobs != null && jobs.Count > 0)
            {
                JobAudit job = jobs.First();

                if (!BOFilesHelper.Exists(job.FilePath))
                {
                    Trace.WriteLine("Job Not Found - " + job.Id);
                    job.JobStatus = BOFileStatus.FileNotFound;
                    JobAuditDAL.UpdateJobAudit(job);
                    jobs.Remove(job);
                    continue;
                }

                Trace.WriteLine(job.FileType + " Job Found" + "(" + job.Id + ")");

                switch (job.FileType)
                {
                case InputFileType.Items:
                    itmProcessor.ProcessItems(job);
                    break;

                case InputFileType.Departments:
                    deptProcessor.ProcessDepartments(job);
                    break;

                case InputFileType.Transactions:
                    transProcessor.ProcessTransactions(job);
                    break;

                default:
                    break;
                }

                Trace.WriteLine("Job Processed");

                jobs = JobAuditDAL.GetNewJobAudits(retailerId);
            }
            deptProcessor  = null;
            itmProcessor   = null;
            transProcessor = null;
        }
Beispiel #3
0
 public static void UpdateJobAudit(JobAudit job)
 {
     try
     {
         ExecuteNonQuery("usp_Update_JobAudit", job, false, true);
     }
     catch (Exception ex)
     {
         Logger.LogException(ex);
     }
 }
Beispiel #4
0
 public static void InsertJobAudit(JobAudit job)
 {
     try
     {
         ExecuteNonQuery("usp_Insert_JobAudit", job, true);
     }
     catch (Exception ex)
     {
         Logger.LogException(ex);
     }
 }
Beispiel #5
0
 public static void AddBOFile(int retailerId, BOFileType fileType, string filePath)
 {
     try
     {
         JobAudit job = new JobAudit {
             RetailerId = retailerId, FileType = (InputFileType)fileType, FilePath = filePath, JobStatus = BOFileStatus.NotUploaded
         };
         JobAuditDAL.InsertJobAudit(job);
     }
     catch (Exception ex)
     {
         Logger.LogException(ex);
     }
 }
        public static Item ToDALItem(this ItemFixed item, int retailerId, JobAudit job, DataErrorDAL dataErrorDAL)
        {
            if (item == null)
            {
                return(null);
            }
            try
            {
                string sDepIp = item.DepartmentID.RemoveTrailComma();
                int    depId  = 0;
                if (!string.IsNullOrEmpty(sDepIp))
                {
                    depId = Convert.ToInt32(sDepIp);
                }

                Item result = new Item
                {
                    RetailerId       = retailerId,
                    SKU              = item.ItemID.ToLong(),
                    Description      = item.ReceiptDescription.RemoveTrailCommaAndSanitize(),
                    DepartmentId     = item.DepartmentID.ToNullableInt(),
                    PriceGroup       = item.PriceGroupId.ToInt(),
                    ProductGroup     = item.MixMatchIdFiveDigit.ToInt(),
                    Category7        = item.FoodStampFlag.ToBool(),
                    Category8        = item.NoneMerchandiseID.ToBool(),
                    Category9        = item.StoreCouponFlag.ToBool(),
                    Category10       = item.WICFlag.ToBool(),
                    Size             = item.Size.RemoveTrailComma(),
                    Unit             = item.Unit.RemoveTrailComma(),
                    CurrentUnitPrice = item.CenterPrice.ToDouble(),
                    QtyPrice         = item.RetailPrice.ToDouble(),
                    QtyBreak         = item.UnitQuantity.ToInt()
                };

                return(result);
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
                DataError dataError = new DataError {
                    RetailerId = retailerId, Source = InputFileType.Items, ElementId = item.ItemID.ToLong(), Note = "Items file parse error! Row is wrongly formatted!"
                };
                dataErrorDAL.InsertDataError(dataError);
                job.IncrementError(1);
                return(null);
            }
        }
Beispiel #7
0
        public int Save(JobAudit _object)
        {
            int _returnValue = base.Save <JobAudit>("spAddEditJobAudit", _object);

            return(_returnValue);
        }
        public bool ProcessTransactions(JobAudit job)
        {
            try
            {
                int totalItems = 0;
                _job           = job;
                _job.JobStatus = BOFileStatus.Processing;
                JobAuditDAL.UpdateJobAudit(_job);

                DateTime startTime = DateTime.Now;

                List <byte[]> files = CompressHelper.DeCompress(_job.FilePath);

                foreach (byte[] file in files)
                {
                    Transactions receivedTransactions = file.Deserialize <Transactions>();

                    if (receivedTransactions == null || receivedTransactions.SaleTransactions == null || receivedTransactions.SaleTransactions.Count == 0)
                    {
                        continue;
                    }

                    foreach (SalesTransaction trans in receivedTransactions.SaleTransactions)
                    {
                        if (trans.TransactionDetails == null)
                        {
                            continue;
                        }

                        foreach (SalesTransactionDetail item in trans.TransactionDetails)
                        {
                            totalItems++;

                            Transaction transaction = item.ToDALTransaction(job.RetailerId, trans);

                            bool transactionExists = TransDAL.TransactionExists(transaction);

                            if (transaction == null || transactionExists)
                            {
                                continue;
                            }

                            int errorCount = TransDAL.InsertTransaction(transaction);

                            _job.ErrorCount += errorCount;
                            _job.IncrementNew(errorCount);
                        }
                    }
                }

                _job.ItemsProcessed = totalItems;
                _job.ProcessTime    = (int)DateTime.Now.Subtract(startTime).TotalSeconds;
                _job.JobStatus      = BOFileStatus.Done;
                JobAuditDAL.UpdateJobAudit(_job);
                return(true);
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
                return(false);
            }
        }
Beispiel #9
0
        public ActionResult JobReviewProcess(string JobId, string UserId, string Email, int RejectionReason, int AdminUserId, string JobTitle, string CreatedDateDisplay)
        {
            TempData["BlockReason"]     = _objUsrBlockModel.GetList();
            TempData["CancelJobReason"] = _ObjJobModel.GetJobCancelList();
            string     _Message = "";
            Job        _objJob  = new Job();
            List <Job> _lstJobs = new List <Job>();

            _lstJobs = _ObjJobModel.GetList("*", "JobId = " + JobId);
            _objJob  = _lstJobs[0];

            List <Users> _lstUsers = new List <Users>();

            _lstUsers = _objUserModel.GetList("*", "UserId = " + UserId);
            _objUsers = _lstUsers[0];


            _objJob.JobId        = Convert.ToInt32(JobId);
            _objJob.CancelReason = RejectionReason;
            if (RejectionReason == 0)
            {
                _objJob.IsActive  = "Y";
                _objJob.JobStatus = JobLevel.Posted.ToString();
            }
            else
            {
                _objJob.IsActive  = "N";
                _objJob.JobStatus = JobLevel.Failed.ToString();
            }
            _objJob.WithTransaction   = "N";
            _objJob.GigSubscriptionId = 0;
            int Success = _ObjJobModel.Save(_objJob);

            if (Convert.ToInt32(Success) > 0)
            {
                JobAuditModel _JobAuditModel = new JobAuditModel();
                JobAudit      _JobAudit      = new JobAudit();

                _JobAudit.JobId        = Convert.ToInt32(Success);
                _JobAudit.UserId       = Convert.ToInt32(Session["UserId"]);
                _JobAudit.Status       = RejectionReason == 0 ? JobReviewStatus.Accepted.ToString() : JobReviewStatus.Rejected.ToString();
                _JobAudit.RejectReason = RejectionReason;
                if (_JobAuditModel.Save(_JobAudit) > 0)
                {
                    if (RejectionReason == 0)
                    {
                        MatchBxCommon.sendJobApproveRejectEmailToUser(1, JobTitle, CreatedDateDisplay, Email);
                    }
                    else
                    {
                        MatchBxCommon.sendJobApproveRejectEmailToUser(0, JobTitle, CreatedDateDisplay, Email);
                    }
                    _Message = "Success";
                }
                else
                {
                    _Message = "Failed";
                }
            }
            else
            {
                _Message = "Failed";
            }
            return(Json(_Message, JsonRequestBehavior.AllowGet));
        }