public void Cancel(IDictionary<string, string> attributes, string comment, DateTime timestamp) { IScorpionDataProvider dataSession = null; try { string identifier = GetNewIdentifier(progressIdentifierSync); dataSession = DataProviderFactory.GetSession(); dataSession.BeginTransaction(); dataSession.InsertFulfillmentProgress(info.Identifier, identifier, timestamp, "Cancellation", string.Empty, comment, timestamp, SecurityManager.CurrentUser.Identity.Identifier); foreach (KeyValuePair<string, string> attribute in attributes) dataSession.InsertFulfillmentProgressAttribute(info.Identifier, identifier, attribute.Key, attribute.Value, SecurityManager.CurrentUser.Identity.Identifier); dataSession.SetOrderStatus(info.Identifier, "CANCELLED", comment, SecurityManager.CurrentUser.Identity.Identifier); dataSession.CommitTransaction(); info = dataSession.GetFulfillmentProcess(info.Identifier); } catch { dataSession.RollbackTransaction(); throw; } finally { if (dataSession != null) dataSession.Dispose(); } }
public override void Refresh() { IScorpionDataProvider dataSession = null; try { dataSession = DataProviderFactory.GetSession(); info = dataSession.GetFulfillmentProcess(info.Identifier); } catch { throw; } finally { if (dataSession != null) dataSession.Dispose(); } }
public void RegisterProgress(ref string identifier, string assignee, IDictionary<string, string> attributes, string comment, DateTime timestamp, string status, DateTime expectedCompletionTimestamp) { IScorpionDataProvider dataSession = null; try { dataSession = DataProviderFactory.GetSession(); dataSession.BeginTransaction(); if (string.IsNullOrEmpty(identifier)) identifier = GetNewIdentifier(progressIdentifierSync); else if (dataSession.OrderExists(identifier)) throw new OrderExists(); dataSession.InsertFulfillmentProgress(info.Identifier, identifier, timestamp, status, assignee, comment, expectedCompletionTimestamp, SecurityManager.CurrentUser.Identity.Identifier); foreach(KeyValuePair<string, string> attribute in attributes) dataSession.InsertFulfillmentProgressAttribute(info.Identifier, identifier, attribute.Key, attribute.Value, SecurityManager.CurrentUser.Identity.Identifier); dataSession.CommitTransaction(); info = dataSession.GetFulfillmentProcess(info.Identifier); } catch { dataSession.RollbackTransaction(); throw; } finally { if (dataSession != null) dataSession.Dispose(); } }
public OrderFulfillmentProcess(IFulfillmentProcessInfo info, IApplicationData<IScorpionDataProvider> dataProviderFactory, ISecurityManager securityManager) : base(dataProviderFactory, securityManager) { this.info = info; }