Пример #1
0
        private void ConfigureWebApi(IAppBuilder appBuilder)
        {
            HttpConfiguration config = new HttpConfiguration();

            bool bound = ObjectEx.GetAndReplace(ref _boundTypes, true);

            if (bound == false)
            {
                _kernel.Bind <DefaultModelValidatorProviders>().ToConstant(new DefaultModelValidatorProviders(config.Services.GetServices(typeof(ModelValidatorProvider)).Cast <ModelValidatorProvider>()));
                _kernel.Bind <DefaultFilterProviders>().ToConstant(new DefaultFilterProviders(new[] { new NinjectFilterProvider(_kernel) }.AsEnumerable()));
            }

            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );
            var cors = new EnableCorsAttribute(origins: "*", headers: "*", methods: "*");

            config.EnableCors(cors);

            config.DependencyResolver = new Ninject.Web.WebApi.NinjectDependencyResolver(_kernel);

            Formatters.ForEach(config.Formatters.Add);

            config.Formatters.OfType <JsonMediaTypeFormatter>().ForEach(formatter =>
            {
                formatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                Converters.ForEach(formatter.SerializerSettings.Converters.Add);
            });

            appBuilder.UseWebApi(config);
        }
Пример #2
0
        private void UpdateDefinitions(Dictionary <string, SessionDefinition> currentDefinitions)
        {
            var previousDefinitions = ObjectEx.GetAndReplace(ref _definitions, currentDefinitions);

            if (previousDefinitions != null && previousDefinitions.Any())
            {
                var addedDefinitions = currentDefinitions.Where(kvp => previousDefinitions.ContainsKey(kvp.Key) == false ||
                                                                previousDefinitions[kvp.Key].CreatedAt != kvp.Value.CreatedAt)
                                       .Select(kvp => kvp.Value)
                                       .OrderBy(definition => definition.CreatedAt)
                                       .ToList();

                var removedDefinitions = previousDefinitions.Where(kvp => currentDefinitions.ContainsKey(kvp.Key) == false ||
                                                                   currentDefinitions[kvp.Key].CreatedAt != kvp.Value.CreatedAt)
                                         .Select(kvp => kvp.Value)
                                         .ToList();

                if (addedDefinitions.Any() || removedDefinitions.Any())
                {
                    DefinitionsChanged?.Invoke(this, CollectionChangedEventArgs <SessionDefinition> .Create(addedDefinitions, removedDefinitions));
                }
            }
            else if (currentDefinitions.Any())
            {
                DefinitionsChanged?.Invoke(this, CollectionChangedEventArgs <SessionDefinition> .CreateForAddedCollection(currentDefinitions.Values.OrderBy(d => d.CreatedAt)));
            }
        }
Пример #3
0
        public void Stop()
        {
            var subscription = ObjectEx.GetAndReplace(ref _subscription, null);

            subscription?.Dispose();

            State = ControlServiceState.Stopped;
        }
Пример #4
0
 private void Close()
 {
     ObjectEx.GetAndReplace(ref _deviceObserver, null);
     if (_deviceObserver != null)
     {
         _observers.Disconnect(_deviceObserver);
     }
 }
Пример #5
0
        public bool DisconnectDevice()
        {
            var hook = ObjectEx.GetAndReplace(ref _hook, null) as IDisposable;

            if (hook != null)
            {
                hook.Dispose();
            }
            return(true);
        }
Пример #6
0
        private void CloseHostWindow()
        {
            var hostWindow = ObjectEx.GetAndReplace(ref _sessionHostWindow, null);

            if (hostWindow != null)
            {
                hostWindow.Closed -= SessionHostWindow_Closed;
                hostWindow.Close();
            }
        }
Пример #7
0
        private void HideTray()
        {
            var tb = ObjectEx.GetAndReplace(ref icon, null);

            if (tb != null && tb.IsDisposed == false)
            {
                //tb.HideBalloonTip();
                tb.Dispose();
            }
        }
Пример #8
0
        public async Task StopCalibrationAsync()
        {
            if (IsCalibrating)
            {
                var calibration = ObjectEx.GetAndReplace(ref _calibration, null);

                await calibration.LeaveCalibrationModeAsync();

                calibration.Dispose();
            }
        }
Пример #9
0
        public void Stop()
        {
            ResetUpload();

            bool wasEnabled = ObjectEx.GetAndReplace(ref isEnabled, false);

            if (wasEnabled)
            {
                IsEnabledChanged?.Invoke(this, false);
            }
        }
Пример #10
0
        public override SessionStepResult Complete()
        {
            // reset taskbar state to the previous value
            var taskbar = ObjectEx.GetAndReplace(ref _taskbar, null);

            if (taskbar != null)
            {
                Task.Run(() => taskbar.Reset()).Forget();
            }

            return(base.Complete());
        }
Пример #11
0
        // add enable, because auto start does not wait before upload - same call like from UI
        public void Start()
        {
            bool wasEnabled = ObjectEx.GetAndReplace(ref isEnabled, true);

            if (wasEnabled == false || IsWorking == false)
            {
                IsEnabledChanged?.Invoke(this, true);
                _timeoutStepper.Reset();

                StartUpload(false);
            }
        }
Пример #12
0
        public bool DisconnectDevice()
        {
            var tracker = ObjectEx.GetAndReplace(ref _connectedTracker, null);

            if (tracker != null)
            {
                DetachEventHandlers(tracker);

                tracker.Dispose();

                OnCanCalibrateChanged();
            }
            return(true);
        }
Пример #13
0
        public void Stop()
        {
            var server = ObjectEx.GetAndReplace(ref _server, null);

            if (server != null)
            {
                server.Dispose();
            }

            bool bound = ObjectEx.GetAndReplace(ref _boundTypes, false);

            if (bound)
            {
                _kernel.Unbind <DefaultModelValidatorProviders>();
                _kernel.Unbind <DefaultFilterProviders>();
            }
        }
Пример #14
0
        //private void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
        //{
        //    _outputData.Append(e.Data);
        //}

        //private void Process_ErrorDataReceived(object sender, DataReceivedEventArgs e)
        //{
        //    _errorData.Append(e.Data);
        //}


        public override SessionStepResult Complete()
        {
            var process = ObjectEx.GetAndReplace(ref _process, null);

            try
            {
                if (process != null && _settings.KeepRunning == false)
                {
                    process.Exited -= process_Exited;

                    _service.CloseProcess(process, _settings.ForceClose);

                    process.Dispose();
                }
            }
            catch (Exception)
            {
                // TODO log exception
            }

            return(base.Complete());
        }
Пример #15
0
        private void CloseWindow()
        {
            var window = ObjectEx.GetAndReplace(ref _window, null);

            window?.Close();
        }
Пример #16
0
        private void ClearEnumerator()
        {
            var enumerator = ObjectEx.GetAndReplace(ref _sequenceEnumerator, null);

            enumerator?.Dispose();
        }
Пример #17
0
        public void Disconnect()
        {
            var connection = ObjectEx.GetAndReplace(ref _connection, null);

            connection?.Dispose();
        }