コード例 #1
0
ファイル: Forum.cs プロジェクト: girish66/ZenDeskApi
        public int CreateOrUpdateForum(Forum forum)
        {
            int existingId = GetExistingForumId(forum);

            if (existingId > 0)
            {
                forum.Id = existingId;

                //If it couldn't be updated
                if (!UpdateForum(forum))
                {
                    return(-1);
                }

                return(forum.Id);
            }


            var request = new ZenRestRequest
            {
                Method   = Method.POST,
                Resource = _forums + ".xml"
            };

            request.AddBody(forum);

            var res = Execute(request);

            return(GetIdFromLocationHeader(res));
        }
コード例 #2
0
ファイル: Group.cs プロジェクト: lucasjans/ZenDeskApi
        /// <summary>
        /// Note: You cannot add end users to groups they go in organizations.
        /// </summary>
        /// <param name="group"></param>
        /// <returns></returns>
        public int CreateOrUpdateGroup(Group group)
        {
            //Check to see if a group already exists
            var oldGroups = GetGroups().Where(x => x.Name == group.Name);

            if (oldGroups.Count() > 0)
            {
                group.Id = oldGroups.First().Id;
                if (UpdateGroup(group))
                {
                    return(group.Id);
                }

                return(-1);
            }

            //Make sure to use the UserIds not the Users
            group.CopyUsersToUserIds();

            var request = new ZenRestRequest
            {
                Method   = Method.POST,
                Resource = Groups + ".json"
            };

            request.AddBody(group);

            var res = Execute(request);

            return(GetIdFromLocationHeader(res));
        }
コード例 #3
0
        /// <summary>
        /// Creates the new user and returns their id. Or updates if that email address is already in the system.
        /// </summary>
        /// <param name="newUser"></param>
        /// <returns></returns>
        public int CreateOrUpdateUser(User newUser)
        {
            //Update if the user exists
            var users = QueryUsers(newUser.Email);

            if (users.Count > 0)
            {
                newUser.Id = users.First().Id;

                if (!UpdateUser(newUser))
                {
                    return(-1);
                }

                return((int)users.First().Id);
            }

            var request = new ZenRestRequest
            {
                Method   = Method.POST,
                Resource = Users + ".xml",
            };

            request.AddBody(newUser);

            var res = Execute(request);

            return(GetIdFromLocationHeader(res));
        }
コード例 #4
0
ファイル: Organization.cs プロジェクト: tyabele/ZenDeskApi
        public int CreateOrUpdateOrganization(Organization newOrg)
        {
            var orgs = GetOgranizations();
            var curOrg = orgs.Where(x => x.Name == newOrg.Name);

            if (curOrg.Count() > 0)
            {
                newOrg.Id = curOrg.First().Id;

                //If it couldn't be updated
                if (!UpdateOrganization(newOrg))
                    return -1;

                return curOrg.First().Id;
            }

            var request = new ZenRestRequest
            {
                Method = Method.POST,
                Resource = _organizations + ".xml"
            };

            request.AddBody(newOrg);

            var res = Execute(request);

            return GetIdFromLocationHeader(res);
        }
コード例 #5
0
ファイル: Forum.cs プロジェクト: zinark/ZendDeskApi
        public int CreateOrUpdateForum(Forum forum)
        {
            int existingId = GetExistingForumId(forum);

            if(existingId > 0)
            {
                forum.Id = existingId;

                //If it couldn't be updated
                if (!UpdateForum(forum))
                    return -1;

                return forum.Id;
            }

            var request = new ZenRestRequest
                              {
                                  Method = Method.POST,
                                  Resource = _forums + ".xml"
                              };
            request.AddBody(forum);

            var res = Execute(request);

            return GetIdFromLocationHeader(res);
        }
コード例 #6
0
ファイル: Organization.cs プロジェクト: girish66/ZenDeskApi
        public int CreateOrUpdateOrganization(Organization newOrg)
        {
            var orgs   = GetOgranizations();
            var curOrg = orgs.Where(x => x.Name == newOrg.Name);

            if (curOrg.Count() > 0)
            {
                newOrg.Id = curOrg.First().Id;

                //If it couldn't be updated
                if (!UpdateOrganization(newOrg))
                {
                    return(-1);
                }

                return(curOrg.First().Id);
            }

            var request = new ZenRestRequest
            {
                Method   = Method.POST,
                Resource = _organizations + ".xml"
            };

            request.AddBody(newOrg);

            var res = Execute(request);

            return(GetIdFromLocationHeader(res));
        }
コード例 #7
0
ファイル: Group.cs プロジェクト: zinark/ZendDeskApi
        /// <summary>
        /// Note: You cannot add end users to groups they go in organizations.        
        /// </summary>
        /// <param name="group"></param>
        /// <returns></returns>
        public int CreateOrUpdateGroup(Group group)
        {
            //Check to see if a group already exists
            var oldGroups = GetGroups().Where(x => x.Name == group.Name);
            if (oldGroups.Count() > 0)
            {
                group.Id = oldGroups.First().Id;
                if (UpdateGroup(group))
                    return group.Id;

                return -1;
            }

            //Make sure to use the UserIds not the Users
            group.CopyUsersToUserIds();

            var request = new ZenRestRequest
            {
                Method = Method.POST,
                Resource = Groups + ".xml"
            };

            request.AddBody(group);

            var res = Execute(request);

            return GetIdFromLocationHeader(res);
        }
