/// <summary> /// CTOR /// </summary> /// <param name="task"></param> internal LocalDataviewManager(Task task) : base(task) { _localDataViewCommandFactory = new LocalDataViewCommandFactory(); _localDataViewCommandFactory.LocalDataviewManager = this; PositionCache = new PositionCache(); TaskViewsBuilder = new TaskViewsCollectionBuilder(); ClientIdGenerator = new IdGenerator(); DataviewSynchronizer = new DataviewSynchronizer() { DataviewManager = this }; LocalErrorHandlerManager = new LocalErrorHandlerManager() { DataviewManager = this }; UserGatewayRanges = new List <RangeData>(); UserRanges = new List <UserRange>(); UserGatewayLocates = new List <RangeData>(); UserLocates = new List <UserRange>(); }
/// <summary> /// !! /// </summary> /// <param name="command"></param> internal override ReturnResult Execute(IClientCommand command) { LocalDataViewCommandBase localDataViewCommandBase = _localDataViewCommandFactory.CreateLocalDataViewCommand(command); DataviewSynchronizer.InLocalDataviewCommand = true; ReturnResultBase returnResultBase = localDataViewCommandBase.Execute(); DataviewSynchronizer.InLocalDataviewCommand = false; DataviewSynchronizer.UpdateDBViewSize(); ReturnResult result = new ReturnResult(returnResultBase); if (!result.Success) { ErrorHandlingInfo errorHandlingInfo = LocalErrorHandlerManager.HandleResult(result); if (errorHandlingInfo != null && errorHandlingInfo.Quit) { Task.EndTaskOnError(result, false); } } return(result); }