public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { CollectionEntry entry = (CollectionEntry)PropertyUtility.GetTargetObjectOfProperty(property); SerializedProperty idProperty = property.FindPropertyRelative("field"); CollectionInformation info = EnumerableCollection.GetReflectionInformation(entry.IndexType); string[] names = info.fieldNames; int currentIndex = -1; for (int i = 0; i < names.Length; i++) { if (names[i] == idProperty.stringValue) { currentIndex = i; break; } } if (currentIndex == -1) { currentIndex = 0; idProperty.stringValue = names[EditorGUI.Popup(position, label.text, currentIndex, names)]; Debug.Log("Assignig default value"); } EditorGUI.BeginChangeCheck(); idProperty.stringValue = names[EditorGUI.Popup(position, label.text, currentIndex, names)]; if (EditorGUI.EndChangeCheck()) { entry.entryIndex = -1; } }
public CollectionSettingsViewModel( CollectionInformation collectionInformation, List <CollectionUserPermissions> collectionPermissions, IDataApiClient dataApiClient, IReadonlyObjectDatabase <UserProfile> userDatabase) { this.dataApiClient = dataApiClient; this.userDatabase = userDatabase; CollectionName = collectionInformation.CollectionName; IsAdmin = collectionInformation.UserRoles.Contains(Role.Admin); IsUserManager = collectionInformation.UserRoles.Intersect(new[] { Role.Admin, Role.UserManager }).Any(); DisplayName = collectionInformation.DisplayName ?? collectionInformation.CollectionName; Description = collectionInformation.Description; SelectedIdGeneratorType = collectionInformation.IdGeneratorType; NonAdminUsersCanOverwriteData = collectionInformation.NonAdminUsersCanOverwriteData; IsProtected = collectionInformation.IsProtected; IsHidden = collectionInformation.IsHidden; var currentUser = dataApiClient.LoggedInUsername; var userPermissionViewModels = BuildUserPermissionsViewModels(collectionInformation, collectionPermissions, currentUser); UserPermissions = new ObservableCollection <UserPermissionsViewModel>(userPermissionViewModels); Validators = collectionInformation.ValidatorDefinitions.Select(x => new ValidatorDefinitionViewModel(x)).ToList(); AddUserCommand = new RelayCommand(AddUser, () => CanEditUserPermissions); DeleteUserCommand = new RelayCommand(DeleteUser, () => CanEditUserPermissions); SaveCommand = new AsyncRelayCommand <IClosable>(Save); CancelCommand = new RelayCommand <IClosable>(closable => closable.Close(false)); }
public void ManagerCanSetRoles() { UserGenerator.RegisterAndLoginUserWithRole(Role.UserManager, adminDataApiClient, out var managerDataApiClient); UserGenerator.RegisterAndLoginUserWithoutRoles(out var unprivilegedDataApiClient); var collectionName = nameof(UnitTestDataObject1); MakeCollectionProtected(collectionName); try { AssertStatusCode( () => managerDataApiClient.SetCollectionRoleForUser(unprivilegedDataApiClient.LoggedInUsername, new [] { Role.Viewer }, collectionName), HttpStatusCode.OK); CollectionInformation collectionPermissions = null; AssertStatusCode( () => collectionPermissions = unprivilegedDataApiClient.GetCollectionInformationAsync(collectionName).Result, HttpStatusCode.OK); Assert.That(collectionPermissions, Is.Not.Null); Assert.That(collectionPermissions.UserRoles.Count, Is.EqualTo(1)); Assert.That(collectionPermissions.UserRoles.Single(), Is.EqualTo(Role.Viewer)); } finally { MakeCollectionUnprotected(collectionName); UserGenerator.DeleteUser(unprivilegedDataApiClient); UserGenerator.DeleteUser(managerDataApiClient); } }
public void CanGetCollectionInformation() { var collectionName = nameof(UnitTestSearchObject); CollectionInformation collectionInformation = null; AssertStatusCode( () => collectionInformation = analystDataApiClient.GetCollectionInformationAsync(collectionName).Result, HttpStatusCode.OK); Assert.That(collectionInformation, Is.Not.Null); Assert.That(collectionInformation.CollectionName, Is.EqualTo(collectionName)); }
/// <summary> /// 插入一条记录 /// </summary> /// <param name="model"></param> public void CreateCollectionInfoRecord(CollectionInformation model) { var CollectionInfoModel = MongoDBHelper.CollectionInfoLog.Find(c => c.CreatorID == model.CreatorID && c.Name == model.Name && c.BankName == model.BankName && c.BankCode == model.BankCode && c.City == model.City && c.SubbranchBank == model.SubbranchBank).FirstOrDefault(); if (CollectionInfoModel != null) { //存在这个数据就不再插入 return; } MongoDBHelper.CollectionInfoLog.InsertOne(model); }
public CollectionExplorationViewModel( IDataApiClient dataApiClient, CollectionInformation collectionInformation, DataVisualizer dataVisualizer, IClipboard clipboard, ICollectionSwitcher collectionSwitcher) { CollectionInformation = collectionInformation; DataObjectListViewModel = new DataObjectListViewModel(collectionInformation, dataApiClient, dataVisualizer, clipboard, collectionSwitcher); QueryEditorViewModel = new QueryEditorViewModel(dataApiClient, collectionInformation.CollectionName); QueryEditorViewModel.JsonSearchFinished += QueryEditorViewModel_JsonSearchFinished; }
private void MenuItem_CreateCollection_Click(object sender, RoutedEventArgs e) { CollectionInformationEditorWindow collectionInformationEditor = new CollectionInformationEditorWindow(); collectionInformationEditor.ShowDialog(); CollectionInformation collectionInformation = collectionInformationEditor.GetCollectionInformation(); if (collectionInformation.ChangedName) { CollectionStore.Add(collectionInformation); comboBox_CollectionNames.Items.Refresh(); } }
public CollectionViewModel( CollectionInformation collectionInformation, IDataApiClient dataApiClient, IReadonlyObjectDatabase <UserProfile> userDatabase) { CollectionInformation = collectionInformation; this.dataApiClient = dataApiClient; this.userDatabase = userDatabase; Permission = TranslatePermission(collectionInformation.UserRoles); CanEditCollectionSettings = collectionInformation.UserRoles.Intersect(new[] { Role.UserManager, Role.Admin }).Any(); OpenCollectionSettingsWindowCommand = new AsyncRelayCommand(OpenCollectionSettingsWindow, () => CanEditCollectionSettings); }
private void GenerateModelCollectionFiles(CollectionInformation collectionInformation) { var classFile = LoadFile(ModelCollectionInternal); var interfaceFile = LoadFile(ModelCollectionPublic); Replace(ref classFile, NamespaceKey, collectionInformation.Namespace); Replace(ref interfaceFile, NamespaceKey, collectionInformation.Namespace); Replace(ref classFile, CollectionNameKey, collectionInformation.Name); Replace(ref interfaceFile, CollectionNameKey, collectionInformation.Name); Replace(ref classFile, CollectionTypeNameKey, collectionInformation.ModelType); Replace(ref interfaceFile, CollectionTypeNameKey, collectionInformation.ModelType); SaveFile(classFile, $"{collectionInformation.Name}.cs", collectionInformation.Folder, false); SaveFile(interfaceFile, $"I{collectionInformation.Name}.cs", collectionInformation.Folder, true); }
public DataObjectListViewModel( CollectionInformation collectionInformation, IDataApiClient dataApiClient, DataVisualizer dataVisualizer, IClipboard clipboard, ICollectionSwitcher collectionSwitcher) { this.dataApiClient = dataApiClient; this.dataVisualizer = dataVisualizer; this.clipboard = clipboard; this.collectionSwitcher = collectionSwitcher; CollectionInformation = collectionInformation; CanVisualize = dataVisualizer.CanVisualize(CollectionInformation.CollectionName); ExportCommand = new RelayCommand(Export, CanExport); VisualizeCommand = new RelayCommand(Visualize, () => CanVisualize); }
private void MenuItem_EditCollectionDetails_Click(object sender, RoutedEventArgs e) { if (comboBox_CollectionNames.SelectedItem != null) { string currentCollectionName = (string)comboBox_CollectionNames.SelectedItem; Collection collection = CollectionStore.Get(currentCollectionName); CollectionInformationEditorWindow collectionInformationEditor = new CollectionInformationEditorWindow(currentCollectionName, collection.Description); collectionInformationEditor.ShowDialog(); CollectionInformation collectionInformation = collectionInformationEditor.GetCollectionInformation(); CollectionStore.Edit(currentCollectionName, collectionInformation); if (collectionInformation.ChangedName) { comboBox_CollectionNames.Items.Refresh(); comboBox_CollectionNames.SelectedItem = collectionInformation.Name; } } }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { object[] attributeObjects = fieldInfo.GetCustomAttributes(typeof(CollectionTypeAttribute), true); if (attributeObjects.Length == 0) { EditorGUI.HelpBox(position, "There are no " + typeof(CollectionEntry).Name + "'s on \"" + fieldInfo.Name + "\".", MessageType.None); return; } CollectionTypeAttribute collectionAttribute = (CollectionTypeAttribute)attributeObjects[0]; SerializedProperty idProperty = property.FindPropertyRelative("field"); CollectionInformation info = EnumerableCollection.GetReflectionInformation( collectionAttribute.collectionType); string[] names = info.fieldNames; int currentIndex = 0; for (int i = 0; i < names.Length; i++) { if (names[i] == idProperty.stringValue) { currentIndex = i; break; } } EditorGUI.BeginChangeCheck(); idProperty.stringValue = names[EditorGUI.Popup(position, label.text, currentIndex, names)]; if (EditorGUI.EndChangeCheck()) { CollectionEntry entry = (CollectionEntry)PropertyUtility.GetTargetObjectOfProperty(property); entry.entryIndex = -1; } }
private static TeamProjectCollection AttachCollection(TfsConfigurationServer server, CollectionInformation collectionInfo, bool cloneCollection) { var collectionService = server.GetService<ITeamProjectCollectionService>(); var jobDetail = collectionService.QueueAttachCollection(collectionInfo.ConnectionString, null, cloneCollection, collectionInfo.Name, null, collectionInfo.VirtualDir); return collectionService.WaitForCollectionServicingToComplete(jobDetail); }
private static void RestoreDatabase(CollectionInformation collectionInfo, string databaseBackupFile) { var connectionStringBuilder = new SqlConnectionStringBuilder(collectionInfo.ConnectionString); var serverConnection = new ServerConnection(connectionStringBuilder.DataSource); var server = new Server(serverConnection); var restore = new Restore(); restore.Devices.AddDevice(databaseBackupFile, DeviceType.File); restore.Database = connectionStringBuilder.InitialCatalog; restore.ReplaceDatabase = true; server.KillAllProcesses(restore.Database); restore.SqlRestore(server); }
public CollectionInformationViewModel(CollectionInformation collectionInformation) { this.Name = collectionInformation.Name; this.Text = string.Format("{0} ({1} items, {2} Kb)", collectionInformation.Name, collectionInformation.ItemCount, collectionInformation.Size); }