コード例 #8
0
ファイル: Ticket.cs プロジェクト: nhstar/ZenDeskApi
        public bool AddComment(int ticketId, Comment comment)
        {
            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Tickets, ticketId)
            };
            request.AddBody(comment);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }
コード例 #9
0
ファイル: Ticket.cs プロジェクト: nhstar/ZenDeskApi
        public int CreateTicket(Ticket ticket)
        {
            var request = new ZenRestRequest
            {
                Method = Method.POST,
                Resource = Tickets + ".xml"
            };

            request.AddBody(ticket);

            var res = Execute(request);
            return GetIdFromLocationHeader(res);
        }
コード例 #10
0
        public bool UpdateEntry(Entry entry)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Entries, entry.Id)
            };

            request.AddBody(entry);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #11
0
        public int CreateEntry(Entry entry)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.POST,
                Resource = Entries + ".xml"
            };

            request.AddBody(entry);

            var res = Execute(request);

            return(GetIdFromLocationHeader(res));
        }
コード例 #12
0
        public bool UpdateUser(User user)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Users, user.Id)
            };

            request.AddBody(user);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #13
0
ファイル: EntriesAndPosts.cs プロジェクト: tyabele/ZenDeskApi
        public int CreatePost(Post post)
        {
            var request = new ZenRestRequest
            {
                Method = Method.POST,
                Resource = Posts
            };

            request.AddBody(post);

            var res = Execute(request);

            return GetIdFromLocationHeader(res);
        }
コード例 #14
0
ファイル: EntriesAndPosts.cs プロジェクト: tyabele/ZenDeskApi
        public int CreateEntry(Entry entry)
        {
            var request = new ZenRestRequest
            {
                Method = Method.POST,
                Resource = Entries + ".xml"
            };

            request.AddBody(entry);

            var res = Execute(request);

            return GetIdFromLocationHeader(res);
        }
コード例 #15
0
        public int CreatePost(Post post)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.POST,
                Resource = Posts
            };

            request.AddBody(post);

            var res = Execute(request);

            return(GetIdFromLocationHeader(res));
        }
コード例 #16
0
        /// <summary>
        /// Creates a new ticket AND creates a new user as the tickets requester, IF the user does not already exist (based on the requester email).
        /// If the requester exists, no user is created and the ticket is created with the existing user as requester
        /// </summary>
        /// <param name="ticket"></param>
        /// <returns></returns>
        public int CreateTicketWithRequester(Ticket ticket)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.POST,
                Resource = Tickets + ".xml"
            };

            request.AddBody(ticket);

            var res = Execute(request);

            return(GetIdFromLocationHeader(res));
        }
コード例 #17
0
        public bool AddComment(int ticketId, Comment comment)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Tickets, ticketId)
            };

            request.AddBody(comment);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #18
0
ファイル: Organization.cs プロジェクト: girish66/ZenDeskApi
        public bool UpdateOrganization(Organization org)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", _organizations, org.Id)
            };

            request.AddBody(org);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #19
0
ファイル: Forum.cs プロジェクト: girish66/ZenDeskApi
        public bool UpdateForum(Forum forum)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", _forums, forum.Id)
            };

            request.AddBody(forum);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #20
0
        /// <summary>
        /// To update custom ticket fields just add them to the ticket's TicketFieldEntries.
        /// Use GetTicketFields and then manually search to find the one you want to update.
        /// Note you can't add comments this way. Call AddComments to do that.
        /// </summary>
        /// <param name="ticket"></param>
        /// <returns></returns>
        public bool UpdateTicket(Ticket ticket)
        {
            ticket.Comments.Clear();
            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Tickets, ticket.NiceId.ToString())
            };

            request.AddBody(ticket);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #21
0
ファイル: Ticket.cs プロジェクト: nhstar/ZenDeskApi
        public int CreateTicketAsEndUser(string endUserEmail, Ticket ticket)
        {
            var request = new ZenRestRequest
            {
                Method = Method.POST,
                Resource = Requests + ".xml"
            };

            request.AddHeader(XOnBehalfOfEmail, endUserEmail);
            request.AddBody(ticket);

            //request.AddParameter("text/xml", string.Format("<ticket><subject>{0}</subject><description>{1}</description></ticket>", ticket.Subject, ticket.Description), ParameterType.RequestBody);

            var res = Execute(request);
            return GetIdFromLocationHeader(res);
        }
コード例 #22
0
ファイル: Group.cs プロジェクト: lucasjans/ZenDeskApi
        public bool UpdateGroup(Group group)
        {
            //Make sure to use the UserIds not the Users
            group.CopyUsersToUserIds();

            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.json", Groups, group.Id)
            };

            request.AddBody(group);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #23
