예제 #1
0
        public Models.Controller InitializeAdapter(IMqttAdapter mqttAdapter)
        {
            using (var ctx = _repositoryService.GetContext())
            {
                var controller = ctx.Controller.Include(c => c.ControllerStateInformations).FirstOrDefault(c => c.Identifier == mqttAdapter.Identifier);
                if (controller == null)
                {
                    controller = InsertController(ctx, mqttAdapter);
                }

                foreach (var controllerState in GetUnknownStates(ctx, controller, mqttAdapter.GetPossibleStates()))
                {
                    InsertControllerState(ctx, controller, controllerState);
                }

                ctx.SaveChanges();

                return(_modelFactory.CreateController(controller));
            }
        }