chore: initial commit
This commit is contained in:
@@ -0,0 +1,539 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ExternalDataSync.ESB_daq {
|
||||
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
[System.ServiceModel.ServiceContractAttribute(Namespace="http://zk.ws.epichust.com/", ConfigurationName="ESB_daq.UexDaqInfoInterface")]
|
||||
public interface UexDaqInfoInterface {
|
||||
|
||||
// CODEGEN: 参数“return”需要其他方案信息,使用参数模式无法捕获这些信息。特定特性为“System.Xml.Serialization.XmlElementAttribute”。
|
||||
[System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")]
|
||||
[System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
|
||||
[return: System.ServiceModel.MessageParameterAttribute(Name="return")]
|
||||
ExternalDataSync.ESB_daq.daqResponse daq(ExternalDataSync.ESB_daq.daq request);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")]
|
||||
System.Threading.Tasks.Task<ExternalDataSync.ESB_daq.daqResponse> daqAsync(ExternalDataSync.ESB_daq.daq request);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4161.0")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://zk.ws.epichust.com/")]
|
||||
public partial class interfaceRequestHeader : object, System.ComponentModel.INotifyPropertyChanged {
|
||||
|
||||
private string interfaceIDField;
|
||||
|
||||
private string messageIDField;
|
||||
|
||||
private string receiverField;
|
||||
|
||||
private string senderField;
|
||||
|
||||
private string transIDField;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
|
||||
public string interfaceID {
|
||||
get {
|
||||
return this.interfaceIDField;
|
||||
}
|
||||
set {
|
||||
this.interfaceIDField = value;
|
||||
this.RaisePropertyChanged("interfaceID");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
|
||||
public string messageID {
|
||||
get {
|
||||
return this.messageIDField;
|
||||
}
|
||||
set {
|
||||
this.messageIDField = value;
|
||||
this.RaisePropertyChanged("messageID");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
|
||||
public string receiver {
|
||||
get {
|
||||
return this.receiverField;
|
||||
}
|
||||
set {
|
||||
this.receiverField = value;
|
||||
this.RaisePropertyChanged("receiver");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
|
||||
public string sender {
|
||||
get {
|
||||
return this.senderField;
|
||||
}
|
||||
set {
|
||||
this.senderField = value;
|
||||
this.RaisePropertyChanged("sender");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)]
|
||||
public string transID {
|
||||
get {
|
||||
return this.transIDField;
|
||||
}
|
||||
set {
|
||||
this.transIDField = value;
|
||||
this.RaisePropertyChanged("transID");
|
||||
}
|
||||
}
|
||||
|
||||
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
protected void RaisePropertyChanged(string propertyName) {
|
||||
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
|
||||
if ((propertyChanged != null)) {
|
||||
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4161.0")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://zk.ws.epichust.com/")]
|
||||
public partial class interfaceResponse : object, System.ComponentModel.INotifyPropertyChanged {
|
||||
|
||||
private string commentField;
|
||||
|
||||
private string interfaceIDField;
|
||||
|
||||
private string messageIDField;
|
||||
|
||||
private string resultCodeField;
|
||||
|
||||
private string resultMessageField;
|
||||
|
||||
private string resultTypeField;
|
||||
|
||||
private string transIDField;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
|
||||
public string comment {
|
||||
get {
|
||||
return this.commentField;
|
||||
}
|
||||
set {
|
||||
this.commentField = value;
|
||||
this.RaisePropertyChanged("comment");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
|
||||
public string interfaceID {
|
||||
get {
|
||||
return this.interfaceIDField;
|
||||
}
|
||||
set {
|
||||
this.interfaceIDField = value;
|
||||
this.RaisePropertyChanged("interfaceID");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
|
||||
public string messageID {
|
||||
get {
|
||||
return this.messageIDField;
|
||||
}
|
||||
set {
|
||||
this.messageIDField = value;
|
||||
this.RaisePropertyChanged("messageID");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
|
||||
public string resultCode {
|
||||
get {
|
||||
return this.resultCodeField;
|
||||
}
|
||||
set {
|
||||
this.resultCodeField = value;
|
||||
this.RaisePropertyChanged("resultCode");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)]
|
||||
public string resultMessage {
|
||||
get {
|
||||
return this.resultMessageField;
|
||||
}
|
||||
set {
|
||||
this.resultMessageField = value;
|
||||
this.RaisePropertyChanged("resultMessage");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=5)]
|
||||
public string resultType {
|
||||
get {
|
||||
return this.resultTypeField;
|
||||
}
|
||||
set {
|
||||
this.resultTypeField = value;
|
||||
this.RaisePropertyChanged("resultType");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=6)]
|
||||
public string transID {
|
||||
get {
|
||||
return this.transIDField;
|
||||
}
|
||||
set {
|
||||
this.transIDField = value;
|
||||
this.RaisePropertyChanged("transID");
|
||||
}
|
||||
}
|
||||
|
||||
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
protected void RaisePropertyChanged(string propertyName) {
|
||||
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
|
||||
if ((propertyChanged != null)) {
|
||||
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.4161.0")]
|
||||
[System.SerializableAttribute()]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://zk.ws.epichust.com/")]
|
||||
public partial class uexDaqInfoExTo : object, System.ComponentModel.INotifyPropertyChanged {
|
||||
|
||||
private string containerIDField;
|
||||
|
||||
private string daqDateField;
|
||||
|
||||
private string daqIDField;
|
||||
|
||||
private string daqTypeField;
|
||||
|
||||
private string discardQtyField;
|
||||
|
||||
private string effectiveQtyField;
|
||||
|
||||
private string opCodeField;
|
||||
|
||||
private string operateTypeField;
|
||||
|
||||
private string produCodeField;
|
||||
|
||||
private string siteField;
|
||||
|
||||
private string stationField;
|
||||
|
||||
private string unEffectiveQtyField;
|
||||
|
||||
private string workCenterField;
|
||||
|
||||
private string workOrderCodeField;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
|
||||
public string containerID {
|
||||
get {
|
||||
return this.containerIDField;
|
||||
}
|
||||
set {
|
||||
this.containerIDField = value;
|
||||
this.RaisePropertyChanged("containerID");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
|
||||
public string daqDate {
|
||||
get {
|
||||
return this.daqDateField;
|
||||
}
|
||||
set {
|
||||
this.daqDateField = value;
|
||||
this.RaisePropertyChanged("daqDate");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
|
||||
public string daqID {
|
||||
get {
|
||||
return this.daqIDField;
|
||||
}
|
||||
set {
|
||||
this.daqIDField = value;
|
||||
this.RaisePropertyChanged("daqID");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
|
||||
public string daqType {
|
||||
get {
|
||||
return this.daqTypeField;
|
||||
}
|
||||
set {
|
||||
this.daqTypeField = value;
|
||||
this.RaisePropertyChanged("daqType");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)]
|
||||
public string discardQty {
|
||||
get {
|
||||
return this.discardQtyField;
|
||||
}
|
||||
set {
|
||||
this.discardQtyField = value;
|
||||
this.RaisePropertyChanged("discardQty");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=5)]
|
||||
public string effectiveQty {
|
||||
get {
|
||||
return this.effectiveQtyField;
|
||||
}
|
||||
set {
|
||||
this.effectiveQtyField = value;
|
||||
this.RaisePropertyChanged("effectiveQty");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=6)]
|
||||
public string opCode {
|
||||
get {
|
||||
return this.opCodeField;
|
||||
}
|
||||
set {
|
||||
this.opCodeField = value;
|
||||
this.RaisePropertyChanged("opCode");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=7)]
|
||||
public string operateType {
|
||||
get {
|
||||
return this.operateTypeField;
|
||||
}
|
||||
set {
|
||||
this.operateTypeField = value;
|
||||
this.RaisePropertyChanged("operateType");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=8)]
|
||||
public string produCode {
|
||||
get {
|
||||
return this.produCodeField;
|
||||
}
|
||||
set {
|
||||
this.produCodeField = value;
|
||||
this.RaisePropertyChanged("produCode");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=9)]
|
||||
public string site {
|
||||
get {
|
||||
return this.siteField;
|
||||
}
|
||||
set {
|
||||
this.siteField = value;
|
||||
this.RaisePropertyChanged("site");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=10)]
|
||||
public string station {
|
||||
get {
|
||||
return this.stationField;
|
||||
}
|
||||
set {
|
||||
this.stationField = value;
|
||||
this.RaisePropertyChanged("station");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=11)]
|
||||
public string unEffectiveQty {
|
||||
get {
|
||||
return this.unEffectiveQtyField;
|
||||
}
|
||||
set {
|
||||
this.unEffectiveQtyField = value;
|
||||
this.RaisePropertyChanged("unEffectiveQty");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=12)]
|
||||
public string workCenter {
|
||||
get {
|
||||
return this.workCenterField;
|
||||
}
|
||||
set {
|
||||
this.workCenterField = value;
|
||||
this.RaisePropertyChanged("workCenter");
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=13)]
|
||||
public string workOrderCode {
|
||||
get {
|
||||
return this.workOrderCodeField;
|
||||
}
|
||||
set {
|
||||
this.workOrderCodeField = value;
|
||||
this.RaisePropertyChanged("workOrderCode");
|
||||
}
|
||||
}
|
||||
|
||||
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
protected void RaisePropertyChanged(string propertyName) {
|
||||
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
|
||||
if ((propertyChanged != null)) {
|
||||
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
[System.ServiceModel.MessageContractAttribute(WrapperName="daq", WrapperNamespace="http://zk.ws.epichust.com/", IsWrapped=true)]
|
||||
public partial class daq {
|
||||
|
||||
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://zk.ws.epichust.com/", Order=0)]
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
||||
public ExternalDataSync.ESB_daq.interfaceRequestHeader arg0;
|
||||
|
||||
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://zk.ws.epichust.com/", Order=1)]
|
||||
[System.Xml.Serialization.XmlElementAttribute("arg1", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
||||
public ExternalDataSync.ESB_daq.uexDaqInfoExTo[] arg1;
|
||||
|
||||
public daq() {
|
||||
}
|
||||
|
||||
public daq(ExternalDataSync.ESB_daq.interfaceRequestHeader arg0, ExternalDataSync.ESB_daq.uexDaqInfoExTo[] arg1) {
|
||||
this.arg0 = arg0;
|
||||
this.arg1 = arg1;
|
||||
}
|
||||
}
|
||||
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
[System.ServiceModel.MessageContractAttribute(WrapperName="daqResponse", WrapperNamespace="http://zk.ws.epichust.com/", IsWrapped=true)]
|
||||
public partial class daqResponse {
|
||||
|
||||
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://zk.ws.epichust.com/", Order=0)]
|
||||
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
|
||||
public ExternalDataSync.ESB_daq.interfaceResponse @return;
|
||||
|
||||
public daqResponse() {
|
||||
}
|
||||
|
||||
public daqResponse(ExternalDataSync.ESB_daq.interfaceResponse @return) {
|
||||
this.@return = @return;
|
||||
}
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
public interface UexDaqInfoInterfaceChannel : ExternalDataSync.ESB_daq.UexDaqInfoInterface, System.ServiceModel.IClientChannel {
|
||||
}
|
||||
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
public partial class UexDaqInfoInterfaceClient : System.ServiceModel.ClientBase<ExternalDataSync.ESB_daq.UexDaqInfoInterface>, ExternalDataSync.ESB_daq.UexDaqInfoInterface {
|
||||
|
||||
public UexDaqInfoInterfaceClient() {
|
||||
}
|
||||
|
||||
public UexDaqInfoInterfaceClient(string endpointConfigurationName) :
|
||||
base(endpointConfigurationName) {
|
||||
}
|
||||
|
||||
public UexDaqInfoInterfaceClient(string endpointConfigurationName, string remoteAddress) :
|
||||
base(endpointConfigurationName, remoteAddress) {
|
||||
}
|
||||
|
||||
public UexDaqInfoInterfaceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
|
||||
base(endpointConfigurationName, remoteAddress) {
|
||||
}
|
||||
|
||||
public UexDaqInfoInterfaceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
|
||||
base(binding, remoteAddress) {
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
ExternalDataSync.ESB_daq.daqResponse ExternalDataSync.ESB_daq.UexDaqInfoInterface.daq(ExternalDataSync.ESB_daq.daq request) {
|
||||
return base.Channel.daq(request);
|
||||
}
|
||||
|
||||
public ExternalDataSync.ESB_daq.interfaceResponse daq(ExternalDataSync.ESB_daq.interfaceRequestHeader arg0, ExternalDataSync.ESB_daq.uexDaqInfoExTo[] arg1) {
|
||||
ExternalDataSync.ESB_daq.daq inValue = new ExternalDataSync.ESB_daq.daq();
|
||||
inValue.arg0 = arg0;
|
||||
inValue.arg1 = arg1;
|
||||
ExternalDataSync.ESB_daq.daqResponse retVal = ((ExternalDataSync.ESB_daq.UexDaqInfoInterface)(this)).daq(inValue);
|
||||
return retVal.@return;
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
System.Threading.Tasks.Task<ExternalDataSync.ESB_daq.daqResponse> ExternalDataSync.ESB_daq.UexDaqInfoInterface.daqAsync(ExternalDataSync.ESB_daq.daq request) {
|
||||
return base.Channel.daqAsync(request);
|
||||
}
|
||||
|
||||
public System.Threading.Tasks.Task<ExternalDataSync.ESB_daq.daqResponse> daqAsync(ExternalDataSync.ESB_daq.interfaceRequestHeader arg0, ExternalDataSync.ESB_daq.uexDaqInfoExTo[] arg1) {
|
||||
ExternalDataSync.ESB_daq.daq inValue = new ExternalDataSync.ESB_daq.daq();
|
||||
inValue.arg0 = arg0;
|
||||
inValue.arg1 = arg1;
|
||||
return ((ExternalDataSync.ESB_daq.UexDaqInfoInterface)(this)).daqAsync(inValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user