/// <summary> /// Initializes a new instance of the <see cref="FolderPermission"/> class. /// </summary> /// <param name="userId">The Id of the user the permission applies to.</param> /// <param name="permissionLevel">The level of the permission.</param> public FolderPermission(UserId userId, FolderPermissionLevel permissionLevel) { EwsUtilities.ValidateParam(userId, "userId"); this.userId = userId; this.PermissionLevel = permissionLevel; }
/// <summary> /// Loads from json. /// </summary> /// <param name="jsonProperty">The json property.</param> /// <param name="service"></param> internal override void LoadFromJson(JsonObject jsonProperty, ExchangeService service) { foreach (string key in jsonProperty.Keys) { switch (key) { case XmlElementNames.UserId: this.UserId = new UserId(); this.UserId.LoadFromJson(jsonProperty.ReadAsJsonObject(key), service); break; case XmlElementNames.CanCreateItems: this.canCreateItems = jsonProperty.ReadAsBool(key); break; case XmlElementNames.CanCreateSubFolders: this.canCreateSubFolders = jsonProperty.ReadAsBool(key); break; case XmlElementNames.IsFolderOwner: this.isFolderOwner = jsonProperty.ReadAsBool(key); break; case XmlElementNames.IsFolderVisible: this.isFolderVisible = jsonProperty.ReadAsBool(key); break; case XmlElementNames.IsFolderContact: this.isFolderContact = jsonProperty.ReadAsBool(key); break; case XmlElementNames.EditItems: this.editItems = jsonProperty.ReadEnumValue <PermissionScope>(key); break; case XmlElementNames.DeleteItems: this.deleteItems = jsonProperty.ReadEnumValue <PermissionScope>(key); break; case XmlElementNames.ReadItems: this.readItems = jsonProperty.ReadEnumValue <FolderPermissionReadAccess>(key); break; case XmlElementNames.PermissionLevel: case XmlElementNames.CalendarPermissionLevel: this.permissionLevel = jsonProperty.ReadEnumValue <FolderPermissionLevel>(key); break; default: break; } } this.AdjustPermissionLevel(); }
/// <summary> /// Determines the permission level of this folder permission based on its individual settings, /// and sets the PermissionLevel property accordingly. /// </summary> private void AdjustPermissionLevel() { foreach (KeyValuePair <FolderPermissionLevel, FolderPermission> keyValuePair in defaultPermissions.Member) { if (this.IsEqualTo(keyValuePair.Value)) { this.permissionLevel = keyValuePair.Key; return; } } this.permissionLevel = FolderPermissionLevel.Custom; }
/// <summary> /// Tries to read element from XML. /// </summary> /// <param name="reader">The reader.</param> /// <returns>True if element was read.</returns> internal override bool TryReadElementFromXml(EwsServiceXmlReader reader) { switch (reader.LocalName) { case XmlElementNames.UserId: this.UserId = new UserId(); this.UserId.LoadFromXml(reader, reader.LocalName); return(true); case XmlElementNames.CanCreateItems: this.canCreateItems = reader.ReadValue <bool>(); return(true); case XmlElementNames.CanCreateSubFolders: this.canCreateSubFolders = reader.ReadValue <bool>(); return(true); case XmlElementNames.IsFolderOwner: this.isFolderOwner = reader.ReadValue <bool>(); return(true); case XmlElementNames.IsFolderVisible: this.isFolderVisible = reader.ReadValue <bool>(); return(true); case XmlElementNames.IsFolderContact: this.isFolderContact = reader.ReadValue <bool>(); return(true); case XmlElementNames.EditItems: this.editItems = reader.ReadValue <PermissionScope>(); return(true); case XmlElementNames.DeleteItems: this.deleteItems = reader.ReadValue <PermissionScope>(); return(true); case XmlElementNames.ReadItems: this.readItems = reader.ReadValue <FolderPermissionReadAccess>(); return(true); case XmlElementNames.PermissionLevel: case XmlElementNames.CalendarPermissionLevel: this.permissionLevel = reader.ReadValue <FolderPermissionLevel>(); return(true); default: return(false); } }
/// <summary> /// Initializes a new instance of the <see cref="FolderPermission"/> class. /// </summary> /// <param name="standardUser">The standard user the permission applies to.</param> /// <param name="permissionLevel">The level of the permission.</param> public FolderPermission(StandardUser standardUser, FolderPermissionLevel permissionLevel) { this.userId = new UserId(standardUser); this.PermissionLevel = permissionLevel; }
/// <summary> /// Initializes a new instance of the <see cref="FolderPermission"/> class. /// </summary> /// <param name="primarySmtpAddress">The primary SMTP address of the user the permission applies to.</param> /// <param name="permissionLevel">The level of the permission.</param> public FolderPermission(string primarySmtpAddress, FolderPermissionLevel permissionLevel) { this.userId = new UserId(primarySmtpAddress); this.PermissionLevel = permissionLevel; }
/// <summary> /// Translate the state of the form's controls into /// property values on the selected FolderPermission. /// </summary> private void FormStateToPermission() { // There shouldn't be more than one item selected if (lstUsers.SelectedItems.Count != 1) { return; } FolderPermission selectedPermission = lstUsers.SelectedItems[0].Tag as FolderPermission; selectedPermission.CanCreateItems = chkCreateItems.Checked; selectedPermission.CanCreateSubFolders = chkCreateSubFolders.Checked; if (rdoDeleteAll.Checked) { selectedPermission.DeleteItems = PermissionScope.All; } else if (rdoDeleteNone.Checked) { selectedPermission.DeleteItems = PermissionScope.None; } else if (rdoDeleteOwn.Checked) { selectedPermission.DeleteItems = PermissionScope.Owned; } if (chkEditAll.Checked) { selectedPermission.EditItems = PermissionScope.All; } else if (chkEditOwn.Checked && !chkEditAll.Checked) { selectedPermission.EditItems = PermissionScope.Owned; } else if (!chkEditAll.Checked && !chkEditOwn.Checked) { selectedPermission.EditItems = PermissionScope.None; } selectedPermission.IsFolderContact = chkContact.Checked; selectedPermission.IsFolderOwner = chkOwner.Checked; selectedPermission.IsFolderVisible = chkVisible.Checked; if (rdoReadFull.Checked) { selectedPermission.ReadItems = FolderPermissionReadAccess.FullDetails; } else if (rdoReadNone.Checked) { selectedPermission.ReadItems = FolderPermissionReadAccess.None; } else if (rdoTimeOnly.Checked) { selectedPermission.ReadItems = FolderPermissionReadAccess.TimeOnly; } else if (rdoTimeSubjectLocation.Checked) { selectedPermission.ReadItems = FolderPermissionReadAccess.TimeAndSubjectAndLocation; } // If the permission level was changed and is not custom, then it // trumps any individual settings on the form. FolderPermissionLevel permLevel = this.permissionLevelCombo.SelectedItem.Value; if (LastPermLevel.Value != permLevel) { if (permLevel != FolderPermissionLevel.Custom) { selectedPermission.PermissionLevel = permLevel; } } }
/// <summary> /// Tries to read element from XML. /// </summary> /// <param name="reader">The reader.</param> /// <returns>True if element was read.</returns> internal override bool TryReadElementFromXml(EwsServiceXmlReader reader) { switch (reader.LocalName) { case XmlElementNames.UserId: this.UserId = new UserId(); this.UserId.LoadFromXml(reader, reader.LocalName); return true; case XmlElementNames.CanCreateItems: this.canCreateItems = reader.ReadValue<bool>(); return true; case XmlElementNames.CanCreateSubFolders: this.canCreateSubFolders = reader.ReadValue<bool>(); return true; case XmlElementNames.IsFolderOwner: this.isFolderOwner = reader.ReadValue<bool>(); return true; case XmlElementNames.IsFolderVisible: this.isFolderVisible = reader.ReadValue<bool>(); return true; case XmlElementNames.IsFolderContact: this.isFolderContact = reader.ReadValue<bool>(); return true; case XmlElementNames.EditItems: this.editItems = reader.ReadValue<PermissionScope>(); return true; case XmlElementNames.DeleteItems: this.deleteItems = reader.ReadValue<PermissionScope>(); return true; case XmlElementNames.ReadItems: this.readItems = reader.ReadValue<FolderPermissionReadAccess>(); return true; case XmlElementNames.PermissionLevel: case XmlElementNames.CalendarPermissionLevel: this.permissionLevel = reader.ReadValue<FolderPermissionLevel>(); return true; default: return false; } }
/// <summary> /// Determines the permission level of this folder permission based on its individual settings, /// and sets the PermissionLevel property accordingly. /// </summary> private void AdjustPermissionLevel() { foreach (KeyValuePair<FolderPermissionLevel, FolderPermission> keyValuePair in defaultPermissions.Member) { if (this.IsEqualTo(keyValuePair.Value)) { this.permissionLevel = keyValuePair.Key; return; } } this.permissionLevel = FolderPermissionLevel.Custom; }