2 using System
.Collections
;
3 using System
.Collections
.Generic
;
4 using System
.Collections
.Specialized
;
5 using System
.Configuration
;
9 using System
.Threading
;
10 using System
.Web
.Services
;
11 using System
.Web
.Services
.Description
;
12 using System
.Web
.Services
.Discovery
;
13 using System
.Web
.Services
.Protocols
;
15 using Meebey
.SmartIrc4net
;
16 using Microsoft
.TeamFoundation
.Client
;
17 using Microsoft
.TeamFoundation
.VersionControl
.Client
;
18 using Microsoft
.TeamFoundation
.VersionControl
.Common
;
21 [System
.Web
.Services
.WebServiceBinding(Name
="AdminSoap", Namespace
="http://schemas.microsoft.com/TeamFoundation/2005/06/VersionControl/Admin/03")]
22 public class AdminStats
: System
.Web
.Services
.Protocols
.SoapHttpClientProtocol
{
24 public AdminStats(string url
, ICredentials credentials
)
26 this.Url
= url
+ "/VersionControl/v1.0/administration.asmx";
27 this.Credentials
= credentials
;
30 [System
.Web
.Services
.Protocols
.SoapDocumentMethodAttribute("http://schemas.microsoft.com/TeamFoundation/2005/06/VersionControl/Admin/03/QueryRepositoryInformation", RequestNamespace
="http://schemas.microsoft.com/TeamFoundation/2005/06/VersionControl/Admin/03", ResponseNamespace
="http://schemas.microsoft.com/TeamFoundation/2005/06/VersionControl/Admin/03", ParameterStyle
=System
.Web
.Services
.Protocols
.SoapParameterStyle
.Wrapped
, Use
=System
.Web
.Services
.Description
.SoapBindingUse
.Literal
)]
31 public AdminRepositoryInfo
QueryRepositoryInformation()
33 object[] results
= this.Invoke("QueryRepositoryInformation", new object[0]);
34 return ((AdminRepositoryInfo
)(results
[0]));
38 [System
.Xml
.Serialization
.XmlTypeAttribute(Namespace
="http://schemas.microsoft.com/TeamFoundation/2005/06/VersionControl/Admin/03")]
39 public class AdminRepositoryInfo
{
41 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
44 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
45 public int GroupCount
;
47 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
48 public int WorkspaceCount
;
50 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
51 public int ShelvesetCount
;
53 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
56 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
57 public int FolderCount
;
59 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
60 public int MaxChangesetID
;
62 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
63 public int PendingChangeCount
;
65 [System
.Xml
.Serialization
.XmlAttributeAttribute(Namespace
="")]
66 public int ShelvesetDeletedCount
;
69 partial class NotifierDaemon
71 void OnStatsCommand(IrcEventArgs e
)
73 NetworkCredential creds
= new NetworkCredential(AppSettings
.Username
, AppSettings
.Password
, AppSettings
.Domain
);
74 AdminStats stats
= new AdminStats(AppSettings
.TfsUrl
, creds
);
75 AdminRepositoryInfo info
= stats
.QueryRepositoryInformation();
77 CommandMessage("Files: " + info
.FileCount
);
78 CommandMessage("Folders: " + info
.FolderCount
);
79 CommandMessage("Groups: " + info
.GroupCount
);
80 CommandMessage("Pending Changes: " + info
.PendingChangeCount
);
81 CommandMessage("Shelvesets: " + info
.ShelvesetCount
);
82 CommandMessage("Users: " + info
.UserCount
);
83 CommandMessage("Workspaces: " + info
.WorkspaceCount
);