Beispiel #1
0
        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]);
        }
Beispiel #2
0
        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]);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 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]);
 }
Beispiel #5
0
 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]);
 }
Beispiel #6
0
 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]);
 }
Beispiel #7
0
        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]);
        }
Beispiel #8
0
        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]);
        }
Beispiel #9
0
        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]);
        }
Beispiel #10
0
 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]);
 }
Beispiel #11
0
        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]);
        }
Beispiel #12
0
        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));
                }
            }
        }
Beispiel #13
0
        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();
            }
        }
Beispiel #14
0
 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));
                 }
             }
         }
     }
 }
Beispiel #15
0
 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);
 }