diff --git a/.gitignore b/.gitignore
index e98c498d..20beccf4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,6 @@ plugins/*/obj
packages
web/avatars
web/users
-web/Web References
build
.nuget
.gitignore
diff --git a/web/Web References/sms.diamondcard.us/Reference.cs b/web/Web References/sms.diamondcard.us/Reference.cs
new file mode 100644
index 00000000..08629e9a
--- /dev/null
+++ b/web/Web References/sms.diamondcard.us/Reference.cs
@@ -0,0 +1,322 @@
+// ------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Mono Runtime Version: 4.0.30319.17020
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+// ------------------------------------------------------------------------------
+
+namespace Yavsc.sms.diamondcard.us {
+
+
+ ///
+ [System.Web.Services.WebServiceBinding(Name="SMSapi", Namespace="http://sms.diamondcard.us/SMSapi")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class SMSapiHandlerService : System.Web.Services.Protocols.SoapHttpClientProtocol {
+
+ private System.Threading.SendOrPostCallback sendOperationCompleted;
+
+ private System.Threading.SendOrPostCallback statusOperationCompleted;
+
+ public SMSapiHandlerService() {
+ this.Url = "http://sms.diamondcard.us/";
+ }
+
+ public SMSapiHandlerService(string url) {
+ this.Url = url;
+ }
+
+ public event sendCompletedEventHandler sendCompleted;
+
+ public event statusCompletedEventHandler statusCompleted;
+
+ ///
+///Sending request
+///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://sms.diamondcard.us/SMSapi#send", RequestNamespace="http://sms.diamondcard.us/SMSapi", ResponseNamespace="http://sms.diamondcard.us/SMSapi", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
+ [return: System.Xml.Serialization.XmlElementAttribute("out")]
+ public PodCustomTypesSendOut send(PodCustomTypesSendIn inParams) {
+ object[] results = this.Invoke("send", new object[] {
+ inParams});
+ return ((PodCustomTypesSendOut)(results[0]));
+ }
+
+ public System.IAsyncResult Beginsend(PodCustomTypesSendIn inParams, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("send", new object[] {
+ inParams}, callback, asyncState);
+ }
+
+ public PodCustomTypesSendOut Endsend(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((PodCustomTypesSendOut)(results[0]));
+ }
+
+ public void sendAsync(PodCustomTypesSendIn inParams) {
+ this.sendAsync(inParams, null);
+ }
+
+ public void sendAsync(PodCustomTypesSendIn inParams, object userState) {
+ if ((this.sendOperationCompleted == null)) {
+ this.sendOperationCompleted = new System.Threading.SendOrPostCallback(this.OnsendCompleted);
+ }
+ this.InvokeAsync("send", new object[] {
+ inParams}, this.sendOperationCompleted, userState);
+ }
+
+ private void OnsendCompleted(object arg) {
+ if ((this.sendCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.sendCompleted(this, new sendCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+///Sending status request
+///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://sms.diamondcard.us/SMSapi#status", RequestNamespace="http://sms.diamondcard.us/SMSapi", ResponseNamespace="http://sms.diamondcard.us/SMSapi", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped, Use=System.Web.Services.Description.SoapBindingUse.Literal)]
+ [return: System.Xml.Serialization.XmlElementAttribute("out")]
+ public PodCustomTypesStatusOut status(PodCustomTypesStatusIn inParams) {
+ object[] results = this.Invoke("status", new object[] {
+ inParams});
+ return ((PodCustomTypesStatusOut)(results[0]));
+ }
+
+ public System.IAsyncResult Beginstatus(PodCustomTypesStatusIn inParams, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("status", new object[] {
+ inParams}, callback, asyncState);
+ }
+
+ public PodCustomTypesStatusOut Endstatus(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((PodCustomTypesStatusOut)(results[0]));
+ }
+
+ public void statusAsync(PodCustomTypesStatusIn inParams) {
+ this.statusAsync(inParams, null);
+ }
+
+ public void statusAsync(PodCustomTypesStatusIn inParams, object userState) {
+ if ((this.statusOperationCompleted == null)) {
+ this.statusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnstatusCompleted);
+ }
+ this.InvokeAsync("status", new object[] {
+ inParams}, this.statusOperationCompleted, userState);
+ }
+
+ private void OnstatusCompleted(object arg) {
+ if ((this.statusCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.statusCompleted(this, new statusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17020")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://sms.diamondcard.us/SMSapi")]
+ public partial class PodCustomTypesSendIn {
+
+ ///
+///Account Id
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string AccId;
+
+ ///
+///PIN code
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string PinCode;
+
+ ///
+///Message to sent
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string MsgTxt;
+
+ ///
+///Send From phone number
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string SendFrom;
+
+ ///
+///Phone number or list of phone numbers to send message to
+///
+ [System.Xml.Serialization.XmlElementAttribute("Destination", IsNullable=true)]
+ public string[] Destination;
+
+ ///
+///If this parameter set to 1 messages will be sent to all valid phone numbers in the list
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="int")]
+ public System.Nullable IgnoreInvNumbers;
+
+ ///
+///If this parameter set to 1 sending will start and go on till you have enough funds on your account
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="int")]
+ public System.Nullable IgnoreInsufBalance;
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17020")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://sms.diamondcard.us/SMSapi")]
+ public partial class PodCustomTypesSendOut {
+
+ ///
+///ErrCode - one of the following: empty - success, INVDEST - invalid destinations error. List of invalid phone numbers available at 'InvalidDestinations' array, LOWBALANCE - Insufficient balance, NOTAVAIL - Service not available, ERR - misc errors. More details available at ErrMsg
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string ErrCode;
+
+ ///
+///Error description text
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string ErrMsg;
+
+ ///
+///Sending Id in case of successfull sending
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="int")]
+ public System.Nullable SendingId;
+
+ ///
+///When ErrCode=INVDEST this field contains array of invalid phone numbers
+///
+ [System.Xml.Serialization.XmlElementAttribute("InvalidDestinations", IsNullable=true)]
+ public string[] InvalidDestinations;
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17020")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://sms.diamondcard.us/SMSapi")]
+ public partial class PodCustomTypesStatusIn {
+
+ ///
+///Account Id
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string AccId;
+
+ ///
+///PIN code
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string PinCode;
+
+ ///
+///Sending Id
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="int")]
+ public System.Nullable SendingId;
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17020")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://sms.diamondcard.us/SMSapi")]
+ public partial class PodCustomTypesStatusOut {
+
+ ///
+///ErrCode - one of the following: empty - success, ERR - misc errors. More details available at ErrMsg
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string ErrCode;
+
+ ///
+///Error description text
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string ErrMsg;
+
+ ///
+///Number of messages in queue
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="int")]
+ public System.Nullable Queue;
+
+ ///
+///Number of sent messages
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="int")]
+ public System.Nullable Sent;
+
+ ///
+///Number of delivered messages (if available)
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="int")]
+ public System.Nullable Delivered;
+
+ ///
+///Number of failed messages
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="int")]
+ public System.Nullable Failed;
+
+ ///
+///How much this sending costs
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, DataType="float")]
+ public System.Nullable Cost;
+
+ ///
+///Currency code for Cost
+///
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string Currency;
+ }
+
+ public partial class sendCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal sendCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ public PodCustomTypesSendOut Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((PodCustomTypesSendOut)(this.results[0]));
+ }
+ }
+ }
+
+ public delegate void sendCompletedEventHandler(object sender, sendCompletedEventArgs args);
+
+ public partial class statusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal statusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ public PodCustomTypesStatusOut Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((PodCustomTypesStatusOut)(this.results[0]));
+ }
+ }
+ }
+
+ public delegate void statusCompletedEventHandler(object sender, statusCompletedEventArgs args);
+}
diff --git a/web/Web References/sms.diamondcard.us/Reference.map b/web/Web References/sms.diamondcard.us/Reference.map
new file mode 100644
index 00000000..37e15de8
--- /dev/null
+++ b/web/Web References/sms.diamondcard.us/Reference.map
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/web/Web References/sms.diamondcard.us/smsapi.wsdl b/web/Web References/sms.diamondcard.us/smsapi.wsdl
new file mode 100644
index 00000000..18d1f951
--- /dev/null
+++ b/web/Web References/sms.diamondcard.us/smsapi.wsdl
@@ -0,0 +1,219 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ErrCode - one of the following: empty - success, INVDEST - invalid destinations error. List of invalid phone numbers available at 'InvalidDestinations' array, LOWBALANCE - Insufficient balance, NOTAVAIL - Service not available, ERR - misc errors. More details available at ErrMsg
+
+
+
+
+ Error description text
+
+
+
+
+ Sending Id in case of successfull sending
+
+
+
+
+ When ErrCode=INVDEST this field contains array of invalid phone numbers
+
+
+
+
+
+
+
+
+ Account Id
+
+
+
+
+ PIN code
+
+
+
+
+ Sending Id
+
+
+
+
+
+
+
+
+ Account Id
+
+
+
+
+ PIN code
+
+
+
+
+ Message to sent
+
+
+
+
+ Send From phone number
+
+
+
+
+ Phone number or list of phone numbers to send message to
+
+
+
+
+ If this parameter set to 1 messages will be sent to all valid phone numbers in the list
+
+
+
+
+ If this parameter set to 1 sending will start and go on till you have enough funds on your account
+
+
+
+
+
+
+
+
+ ErrCode - one of the following: empty - success, ERR - misc errors. More details available at ErrMsg
+
+
+
+
+ Error description text
+
+
+
+
+ Number of messages in queue
+
+
+
+
+ Number of sent messages
+
+
+
+
+ Number of delivered messages (if available)
+
+
+
+
+ Number of failed messages
+
+
+
+
+ How much this sending costs
+
+
+
+
+ Currency code for Cost
+
+
+
+
+
+
+
+
+ input hash
+
+
+
+
+ output hash
+
+
+
+
+ input hash
+
+
+
+
+ output hash
+
+
+
+
+ Sending request
+
+
+
+
+ Sending status request
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file