internal override void Update(XmlNode node) { base.Update(node); Parent = RedmineUtility.LoadObject(node[ParentProperty.XmlNodeName], Context.Issues.Lookup); Project = RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName], Context.Projects.Lookup); Tracker = RedmineUtility.LoadNamedObject(node[TrackerProperty.XmlNodeName], Context.Trackers.Lookup); Status = RedmineUtility.LoadNamedObject(node[StatusProperty.XmlNodeName], Context.IssueStatuses.Lookup); Priority = RedmineUtility.LoadNamedObject(node[PriorityProperty.XmlNodeName], Context.IssuePriorities.Lookup); Author = RedmineUtility.LoadNamedObject(node[AuthorProperty.XmlNodeName], Context.Users.Lookup); AssignedTo = RedmineUtility.LoadNamedObject(node[AssignedToProperty.XmlNodeName], Context.Users.Lookup); Category = RedmineUtility.LoadNamedObject(node[CategoryProperty.XmlNodeName], Context.IssueCategories.Lookup); FixedVersion = RedmineUtility.LoadNamedObject(node[FixedVersionProperty.XmlNodeName], Context.ProjectVersions.Lookup); Subject = RedmineUtility.LoadString(node[SubjectProperty.XmlNodeName]); Description = RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]); StartDate = RedmineUtility.LoadDate(node[StartDateProperty.XmlNodeName]); DueDate = RedmineUtility.LoadDate(node[DueDateProperty.XmlNodeName]); DoneRatio = RedmineUtility.LoadDouble(node[DoneRatioProperty.XmlNodeName]); EstimatedHours = RedmineUtility.LoadDouble(node[EstimatedHoursProperty.XmlNodeName]); _customFields.Update(node[CustomFieldsProperty.XmlNodeName], Context.CustomFields.Lookup); CreatedOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); UpdatedOn = RedmineUtility.LoadDateForSure(node[UpdatedOnProperty.XmlNodeName]); }
internal void EmitChanged(XmlElement root) { var xml = root.OwnerDocument; foreach (var v in _original.Values) { if (!_values.ContainsKey(v.Field.Id)) { var e = xml.CreateElement("custom_field"); var attr = xml.CreateAttribute("id"); attr.Value = XmlConvert.ToString(v.Field.Id); e.Attributes.Append(attr); root.AppendChild(e); } } foreach (var v in _values.Values) { CustomFieldValue original; if (_original.TryGetValue(v.Field.Id, out original) && original.Value == v.Value) { continue; } var e = xml.CreateElement("custom_field"); var attr = xml.CreateAttribute("id"); attr.Value = XmlConvert.ToString(v.Field.Id); e.Attributes.Append(attr); var ev = xml.CreateElement("value"); RedmineUtility.EmitString(ev, v.Value); e.AppendChild(ev); root.AppendChild(e); } }
internal override void Update(XmlNode node) { base.Update(node); ProjectId = RedmineUtility.LoadInt(node[ProjectIdProperty.XmlNodeName]); IsPublic = RedmineUtility.LoadBoolean(node[IsPublicProperty.XmlNodeName]); }
internal override void Update(XmlNode node) { base.Update(node); Project = RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName], Context.Projects.Lookup); AssignedTo = RedmineUtility.LoadNamedObject(node[AssignedToProperty.XmlNodeName], Context.Users.Lookup); }
internal Issue(RedmineServiceContext context, XmlNode node) : base(context, node) { _parent = RedmineUtility.LoadObject(node[ParentProperty.XmlNodeName], context.Issues.Lookup); _project = RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName], context.Projects.Lookup); _tracker = RedmineUtility.LoadNamedObject(node[TrackerProperty.XmlNodeName], context.Trackers.Lookup); _status = RedmineUtility.LoadNamedObject(node[StatusProperty.XmlNodeName], context.IssueStatuses.Lookup); _priority = RedmineUtility.LoadNamedObject(node[PriorityProperty.XmlNodeName], context.IssuePriorities.Lookup); _author = RedmineUtility.LoadNamedObject(node[AuthorProperty.XmlNodeName], context.Users.Lookup); _assignedTo = RedmineUtility.LoadNamedObject(node[AssignedToProperty.XmlNodeName], context.Users.Lookup); _category = RedmineUtility.LoadNamedObject(node[CategoryProperty.XmlNodeName], context.IssueCategories.Lookup); _fixedVersion = RedmineUtility.LoadNamedObject(node[FixedVersionProperty.XmlNodeName], context.ProjectVersions.Lookup); _subject = RedmineUtility.LoadString(node[SubjectProperty.XmlNodeName]); _description = RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]); _startDate = RedmineUtility.LoadDate(node[StartDateProperty.XmlNodeName]); _dueDate = RedmineUtility.LoadDate(node[DueDateProperty.XmlNodeName]); _doneRatio = RedmineUtility.LoadDouble(node[DoneRatioProperty.XmlNodeName]); _estimatedHours = RedmineUtility.LoadDouble(node[EstimatedHoursProperty.XmlNodeName]); _customFields = RedmineUtility.LoadCustomFields(node[CustomFieldsProperty.XmlNodeName], context.CustomFields.Lookup); _createdOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); _updatedOn = RedmineUtility.LoadDateForSure(node[UpdatedOnProperty.XmlNodeName]); }
internal IssueRelation(RedmineServiceContext context, XmlNode node) : base(context, node) { _issue = RedmineUtility.LoadObject(node[IssueProperty.XmlNodeName], context.Issues.Lookup); _issueTo = RedmineUtility.LoadObject(node[IssueToProperty.XmlNodeName], context.Issues.Lookup); _type = RedmineUtility.LoadIssueRelationType(node[TypeProperty.XmlNodeName]); }
internal override void Update(XmlNode node) { base.Update(node); Name = RedmineUtility.LoadString(node[NameProperty.XmlNodeName]); IsDefault = RedmineUtility.LoadBoolean(node[IsDefaultProperty.XmlNodeName]); IsClosed = RedmineUtility.LoadBoolean(node[IsClosedProperty.XmlNodeName]); }
internal override void Update(XmlNode node) { base.Update(node); Issue = RedmineUtility.LoadObject(node[IssueProperty.XmlNodeName], Context.Issues.Lookup); IssueTo = RedmineUtility.LoadObject(node[IssueToProperty.XmlNodeName], Context.Issues.Lookup); Type = RedmineUtility.LoadIssueRelationType(node[TypeProperty.XmlNodeName]); }
protected RedmineObject(RedmineServiceContext context, XmlNode node) { Verify.Argument.IsNotNull(context, nameof(context)); Verify.Argument.IsNotNull(node, nameof(node)); _context = context; _id = RedmineUtility.LoadInt(node[IdProperty.XmlNodeName]); }
internal Project(RedmineServiceContext context, XmlNode node) : base(context, node) { _identifier = RedmineUtility.LoadString(node[IdentifierProperty.XmlNodeName]); _description = RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]); _parent = RedmineUtility.LoadNamedObject(node[ParentProperty.XmlNodeName], context.Projects.Lookup); _createdOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); _updatedOn = RedmineUtility.LoadDateForSure(node[UpdatedOnProperty.XmlNodeName]); }
internal News(RedmineServiceContext context, XmlNode node) : base(context, node) { _project = RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName], context.Projects.Lookup); _author = RedmineUtility.LoadNamedObject(node[AuthorProperty.XmlNodeName], context.Users.Lookup); _title = RedmineUtility.LoadString(node[TitleProperty.XmlNodeName]); _description = RedmineUtility.LoadString(node[SummaryProperty.XmlNodeName]); _summary = RedmineUtility.LoadString(node[SummaryProperty.XmlNodeName]); _createdOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); }
internal override void Update(XmlNode node) { base.Update(node); Identifier = RedmineUtility.LoadString(node[IdentifierProperty.XmlNodeName]); Description = RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]); Parent = RedmineUtility.LoadNamedObject(node[ParentProperty.XmlNodeName], Context.Projects.Lookup); CreatedOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); UpdatedOn = RedmineUtility.LoadDateForSure(node[UpdatedOnProperty.XmlNodeName]); }
internal ProjectVersion(RedmineServiceContext context, XmlNode node) : base(context, node) { _project = RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName], context.Projects.Lookup); _description = RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]); _status = RedmineUtility.LoadVersionStatus(node[StatusProperty.XmlNodeName]); _dueDate = RedmineUtility.LoadDate(node[DueDateProperty.XmlNodeName]); _createdOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); _updatedOn = RedmineUtility.LoadDateForSure(node[UpdatedOnProperty.XmlNodeName]); }
internal Attachment(RedmineServiceContext context, XmlNode node) : base(context, node) { _fileName = RedmineUtility.LoadString(node[FileNameProperty.XmlNodeName]); _fileSize = RedmineUtility.LoadInt(node[FileSizeProperty.XmlNodeName]); _contentType = RedmineUtility.LoadString(node[ContentTypeProperty.XmlNodeName]); _description = RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]); _contentUrl = RedmineUtility.LoadString(node[ContentUrlProperty.XmlNodeName]); _author = RedmineUtility.LoadNamedObject(node[AuthorProperty.XmlNodeName], context.Users.Lookup); _createdOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); }
internal override void Update(XmlNode node) { base.Update(node); Project = RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName], Context.Projects.Lookup); Author = RedmineUtility.LoadNamedObject(node[AuthorProperty.XmlNodeName], Context.Users.Lookup); Title = RedmineUtility.LoadString(node[TitleProperty.XmlNodeName]); Description = RedmineUtility.LoadString(node[SummaryProperty.XmlNodeName]); Summary = RedmineUtility.LoadString(node[SummaryProperty.XmlNodeName]); CreatedOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); }
internal override void Update(XmlNode node) { base.Update(node); Project = RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName], Context.Projects.Lookup); Description = RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]); Status = RedmineUtility.LoadVersionStatus(node[StatusProperty.XmlNodeName]); DueDate = RedmineUtility.LoadDate(node[DueDateProperty.XmlNodeName]); CreatedOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); UpdatedOn = RedmineUtility.LoadDateForSure(node[UpdatedOnProperty.XmlNodeName]); }
internal override void Update(XmlNode node) { base.Update(node); FileName = RedmineUtility.LoadString(node[FileNameProperty.XmlNodeName]); FileSize = RedmineUtility.LoadInt(node[FileSizeProperty.XmlNodeName]); ContentType = RedmineUtility.LoadString(node[ContentTypeProperty.XmlNodeName]); Description = RedmineUtility.LoadString(node[DescriptionProperty.XmlNodeName]); ContentUrl = RedmineUtility.LoadString(node[ContentUrlProperty.XmlNodeName]); Author = RedmineUtility.LoadNamedObject(node[AuthorProperty.XmlNodeName], Context.Users.Lookup); CreatedOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); }
internal override void Update(XmlNode node) { Verify.Argument.IsNotNull(node, nameof(node)); Login = RedmineUtility.LoadString(node[LoginProperty.XmlNodeName]); FirstName = RedmineUtility.LoadString(node[FirstNameProperty.XmlNodeName]); LastName = RedmineUtility.LoadString(node[LastNameProperty.XmlNodeName]); Name = FirstName + " " + LastName; Mail = RedmineUtility.LoadString(node[MailProperty.XmlNodeName]); CreatedOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); LastLoginOn = RedmineUtility.LoadDate(node[LastLoginOnProperty.XmlNodeName]); LoadMemberships(node["memberships"]); }
internal User(RedmineServiceContext context, XmlNode node) : this(context, RedmineUtility.LoadInt(node[IdProperty.XmlNodeName]), RedmineUtility.LoadString(node[FirstNameProperty.XmlNodeName]) + " " + RedmineUtility.LoadString(node[LastNameProperty.XmlNodeName])) { _login = RedmineUtility.LoadString(node[LoginProperty.XmlNodeName]); _firstName = RedmineUtility.LoadString(node[FirstNameProperty.XmlNodeName]); _lastName = RedmineUtility.LoadString(node[LastNameProperty.XmlNodeName]); _mail = RedmineUtility.LoadString(node[MailProperty.XmlNodeName]); _createdOn = RedmineUtility.LoadDateForSure(node[CreatedOnProperty.XmlNodeName]); _lastLoginOn = RedmineUtility.LoadDate(node[LastLoginOnProperty.XmlNodeName]); LoadMemberships(node["memberships"]); }
internal CustomFields(XmlNode node, Func <int, string, CustomField> initializer) { Verify.Argument.IsNotNull(initializer, nameof(initializer)); _values = new Dictionary <int, CustomFieldValue>(); if (node != null) { foreach (XmlNode childNode in node.ChildNodes) { var field = RedmineUtility.LoadNamedObject(childNode, initializer); var value = RedmineUtility.LoadString(childNode["value"]); _values.Add(field.Id, new CustomFieldValue(field, value)); } } }
private void LoadMemberships(XmlNode node) { var res = _memberships; if (node != null) { if (node.ChildNodes.Count != 0) { foreach (XmlNode childNode in node.ChildNodes) { var project = RedmineUtility.LoadNamedObject(childNode["project"], Context.Projects.Lookup); var id = project.Id; var roles = new List <UserRole>(); var rolesNode = childNode["roles"]; if (rolesNode != null) { foreach (XmlNode roleNode in rolesNode.ChildNodes) { var role = RedmineUtility.LoadNamedObject(roleNode, Context.UserRoles.Lookup); roles.Add(role); } } UserMembership membership; if (res.TryGetValue(id, out membership)) { membership = new UserMembership(this, project, roles); res[id] = membership; } else { membership = new UserMembership(this, project, roles); res.Add(id, membership); } } } else { _memberships.Clear(); } } else { _memberships.Clear(); } }
internal void Update(XmlNode node, Func <int, string, CustomField> initializer) { if (node == null || node.ChildNodes.Count == 0) { _values.Clear(); } else { var hs = Count != 0 ? new HashSet <int>(_values.Keys) : null; foreach (XmlNode childNode in node.ChildNodes) { var field = RedmineUtility.LoadNamedObject(childNode, initializer); var value = RedmineUtility.LoadString(childNode["value"]); CustomFieldValue cfv; if (_values.TryGetValue(field.Id, out cfv)) { cfv.Value = value; hs.Remove(field.Id); } else { cfv = new CustomFieldValue(field, value); _values.Add(field.Id, cfv); var handler = CustomFieldAdded; if (handler != null) { handler(this, new CustomFieldEventArgs(field)); } } } if (hs != null) { var handler2 = CustomFieldRemoved; foreach (var id in hs) { var cfv = _values[id]; _values.Remove(id); if (handler2 != null) { handler2(this, new CustomFieldEventArgs(cfv.Field)); } } } } }
internal T Lookup(XmlNode node) { Verify.Argument.IsNotNull(node, nameof(node)); var id = RedmineUtility.LoadInt(node[RedmineObject.IdProperty.XmlNodeName]); T obj; lock (SyncRoot) { if (!_cache.TryGetValue(id, out obj)) { obj = Create(node); _cache.Add(id, obj); } else { obj.Update(node); } } return(obj); }
internal override void Update(XmlNode node) { base.Update(node); Name = RedmineUtility.LoadString(node[NameProperty.XmlNodeName]); }
internal Query(RedmineServiceContext context, XmlNode node) : base(context, node) { _projectId = RedmineUtility.LoadInt(node[ProjectIdProperty.XmlNodeName]); _isPublic = RedmineUtility.LoadBoolean(node[IsPublicProperty.XmlNodeName]); }
internal IssueCategory(RedmineServiceContext context, XmlNode node) : base(context, node) { _project = RedmineUtility.LoadNamedObject(node[ProjectProperty.XmlNodeName], context.Projects.Lookup); _assignedTo = RedmineUtility.LoadNamedObject(node[AssignedToProperty.XmlNodeName], context.Users.Lookup); }
internal IssueStatus(RedmineServiceContext context, XmlNode node) : base(context, node) { _isDefault = RedmineUtility.LoadBoolean(node[IsDefaultProperty.XmlNodeName]); _isClosed = RedmineUtility.LoadBoolean(node[IsClosedProperty.XmlNodeName]); }
protected NamedRedmineObject(RedmineServiceContext context, XmlNode node) : base(context, node) { _name = RedmineUtility.LoadString(node[NameProperty.XmlNodeName]); }