public Result <DataProcessingRegistrationRight, OperationError> AssignRoleToUser(DataProcessingRegistrationRole role, User user) { if (role == null) { throw new ArgumentNullException(nameof(role)); } if (user == null) { throw new ArgumentNullException(nameof(user)); } if (HasRight(role, user)) { return(new OperationError("Existing right for same role found for the same user", OperationFailure.Conflict)); } var newRight = new DataProcessingRegistrationRight { Role = role, User = user, Object = this }; Rights.Add(newRight); return(newRight); }
/// <summary> /// Creates a UserInfo class from an meta=userinfo XML /// </summary> /// <param name="xml">XML document to process. Must be already checked for error status by /// ApiEdit.CheckForErrors()</param> internal UserInfo(XmlDocument xml) { var users = xml.GetElementsByTagName("userinfo"); if (users.Count == 0) { throw new BrokenXmlException(null, "XML with <userinfo> element expected"); } var user = users[0]; Name = user.Attributes["name"].Value; Id = int.Parse(user.Attributes["id"].Value); var groups = user["groups"]; if (groups != null) { foreach (XmlNode g in groups.GetElementsByTagName("g")) { Groups.Add(g.InnerText); } } var rights = user["rights"]; if (rights != null) { foreach (XmlNode r in rights.GetElementsByTagName("r")) { Rights.Add(r.InnerText); } } Update(xml); }
/// <summary> /// Creates a UserInfo class from an meta=userinfo XML /// </summary> /// <param name="xml">XML to parse. Must be already checked for error status by /// ApiEdit.CheckForErrors()</param> internal UserInfo(string xml) { XmlReader xr = XmlReader.Create(new StringReader(xml)); xr.ReadToFollowing("userinfo"); Name = xr.GetAttribute("name"); Id = int.Parse(xr.GetAttribute("id")); IsBlocked = xr.GetAttribute("blockedby") != null; HasMessages = xr.GetAttribute("messages") != null; if (xr.ReadToFollowing("groups") && !xr.IsEmptyElement) { while (xr.Read() && xr.Name != "groups") { if (xr.Name == "g") { Groups.Add(xr.ReadString()); } } } if (xr.ReadToFollowing("rights") && !xr.IsEmptyElement) { while (xr.Read() && xr.Name != "rights") { if (xr.Name == "r") { Rights.Add(xr.ReadString()); } } } }
public void AddRights(List <Right> rights) { foreach (Right r in rights) { Rights.Add(r); } }
public SPGlymaRole(int securableContextId, int roleId, string displayName, params IRight[] rights) { SecurableContextId = securableContextId; RoleId = roleId; DisplayName = displayName; foreach (IRight right in rights) { Rights.Add(right); } }
/// <summary> /// 加入队列 /// </summary> /// <param name="skewPipe"></param> public void Push(SkewPipe skewPipe) { //这里以X小的为左点,X大的为右点 SkewPipes.Add(skewPipe); var curve = (skewPipe.pipe.Location as LocationCurve).Curve; if (curve.GetEndPoint(0).X < curve.GetEndPoint(1).X) { Lefts.Add(ReferenceCurve.Project(curve.GetEndPoint(0)).XYZPoint); Rights.Add(ReferenceCurve.Project(curve.GetEndPoint(1)).XYZPoint); } else { Lefts.Add(ReferenceCurve.Project(curve.GetEndPoint(1)).XYZPoint); Rights.Add(ReferenceCurve.Project(curve.GetEndPoint(0)).XYZPoint); } }
/// <summary> /// /// </summary> /// <param name="xml"></param> public UserInfo(string xml) { XmlTextReader xr = new XmlTextReader(new StringReader(xml)); xr.MoveToContent(); while (xr.Read()) { if (xr.Name == "g") { Groups.Add(xr.ReadString()); } else if (xr.Name == "r") { Rights.Add(xr.ReadString()); } } Name = Regex.Match(xml, @"<userinfo name=""(.*?)"">").Groups[1].Value; }
private void _addRight(object obj) { using (var selector = new SecurityObjectSelectorViewmodel(_authenticationService)) { if (UiServices.ShowDialog <Views.SecurityObjectSelectorView>(selector) != true) { return; } var right = _engine.AddRightFor(selector.SelectedSecurityObject); if (right == null) { return; } var newRightVm = new EngineRightViewmodel(right); Rights.Add(newRightVm); SelectedRight = newRightVm; SelectedRight.Modified += EventRightViewmodel_Modified; IsModified = true; } }
public void SetListLength(int length) { while (Lefts.Count > length) { Rights.RemoveAt(Lefts.Count - 1); Lefts.RemoveAt(Lefts.Count - 1); Relation.RemoveAt(Lefts.Count - 1); } while (Lefts.Count < length) { Lefts.Add(new QPart { Text = "" }); Rights.Add(new QPart { Text = "" }); Relation.Add(Relation.Count); } }
private void LoadEpubMetaDataFromOpfFile(string opfFilePath) { ZipEntry zipEntry = _EpubFile.GetEntry(opfFilePath); if (zipEntry == null) { throw new Exception("Invalid epub file."); } XElement contentOpf; using (Stream zipStream = _EpubFile.GetInputStream(zipEntry)) { using (MemoryStream memoryStream = new MemoryStream()) { byte[] buffer = new byte[4096]; // 4K is optimum StreamUtils.Copy(zipStream, memoryStream, buffer); memoryStream.Position = 0; contentOpf = XElement.Load(memoryStream); } } XNamespace xNamespace = contentOpf.Attribute("xmlns") != null ? contentOpf.Attribute("xmlns").Value : XNamespace.None; string uniqueIdentifier = contentOpf.Attribute("unique-identifier").Value; UUID = contentOpf.Elements(xNamespace + "metadata").Elements() .FirstOrDefault(e => e.Name.LocalName == "identifier" && e.HasAttributes && e.Attribute("id") != null && e.Attribute("id").Value == uniqueIdentifier ).Value; foreach ( var metadataElement in contentOpf.Element(xNamespace + "metadata").Elements().Where(e => e.Value.Trim() != string.Empty)) { switch (metadataElement.Name.LocalName) { case "title": Title.Add(metadataElement.Value); break; case "creator": Creator.Add(metadataElement.Value); break; case "date": var attribute = metadataElement.Attributes().FirstOrDefault(a => a.Name.LocalName == "event"); if (attribute != null) { Date.Add(new DateData(attribute.Value, metadataElement.Value)); } break; case "publisher": Publisher.Add(metadataElement.Value); break; case "subject": Subject.Add(metadataElement.Value); break; case "source": Source.Add(metadataElement.Value); break; case "rights": Rights.Add(metadataElement.Value); break; case "description": Description.Add(metadataElement.Value); break; case "contributor": Contributer.Add(metadataElement.Value); break; case "type": Type.Add(metadataElement.Value); break; case "format": Format.Add(metadataElement.Value); break; case "identifier": ID.Add(metadataElement.Value); break; case "language": Language.Add(metadataElement.Value); break; case "relation": Relation.Add(metadataElement.Value); break; case "coverage": Coverage.Add(metadataElement.Value); break; } } LoadManifestSectionFromOpfFile(contentOpf, xNamespace); }
private void LoadEpubMetaDataFromOpfFile(string opfFilePath) { ZipEntry zipEntry = _EpubFile.Entries.FirstOrDefault(e => e.FileName.Equals(opfFilePath, StringComparison.InvariantCultureIgnoreCase)); if (zipEntry == null) { throw new Exception("Invalid epub file."); } XElement contentOpf; using (MemoryStream memoryStream = new MemoryStream()) { zipEntry.Extract(memoryStream); // Fix buggy "<?xml verison="1.1"?> // See http://stackoverflow.com/questions/912440/xdocument-cant-load-xml-with-version-1-1-in-c-sharp-linq byte[] b = memoryStream.ToArray(); for (int i = 0; i < 50; i++) { // Check for version="1.1" and replace if found if (b[i] == 0x76 && b[i + 1] == 0x65 && b[i + 2] == 0x72 && b[i + 3] == 0x73 && b[i + 4] == 0x69 && b[i + 5] == 0x6F && b[i + 6] == 0x6E && b[i + 7] == 0x3D && b[i + 8] == 0x22 && b[i + 9] == 0x31 && b[i + 10] == 0x2E && b[i + 11] == 0x31) { b[i + 11] = 0x30; } } using (MemoryStream fixedStream = new MemoryStream(b)) { contentOpf = XElement.Load(fixedStream); } b = null; } XNamespace xNamespace = contentOpf.Attribute("xmlns") != null?contentOpf.Attribute("xmlns").Value : XNamespace.None; string uniqueIdentifier = contentOpf.Attribute("unique-identifier").Value; try { UUID = contentOpf.Elements(xNamespace + "metadata").Elements().FirstOrDefault(e => e.Name.LocalName == "identifier" && e.Attributes("id").FirstOrDefault() != null && e.Attribute("id").Value == uniqueIdentifier).Value; } catch { } foreach (var metadataElement in contentOpf.Elements(xNamespace + "metadata").Elements().Where(e => e.Value.Trim() != string.Empty)) { switch (metadataElement.Name.LocalName) { case "title": Title.Add(metadataElement.Value); break; case "creator": Creator.Add(metadataElement.Value); break; case "date": var attribute = metadataElement.Attributes().FirstOrDefault(a => a.Name.LocalName == "event"); if (attribute != null) { Date.Add(new DateData(attribute.Value, metadataElement.Value)); } break; case "publisher": Publisher.Add(metadataElement.Value); break; case "subject": Subject.Add(metadataElement.Value); break; case "source": Source.Add(metadataElement.Value); break; case "rights": Rights.Add(metadataElement.Value); break; case "description": Description.Add(metadataElement.Value); break; case "contributor": Contributer.Add(metadataElement.Value); break; case "type": Type.Add(metadataElement.Value); break; case "format": Format.Add(metadataElement.Value); break; case "identifier": ID.Add(metadataElement.Value); break; case "language": Language.Add(metadataElement.Value); break; case "relation": Relation.Add(metadataElement.Value); break; case "coverage": Coverage.Add(metadataElement.Value); break; } } LoadManifestSectionFromOpfFile(contentOpf, xNamespace); }
private void LoadEpubMetaDataFromOpfFile(string opfFilePath) { ZipEntry zipEntry = _EpubFile.Entries.FirstOrDefault(e => e.FileName.Equals(opfFilePath, StringComparison.InvariantCultureIgnoreCase)); if (zipEntry == null) { throw new Exception("Invalid epub file."); } XElement contentOpf; using (MemoryStream memoryStream = new MemoryStream()) { zipEntry.Extract(memoryStream); memoryStream.Position = 0; contentOpf = XElement.Load(memoryStream); } XNamespace xNamespace = contentOpf.Attribute("xmlns") != null?contentOpf.Attribute("xmlns").Value : XNamespace.None; string uniqueIdentifier = contentOpf.Attribute("unique-identifier").Value; try { UUID = contentOpf.Elements(xNamespace + "metadata").Elements().FirstOrDefault(e => e.Name.LocalName == "identifier" && e.Attribute("id").Value == uniqueIdentifier).Value; } catch { } foreach (var metadataElement in contentOpf.Elements(xNamespace + "metadata").Elements().Where(e => e.Value.Trim() != string.Empty)) { switch (metadataElement.Name.LocalName) { case "title": Title.Add(metadataElement.Value); break; case "creator": Creator.Add(metadataElement.Value); break; case "date": var attribute = metadataElement.Attributes().FirstOrDefault(a => a.Name.LocalName == "event"); if (attribute != null) { Date.Add(new DateData(attribute.Value, metadataElement.Value)); } break; case "publisher": Publisher.Add(metadataElement.Value); break; case "subject": Subject.Add(metadataElement.Value); break; case "source": Source.Add(metadataElement.Value); break; case "rights": Rights.Add(metadataElement.Value); break; case "description": Description.Add(metadataElement.Value); break; case "contributor": Contributer.Add(metadataElement.Value); break; case "type": Type.Add(metadataElement.Value); break; case "format": Format.Add(metadataElement.Value); break; case "identifier": ID.Add(metadataElement.Value); break; case "language": Language.Add(metadataElement.Value); break; case "relation": Relation.Add(metadataElement.Value); break; case "coverage": Coverage.Add(metadataElement.Value); break; } } LoadManifestSectionFromOpfFile(contentOpf, xNamespace); }
public void AddRight(Right r) { Rights.Add(r); }