private bool EnsureSqlVersion(ItemDefinition itemDefinition, DataProvider sqlProvider, CallContext context) { var sqlVersion = GetSqlVersion(itemDefinition.ID, context, sqlProvider); if (sqlVersion != null) { return(true); } if (itemDefinition.ID == FolderId || ControllerType.GetAllNamespaces().ContainsKey(itemDefinition.ID.ToGuid()) || ControllerType.GetAllControllers().ContainsKey(itemDefinition.ID.ToGuid()) || ControllerAction.GetControllerAction(itemDefinition.ID) != null) { var parentId = GetParentID(itemDefinition, context) ?? sqlProvider.GetParentID(itemDefinition, context); var itemdef = GetItemDefinition(parentId, context) ?? sqlProvider.GetItemDefinition(parentId, context); if (!sqlProvider.CreateItem(itemDefinition.ID, itemDefinition.Name, itemDefinition.TemplateID, itemdef, context)) { return(false); } var item = Database.GetItem(itemDefinition.ID); var existingFields = new ItemChanges(item); foreach (Field field in item.Fields) { existingFields.SetFieldValue(field, item[field.ID]); } sqlProvider.SaveItem(itemDefinition, existingFields, context); return(true); } return(false); }
public void OnItemSavedRemote_should_remove_active_configuration_items_from_cache() { this.CheckConfigurationItem( this.provider.OnItemSavedRemote, item => { var itemChanges = new ItemChanges(item); itemChanges.SetFieldValue(item.Fields[FieldIDs.IntegrationConfigData], "changed"); return(new ItemSavedRemoteEventArgs(item, itemChanges)); }); }
public void OnItemSavedRemote_should_remove_child_configuration_folderss_from_cache() { // Act this.CheckFoldersStructure( this.provider.OnItemSavedRemote, item => { var itemChanges = new ItemChanges(item); itemChanges.SetFieldValue(item.Fields[FieldIDs.IntegrationConfigData], "changed"); return(new ItemSavedRemoteEventArgs(item, itemChanges)); }); }
public void Save_ShouldSerializeItem(Db db) { var target = Substitute.For<ITargetDataStore>(); using (var provider = CreateTestProvider(db.Database, targetDataStore: target)) { var fieldId = ID.NewID; var item = new DbItem("Test") { { fieldId, "World" } }; db.Add(item); var dbItem = db.GetItem(item.ID); var changes = new ItemChanges(dbItem); changes.SetFieldValue(dbItem.Fields[fieldId], "Hello", "World"); provider.SaveItem(CreateTestDefinition(), changes, CreateTestCallContext(db.Database)); target.Received().Save(Arg.Any<IItemData>()); } }
public void Save_ShouldSerializeItem(Db db) { var target = Substitute.For <ITargetDataStore>(); using (var provider = CreateTestProvider(db.Database, targetDataStore: target)) { var fieldId = ID.NewID; var item = new DbItem("Test") { { fieldId, "World" } }; db.Add(item); var dbItem = db.GetItem(item.ID); var changes = new ItemChanges(dbItem); changes.SetFieldValue(dbItem.Fields[fieldId], "Hello", "World"); provider.SaveItem(CreateTestDefinition(), changes, CreateTestCallContext(db.Database)); target.Received().Save(Arg.Any <IItemData>(), null); } }
private bool EnsureSqlVersion(ItemDefinition itemDefinition, DataProvider sqlProvider, CallContext context) { var sqlVersion = GetSqlVersion(itemDefinition.ID, context, sqlProvider); if (sqlVersion != null) { return true; } if (itemDefinition.ID == FolderId || ControllerType.GetAllNamespaces().ContainsKey(itemDefinition.ID.ToGuid()) || ControllerType.GetAllControllers().ContainsKey(itemDefinition.ID.ToGuid()) || ControllerAction.GetControllerAction(itemDefinition.ID) != null) { var parentId = GetParentID(itemDefinition, context) ?? sqlProvider.GetParentID(itemDefinition, context); var itemdef = GetItemDefinition(parentId, context) ?? sqlProvider.GetItemDefinition(parentId, context); if (!sqlProvider.CreateItem(itemDefinition.ID, itemDefinition.Name, itemDefinition.TemplateID, itemdef, context)) { return false; } var item = Database.GetItem(itemDefinition.ID); var existingFields = new ItemChanges(item); foreach (Field field in item.Fields) { existingFields.SetFieldValue(field, item[field.ID]); } sqlProvider.SaveItem(itemDefinition, existingFields, context); return true; } return false; }