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)); } }