Пример #1
0
 /// <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>();
 }
Пример #2
0
        /// <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);
        }