private void InternalService_Dispositioning(object sender, DispositionEventArgs e) { if (Callback != null) { Callback.OnEvent(e); } }
void IDispositioningServiceInternal.Dispatch(int operationId, string emkResourceId) { lock (SyncRoot) { using (var entities = EntityFrameworkHelper.CreateContext <DispositioningEntities>(EdmxPath)) { bool exists = entities.DispResources.Any(_ => _.Operation_Id == operationId && _.EmkResourceId == emkResourceId); if (exists) { throw new InvalidOperationException(Properties.Resources.DispatchNotPossibleEntryAlreadyExists); } DispResourceData data = new DispResourceData(); data.Operation_Id = operationId; data.EmkResourceId = emkResourceId; data.Timestamp = DateTime.Now; entities.DispResources.AddObject(data); entities.SaveChanges(); } } DispositionEventArgs args = new DispositionEventArgs(operationId, emkResourceId, DispositionEventArgs.ActionType.Dispatch); OnDispositionEventArgs(args); }
/// <summary> /// Called by the service after a resource was dispatched or recalled. /// </summary> /// <param name="evt">The event data that describes the event.</param> public void OnEvent(DispositionEventArgs evt) { if (CurrentOperation == null || evt.OperationId != CurrentOperation.Id) { return; } if (evt.Action == DispositionEventArgs.ActionType.Dispatch) { ResourceItem resource = Resources.FirstOrDefault(x => x.EmkResourceItem.Id == evt.EmkResourceId); if (resource != null && !resource.IsDispatched) { resource.IsDispatched = true; OnPropertyChanged("Resources"); } } else if (evt.Action == DispositionEventArgs.ActionType.Recall) { ResourceItem resource = Resources.FirstOrDefault(x => x.EmkResourceItem.Id == evt.EmkResourceId); if (resource != null && resource.IsDispatched) { resource.IsDispatched = false; OnPropertyChanged("Resources"); } } }
void IDispositioningServiceInternal.Dispatch(int operationId, string emkResourceId) { lock (SyncRoot) { using (IUnitOfWork work = ServiceProvider.GetService <IDataContextFactory>().Get().Create()) { var repository = work.For <DispositionedResourceData>(); bool exists = repository.Query.Any(_ => _.OperationId == operationId && _.EmkResourceId == emkResourceId); if (exists) { throw new InvalidOperationException(Properties.Resources.DispatchNotPossibleEntryAlreadyExists); } DispositionedResourceData data = repository.Create(); data.OperationId = operationId; data.EmkResourceId = emkResourceId; data.Timestamp = DateTime.Now; repository.Insert(data); work.Commit(); } } DispositionEventArgs args = new DispositionEventArgs(operationId, emkResourceId, DispositionEventArgs.ActionType.Dispatch); OnDispositionEventArgs(args); }
private void OnDispositionEventArgs(DispositionEventArgs e) { var copy = Dispositioning; if (copy != null) { copy(this, e); } }
void IDispositioningServiceCallback.OnEvent(DispositionEventArgs args) { if (_operation.Id == args.OperationId) { switch (args.Action) { case DispositionEventArgs.ActionType.Dispatch: EmkResource emk = _emkResources.FirstOrDefault(x => x.IsActive && x.Id == args.EmkResourceId); Resources.Add(new ResourceViewModel(null, emk)); break; case DispositionEventArgs.ActionType.Recall: if (Resources.Any(x => x.EmkResourceItem.Id == args.EmkResourceId)) { Resources.Remove(Resources.First(x => x.EmkResourceItem.Id == args.EmkResourceId)); } break; } } }
void IDispositioningServiceInternal.Recall(int operationId, string emkResourceId) { lock (SyncRoot) { using (var entities = EntityFrameworkHelper.CreateContext <DispositioningEntities>(EdmxPath)) { DispResourceData exists = entities.DispResources.SingleOrDefault(_ => _.Operation_Id == operationId && _.EmkResourceId == emkResourceId); if (exists == null) { throw new InvalidOperationException(Properties.Resources.RecallNotPossibleEntryDoesNotExist); } entities.DispResources.DeleteObject(exists); entities.SaveChanges(); } } DispositionEventArgs args = new DispositionEventArgs(operationId, emkResourceId, DispositionEventArgs.ActionType.Recall); OnDispositionEventArgs(args); }
void IDispositioningServiceInternal.Recall(int operationId, string emkResourceId) { lock (SyncRoot) { using (IUnitOfWork work = ServiceProvider.GetService <IDataContextFactory>().Get().Create()) { var repository = work.For <DispositionedResourceData>(); DispositionedResourceData exists = repository.Query.SingleOrDefault(_ => _.OperationId == operationId && _.EmkResourceId == emkResourceId); if (exists == null) { throw new InvalidOperationException(Properties.Resources.RecallNotPossibleEntryDoesNotExist); } repository.Delete(exists); work.Commit(); } } DispositionEventArgs args = new DispositionEventArgs(operationId, emkResourceId, DispositionEventArgs.ActionType.Recall); OnDispositionEventArgs(args); }