public static TicketRequest FromResponseData(Ticket responseData)
 {
     return TicketRequest.FromResponseType<Ticket, TicketRequest>(responseData);
 }
        private void CompareTickets(Ticket one, Ticket two)
        {
            Assert.AreEqual(one.CreationMode, two.CreationMode);
            Assert.AreEqual(one.CreationTime, two.CreationTime);
            Assert.AreEqual(one.CreationType, two.CreationType);
            Assert.AreEqual(one.Creator, two.Creator);
            Assert.AreEqual(one.DepartmentId, two.DepartmentId);
            Assert.AreEqual(one.DisplayId, two.DisplayId);
            Assert.AreEqual(one.Email, two.Email);
            Assert.AreEqual(one.EscalationRuleId, two.EscalationRuleId);
            Assert.AreEqual(one.TemplateGroupId, two.TemplateGroupId);
            Assert.AreEqual(one.FlagType, two.FlagType);
            Assert.AreEqual(one.FullName, two.FullName);
            Assert.AreEqual(one.Id, two.Id);
            Assert.AreEqual(one.IPAddress, two.IPAddress);
            Assert.AreEqual(one.IsEscalated, two.IsEscalated);
            Assert.AreEqual(one.LastActivity, two.LastActivity);
            Assert.AreEqual(one.LastReplier, two.LastReplier);
            Assert.AreEqual(one.LastStaffReply, two.LastStaffReply);
            Assert.AreEqual(one.LastUserReply, two.LastUserReply);
            Assert.AreEqual(one.NextReplyDue, two.NextReplyDue);

            Assert.AreEqual(one.Posts.Count, two.Posts.Count);
            Assert.AreEqual(one.Notes.Count, two.Notes.Count);

            for (int i = 0; i < one.Notes.Count; i++)
            {
                TicketNoteTests.CompareTicketNote(one.Notes[i], two.Notes[i]);
            }

            Assert.AreEqual(one.OwnerStaffId, two.OwnerStaffId);
            Assert.AreEqual(one.OwnerStaffName, two.OwnerStaffName);

            for (int i = 0; i < one.Posts.Count; i++)
            {
                TicketPostTests.CompareTicketPost(one.Posts[i], two.Posts[i]);
            }

            Assert.AreEqual(one.PriorityId, two.PriorityId);
            Assert.AreEqual(one.Replies, two.Replies);
            Assert.AreEqual(one.ResolutionDue, two.ResolutionDue);
            Assert.AreEqual(one.SlaPlanId, two.SlaPlanId);
            Assert.AreEqual(one.StatusId, two.StatusId);
            Assert.AreEqual(one.Subject, two.Subject);
            Assert.AreEqual(one.Tags, two.Tags);
            Assert.AreEqual(one.TypeId, two.TypeId);
            Assert.AreEqual(one.UserId, two.UserId);
            Assert.AreEqual(one.UserOrganization, two.UserOrganization);
            Assert.AreEqual(one.UserOrganizationId.HasValue, two.UserOrganizationId.HasValue);

            if (one.UserOrganizationId.HasValue)
            {
                Assert.AreEqual(one.UserOrganizationId.Value, two.UserOrganizationId.Value);
            }

            //Assert.AreEqual(one.Watcher, two.Watcher);
            //Assert.AreEqual(one.Workflow, two.Workflow);

            AssertObjectXmlEqual<Ticket>(one, two);
        }