public void Start(ILog logger)
        {
            _logger = logger;
            ReaderWriter readerWriter = new ReaderWriter(ServiceName);

            _settings = readerWriter.Read();
            try
            {
                _serverConnector = new ServerConnector(_settings);

                var objectModifier = new ObjectModifier(_serverConnector);
                _objectUploader = new ObjectUploader(objectModifier, _serverConnector);

                _connectProvider = new ConnectProvider(_logger, _settings, _serverConnector);
                _connectProvider.Connect();

                _revitShareListener = new RevitShareListener(_objectUploader, _settings);

                _pipeServer = new PipeServer(_logger, readerWriter, _connectProvider, _objectUploader, _revitShareListener);
                _pipeServer.Start();

                _logger.InfoFormat("{0} Started Successfully", ServiceName);
            }
            catch (Exception)//in case of incorrect settings.xml
            {
                _pipeServer = new PipeServer(_logger, readerWriter, _connectProvider, _objectUploader, null);
                _pipeServer.Start();
            }
        }
        /// <summary>
        ///     Checks assertions depending on the concrete type of checker.
        /// </summary>
        public void CheckInterface()
        {
            var type   = typeof(TInstance);
            var result = (TInstance)ObjectBuilder.CreateInstance(type, Environment.TickCount, false);

            ObjectFiller.Fill(result, false);
            Check.That(result.Equals(result)).IsTrue();
            Check.That(result).IsOperatorEqualTo(result);
            Check.That(result).Is(e => e.IsOperatorEqual(result)).IsTrue();
            Check.That(result).Is(e => e.IsOperatorNotEqual(result)).IsFalse();

            Check.That(result.Equals((object)result)).IsTrue();

            Check.That(result.Equals(null)).IsFalse();

            Check.That(result.Equals("")).IsFalse();

            Check.That(result.Equals((object)default(TInstance))).IsFalse();

            Check.That(result.Equals(default(TInstance))).IsFalse();
            Check.That(result).Is(e => e.IsOperatorEqual(default(TInstance))).IsFalse();
            Check.That(result).Is(e => e.IsOperatorNotEqual(default(TInstance))).IsTrue();

            Check.That(result.GetHashCode()).IsEqualTo(result.GetHashCode());

            var clone = (TInstance)ObjectBuilder.MemberwiseClone(result);

            Check.That(result.Equals(clone)).IsTrue();
            Check.That(result).Is(e => e.IsOperatorEqual(clone)).IsTrue();
            Check.That(result).Is(e => e.IsOperatorNotEqual(clone)).IsFalse();

            Check.That(result.Equals((object)clone)).IsTrue();

            if (ObjectModifier.ChangeFirstProperty(clone))
            {
                Check.That(result.Equals(clone)).IsFalse();
                Check.That(result).Is(e => e.IsOperatorEqual(clone)).IsFalse();
                Check.That(result).Is(e => e.IsOperatorNotEqual(clone)).IsTrue();
                Check.That(result.GetHashCode()).IsNotEqualTo(clone.GetHashCode());
            }
        }
示例#3
0
        /// <summary>
        ///     Checks assertions depending on the concrete type of checker.
        /// </summary>
        public void CheckInterface()
        {
            var result = (TCloneable)ObjectBuilder.CreateInstance(typeof(TCloneable), Environment.TickCount, false);

            ObjectFiller.Fill(result, false);
            var clone = (TCloneable)result.Clone();

            // Clone should be equal
            Check.ThatObject(result).IsEqualTo(clone);
            // Check if we change a property on a side it is not changed on other side
            foreach (var info in typeof(TCloneable).GetProperties())
            {
                clone = (TCloneable)result.Clone();
                if (ObjectModifier.ChangeValue(result, info.Name, true))
                {
                    var type = result.GetType();
                    Check.ThatObject(info.GetValue(result)).IsNotEqualTo(
                        info.GetValue(clone),
                        $"After clone of {type}, property {info.Name} should not remain equal to the same property of original object");
                }
            }
        }
示例#4
0
        public void Start(ILog logger)
        {
            _logger = logger;
            try
            {
                _settings        = SettingsReader.Read();
                _serverConnector = new ServerConnector(_settings);

                _remoteStorage = new RemoteStorageThread(_serverConnector);
                _remoteStorage.Start();

                var objectModifier = new ObjectModifier(_serverConnector, _serverConnector.PersonId);
                var objectUploader = new ObjectUploader(_remoteStorage, objectModifier, _serverConnector);

                _revitShareListener = new RevitShareListener(objectUploader, _settings);

                _logger.InfoFormat("{0} Started Successfully", ServiceName);
            }
            catch (Exception ex)
            {
                _logger.Error("OnStart Failed", ex);
            }
        }