private static RetailAccountRow createRetailAccount(Rbr_Db pDb, InventoryCommandRequest pInventoryCommandRequest) { var _retailAccountRow = new RetailAccountRow(); _retailAccountRow.Customer_acct_id = pInventoryCommandRequest.CustomerAcctId; _retailAccountRow.Start_balance = pInventoryCommandRequest.Denomination; _retailAccountRow.Start_bonus_minutes = 0; _retailAccountRow.Current_balance = pInventoryCommandRequest.Denomination; _retailAccountRow.Current_bonus_minutes = 0; _retailAccountRow.AccountStatus = Status.Active; _retailAccountRow.Date_active = pInventoryCommandRequest.DateCreated; _retailAccountRow.Date_created = pInventoryCommandRequest.DateCreated; _retailAccountRow.Date_to_expire = pInventoryCommandRequest.DateToExpire; _retailAccountRow.Date_expired = Configuration.Instance.Db.SqlSmallDateTimeMaxValue; pDb.RetailAccountCollection.Insert(_retailAccountRow); TimokLogger.Instance.LogRbr(LogSeverity.Debug, "InventoryController.loadPhoneCardAndRetailAccount", string.Format("RetailAccountRow inserted, Id={0}", _retailAccountRow.Retail_acct_id)); return(_retailAccountRow); }
private static void executeExport(Rbr_Db pDb, BackgroundWorker pBackgroundWorker, DoWorkEventArgs pEvtArg, InventoryCommandRequest pInventoryCommandRequest) { int _count = 0; foreach (var _batch in pInventoryCommandRequest.Batches) { pBackgroundWorker.ReportStatus("Start exporting " + pInventoryCommandRequest.InventoryCommand + " command on Batch: [id=" + _batch.BatchId + "] [CardCount=" + _batch.BatchSize + "]"); if (pBackgroundWorker.CancellationPending) { pEvtArg.Cancel = true; return; } int[] _retailAcctIds = pDb.PhoneCardCollection.Export(InventoryStatus.Loaded, _batch.FirstSerial, _batch.LastSerial); var _batchRow = MapToBatchRow(_batch); pDb.BatchCollection.Update(_batchRow); //TODO: !!! ResellerAgentId - N/A FOR NOW //TODO: !!! SalesRepAcctId - N/A FOR NOW logInventoryHistory(pDb, pInventoryCommandRequest.Person, DateTime.Now, pInventoryCommandRequest.ServiceId, _batch.Denomination, _batch.BatchId, _batch.BatchSize, pInventoryCommandRequest.InventoryCommand, pInventoryCommandRequest.CustomerAcctId, 0, 0); pBackgroundWorker.ReportProgress(++_count * 100 / pInventoryCommandRequest.Batches.Length); pBackgroundWorker.ReportStatus("Finished executing " + pInventoryCommandRequest.InventoryCommand + " command on Batch: [id=" + _batch.BatchId + "] [CardCount=" + _batch.BatchSize + "]"); } }
private static void executeCommand(Rbr_Db pDb, BackgroundWorker pBackgroundWorker, DoWorkEventArgs pEvtArg, InventoryCommandRequest pInventoryCommandRequest) { #region exec logic //RetAcct NO CHANGE //PoneCard status = Activeted, date_active = pInventoryCommandRequest.DateActive //PoneCard status = Deactivated, date_deactivated = pInventoryCommandRequest.DateDeactive //PoneCard status = Archived, date_deactivated = pInventoryCommandRequest.DateArchive #endregion exec logic int _count = 0; foreach (var _batch in pInventoryCommandRequest.Batches) { pBackgroundWorker.ReportStatus("Start executing " + pInventoryCommandRequest.InventoryCommand + " command on Batch: [id=" + _batch.BatchId + "] [CardCount=" + _batch.BatchSize + "]"); if (pBackgroundWorker.CancellationPending) { pEvtArg.Cancel = true; return; } switch (pInventoryCommandRequest.InventoryCommand) { case InventoryCommand.Activate: _batch.InventoryStatus = InventoryStatus.Activated; pDb.PhoneCardCollection.ActivateInventory(pInventoryCommandRequest.DateActive, _batch.FirstSerial, _batch.LastSerial); break; case InventoryCommand.Deactivate: _batch.InventoryStatus = InventoryStatus.Deactivated; pDb.PhoneCardCollection.DeactivateInventory(_batch.FirstSerial, _batch.LastSerial); break; case InventoryCommand.Archive: _batch.InventoryStatus = InventoryStatus.Archived; pDb.PhoneCardCollection.ArchiveInventory(_batch.FirstSerial, _batch.LastSerial); break; case InventoryCommand.Load: default: throw new ArgumentException("Unexpected InventoryCommand [" + pInventoryCommandRequest.InventoryCommand + "]"); } var _batchRow = MapToBatchRow(_batch); pDb.BatchCollection.Update(_batchRow); //TODO: !!! ResellerAgentId - N/A FOR NOW //TODO: !!! SalesRepAcctId - N/A FOR NOW logInventoryHistory(pDb, pInventoryCommandRequest.Person, DateTime.Now, pInventoryCommandRequest.ServiceId, _batch.Denomination, _batch.BatchId, _batch.BatchSize, pInventoryCommandRequest.InventoryCommand, pInventoryCommandRequest.CustomerAcctId, 0, 0); pBackgroundWorker.ReportProgress(++_count * 100 / pInventoryCommandRequest.Batches.Length); pBackgroundWorker.ReportStatus("Finished executing " + pInventoryCommandRequest.InventoryCommand + " command on Batch: [id=" + _batch.BatchId + "] [CardCount=" + _batch.BatchSize + "]"); } }
private static void loadPhoneCardAndRetailAccount(Rbr_Db pDb, long pSerial, long pPin, InventoryCommandRequest pInventoryCommandRequest) { //PoneCard status = Loaded | (Activeted if Activate on load) //RetAcct status = Active, date_active = pInventoryCommandRequest.DateCreated RetailAccountRow _retailAccountRow = createRetailAccount(pDb, pInventoryCommandRequest); var _phoneCardRow = new PhoneCardRow(); //TODO: !!! setup new dates here... if (pInventoryCommandRequest.ActivateOnLoad) { _phoneCardRow.InventoryStatus = InventoryStatus.Activated; _phoneCardRow.CardStatus = Status.Active; _phoneCardRow.Date_active = pInventoryCommandRequest.DateActive; } else { _phoneCardRow.InventoryStatus = InventoryStatus.Loaded; _phoneCardRow.CardStatus = Status.Pending; _phoneCardRow.IsDate_activeNull = true; } _phoneCardRow.Pin = pPin; _phoneCardRow.Retail_acct_id = _retailAccountRow.Retail_acct_id; _phoneCardRow.Serial_number = pSerial; _phoneCardRow.Service_id = pInventoryCommandRequest.ServiceId; _phoneCardRow.Date_loaded = pInventoryCommandRequest.DateCreated; _phoneCardRow.Date_to_expire = pInventoryCommandRequest.DateToExpire; _phoneCardRow.IsDate_deactivatedNull = true; _phoneCardRow.IsDate_archivedNull = true; pDb.PhoneCardCollection.Insert(_phoneCardRow); TimokLogger.Instance.LogRbr(LogSeverity.Debug, "InventoryController.loadPhoneCardAndRetailAccount", string.Format("PhoneCardRow inserted, Serial={0}", _phoneCardRow.Serial_number)); }
//--------------------------------- Privates ----------------------------------- private static void executeLoadCommand(Rbr_Db pDb, BackgroundWorker pBackgroundWorker, DoWorkEventArgs pEvtArg, InventoryCommandRequest pInventoryCommandRequest) { pBackgroundWorker.ReportStatus(string.Format("Loading {0} Batches", pInventoryCommandRequest.Batches)); foreach (var _batch in pInventoryCommandRequest.Batches) { string _batchFilePath = Configuration.Instance.Folders.GetInventoryBatchFilePath(_batch.ServiceId, _batch.Denomination, _batch.BatchId); pBackgroundWorker.ReportStatus("Loading Batch File: " + _batchFilePath); using (var _sr = new StreamReader(_batchFilePath)) { _batch.CustomerAcctId = pInventoryCommandRequest.CustomerAcctId; if (pInventoryCommandRequest.ActivateOnLoad) { _batch.InventoryStatus = InventoryStatus.Activated; } else { _batch.InventoryStatus = InventoryStatus.Loaded; } try { int _cardCount = 0; string _line; while ((_line = _sr.ReadLine()) != null) { //pBackgroundWorker.ReportStatus(string.Format("{0}", _line)); if (pBackgroundWorker.CancellationPending) { pBackgroundWorker.ReportStatus("Canceled"); pEvtArg.Cancel = true; return; } string[] _fields = _line.Split(FieldDelimiter); long _serial = long.Parse(_fields[0]); long _pin = long.Parse(_fields[1]); loadPhoneCardAndRetailAccount(pDb, _serial, _pin, pInventoryCommandRequest); pBackgroundWorker.ReportProgress(++_cardCount * 100 / _batch.BatchSize); } } catch (Exception _ex) { pBackgroundWorker.ReportStatus(string.Format("Exception:\r\n{0}", _ex)); pEvtArg.Cancel = true; return; } BatchRow _batchRow = MapToBatchRow(_batch); pBackgroundWorker.ReportStatus(string.Format("Mapped BatchId={0}", _batch.BatchId)); pBackgroundWorker.ReportStatus(string.Format("Updated BatchId={0}", _batch.BatchId)); pDb.BatchCollection.Update(_batchRow); logInventoryHistory(pDb, pInventoryCommandRequest.Person, DateTime.Now, pInventoryCommandRequest.ServiceId, _batch.Denomination, _batch.BatchId, _batch.BatchSize, InventoryCommand.Load, pInventoryCommandRequest.CustomerAcctId, 0, //TODO: !!! ResellerPartnerId - N/A FOR NOW 0 //TODO: !!! ResellerAgentId - N/A FOR NOW ); pBackgroundWorker.ReportStatus("Logged Inventory History"); if (pInventoryCommandRequest.ActivateOnLoad) { logInventoryHistory(pDb, pInventoryCommandRequest.Person, DateTime.Now.AddMilliseconds(11), //Just to make sure that time is different from prev History entry pInventoryCommandRequest.ServiceId, _batch.Denomination, _batch.BatchId, _batch.BatchSize, InventoryCommand.Activate, pInventoryCommandRequest.CustomerAcctId, 0, //TODO: !!! SalesRepAcctId - N/A FOR NOW 0 //TODO: !!! ResellerAgentId - N/A FOR NOW ); } pBackgroundWorker.ReportStatus("Finished Loading Batch File: " + _batchFilePath); } } }
public static RetailAccountRow CreateRetailAccount(InventoryCommandRequest pInventoryCommandRequest) { using (var _db = new Rbr_Db()) { return(createRetailAccount(_db, pInventoryCommandRequest)); } }