0
        public int CreateTicketAsEndUser(string endUserEmail, Ticket ticket)
        {
            var request = new ZenRestRequest
            {
                Method   = Method.POST,
                Resource = Requests + ".xml"
            };

            request.AddHeader(XOnBehalfOfEmail, endUserEmail);
            request.AddBody(ticket);

            //request.AddParameter("text/xml", string.Format("<ticket><subject>{0}</subject><description>{1}</description></ticket>", ticket.Subject, ticket.Description), ParameterType.RequestBody);

            var res = Execute(request);

            return(GetIdFromLocationHeader(res));
        }
コード例 #24
0
        public bool UpdatePost(Post post)
        {
            if (post.Id <= 0)
            {
                return(false);
            }

            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Posts, post.Id)
            };

            request.AddBody(post);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #25
0
        public bool UpdateTicketAsEndUser(int ticketId, Comment comment)
        {
            string email = GetUserById(GetTicketById(ticketId).RequesterId).Email;

            var request = new ZenRestRequest
            {
                Method   = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Requests, ticketId.ToString())
            };

            request.AddHeader(XOnBehalfOfEmail, email);
            request.AddBody(comment);

            //request.AddParameter("text/xml", string.Format("<ticket><subject>{0}</subject><description>{1}</description></ticket>", ticket.Subject, ticket.Description), ParameterType.RequestBody);

            var res = Execute(request);

            return(res.StatusCode == System.Net.HttpStatusCode.OK);
        }
コード例 #26
0
ファイル: EntriesAndPosts.cs プロジェクト: tyabele/ZenDeskApi
        public bool UpdateEntry(Entry entry)
        {
            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Entries, entry.Id)
            };

            request.AddBody(entry);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }
コード例 #27
0
ファイル: User.cs プロジェクト: appfusions/ZenDeskApi
        public bool UpdateUser(User user)
        {
            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Users, user.Id)
            };

            request.AddBody(user);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }
コード例 #28
0
ファイル: User.cs プロジェクト: appfusions/ZenDeskApi
        /// <summary>
        /// Creates the new user and returns their id. Or updates if that email address is already in the system.
        /// </summary>
        /// <param name="newUser"></param>
        /// <returns></returns>
        public int CreateOrUpdateUser(User newUser)
        {
            //Update if the user exists
            var users = QueryUsers(newUser.Email);
            if (users.Count > 0)
            {
                newUser.Id = users.First().Id;

                if (!UpdateUser(newUser))
                    return -1;

                return (int)users.First().Id;
            }

            var request = new ZenRestRequest
            {
                Method = Method.POST,
                Resource = Users + ".xml",
            };

            request.AddBody(newUser);

            var res = Execute(request);

            return GetIdFromLocationHeader(res);
        }
コード例 #29
0
ファイル: Ticket.cs プロジェクト: nhstar/ZenDeskApi
        public bool UpdateTicketAsEndUser(int ticketId, Comment comment)
        {
            string email = GetUserById(GetTicketById(ticketId).RequesterId).Email;

            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Requests, ticketId.ToString())
            };

            request.AddHeader(XOnBehalfOfEmail, email);
            request.AddBody(comment);

            //request.AddParameter("text/xml", string.Format("<ticket><subject>{0}</subject><description>{1}</description></ticket>", ticket.Subject, ticket.Description), ParameterType.RequestBody);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }
コード例 #30
0
ファイル: Ticket.cs プロジェクト: nhstar/ZenDeskApi
        /// <summary>
        /// To update custom ticket fields just add them to the ticket's TicketFieldEntries.
        /// Use GetTicketFields and then manually search to find the one you want to update.
        /// Note you can't add comments this way. Call AddComments to do that.
        /// </summary>
        /// <param name="ticket"></param>
        /// <returns></returns>
        public bool UpdateTicket(Ticket ticket)
        {
            ticket.Comments.Clear();
            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Tickets, ticket.NiceId.ToString())
            };

            request.AddBody(ticket);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }
コード例 #31
0
ファイル: Organization.cs プロジェクト: tyabele/ZenDeskApi
        public bool UpdateOrganization(Organization org)
        {
            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", _organizations, org.Id)
            };

            request.AddBody(org);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }
コード例 #32
0
ファイル: Group.cs プロジェクト: zinark/ZendDeskApi
        public bool UpdateGroup(Group group)
        {
            //Make sure to use the UserIds not the Users
            group.CopyUsersToUserIds();

            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Groups, group.Id)
            };

            request.AddBody(group);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }
コード例 #33
0
ファイル: EntriesAndPosts.cs プロジェクト: tyabele/ZenDeskApi
        public bool UpdatePost(Post post)
        {
            if (post.Id <= 0)
                return false;

            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", Posts, post.Id)
            };

            request.AddBody(post);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }
コード例 #34
0
ファイル: Forum.cs プロジェクト: zinark/ZendDeskApi
        public bool UpdateForum(Forum forum)
        {
            var request = new ZenRestRequest
            {
                Method = Method.PUT,
                Resource = string.Format("{0}/{1}.xml", _forums, forum.Id)
            };

            request.AddBody(forum);

            var res = Execute(request);

            return res.StatusCode == System.Net.HttpStatusCode.OK;
        }