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; }
public static void UpdateJobAudit(JobAudit job) { try { ExecuteNonQuery("usp_Update_JobAudit", job, false, true); } catch (Exception ex) { Logger.LogException(ex); } }
public static void InsertJobAudit(JobAudit job) { try { ExecuteNonQuery("usp_Insert_JobAudit", job, true); } catch (Exception ex) { Logger.LogException(ex); } }
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); } }
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); } }
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)); }