Skip to content

Commit

Permalink
DDCORE-8007 Extended Poa Validation Contracts (#1143)
Browse files Browse the repository at this point in the history
* Extended contracts
  • Loading branch information
SuvorovNM authored Sep 4, 2024
1 parent deeb3ea commit 6168f1d
Show file tree
Hide file tree
Showing 3 changed files with 173 additions and 4 deletions.
22 changes: 21 additions & 1 deletion proto/PowersOfAttorney/PowerOfAttorneyValidation.proto
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ message PowerOfAttorneyValidationStatus {
optional Severity Severity = 1 [default = UnknownSeverity];
optional PowerOfAttorneyValidationStatusNamedId StatusNamedId = 2 [default = UnknownStatus];
optional string StatusText = 3;
repeated PowerOfAttorneyValidationError Errors = 4;
repeated PowerOfAttorneyValidationError Errors = 4 [deprecated = true];
optional ValidationProtocol ValidationProtocol = 5;
optional PowerOfAttorneyValidationError OperationError = 6;
}

enum PowerOfAttorneyValidationStatusNamedId {
Expand All @@ -17,6 +19,7 @@ enum PowerOfAttorneyValidationStatusNamedId {
IsNotValid = 3;
ValidationError = 4;
IsNotAttached = 5;
HasWarnings = 6;
}

message PowerOfAttorneyValidationError {
Expand All @@ -37,3 +40,20 @@ message ConfidantCertificateToPrevalidate {
message PowerOfAttorneyPrevalidateResult {
required PowerOfAttorneyValidationStatus PrevalidateStatus = 1;
}

message ValidationProtocol {
repeated ValidationCheckResult CheckResults = 1;
}

message ValidationCheckResult {
optional PowerOfAttorneyValidationCheckStatus Status = 1 [default = UnknownCheckStatus];
required string Name = 2;
optional PowerOfAttorneyValidationError Error = 3;
}

enum PowerOfAttorneyValidationCheckStatus {
UnknownCheckStatus = 0; //reserved for backward compatibility
Ok = 1;
Warning = 2;
Error = 3;
}
61 changes: 60 additions & 1 deletion src/Com/PowersOfAttorney.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Runtime.InteropServices;
using System;
using System.Runtime.InteropServices;
using System.Xml.Serialization;
using Diadoc.Api.Com;

Expand Down Expand Up @@ -241,14 +242,37 @@ public partial class PowerOfAttorneyPrevalidateResult : SafeComObject, IPowerOfA
{
}

[ComVisible(true)]
[Guid("BAA0604F-7111-47E5-880C-81B6FD6683CD")]
public interface IValidationProtocol
{
ReadonlyList CheckResultsList { get; }
}

[ComVisible(true)]
[ProgId("Diadoc.Api.ValidationProtocol")]
[Guid("ECE41E66-4BFC-4C96-BB3A-AF7D9734927B")]
[ClassInterface(ClassInterfaceType.None)]
[ComDefaultInterface(typeof(IValidationProtocol))]
public partial class ValidationProtocol : SafeComObject, IValidationProtocol
{
public ReadonlyList CheckResultsList
{
get { return new ReadonlyList(CheckResults); }
}
}

[ComVisible(true)]
[Guid("26B870BC-D36B-4CA2-8C5B-903DE398CD28")]
public interface IPowerOfAttorneyValidationStatus
{
Com.Severity Severity { get; }
Com.PowerOfAttorneyValidationStatusNamedId StatusNamedId { get; }
string StatusText { get; }
[Obsolete]
ReadonlyList ErrorsList { get; }
ValidationProtocol ValidationProtocol { get; }
PowerOfAttorneyValidationError OperationError { get; }
}

[ComVisible(true)]
Expand Down Expand Up @@ -290,6 +314,29 @@ public interface IPowerOfAttorneyValidationError
public partial class PowerOfAttorneyValidationError : SafeComObject, IPowerOfAttorneyValidationError
{
}

[ComVisible(true)]
[Guid("AC2185A0-5D6D-4371-A487-A75EC0627897")]
public interface IValidationCheckResult
{
Com.PowerOfAttorneyValidationCheckStatus Status { get; }
string Name { get; }

PowerOfAttorneyValidationError Error { get; }
}

[ComVisible(true)]
[ProgId("Diadoc.Api.ValidationCheckResult")]
[Guid("04838F25-EFC4-4ACD-9789-731F07CAA1C9")]
[ClassInterface(ClassInterfaceType.None)]
[ComDefaultInterface(typeof(IValidationCheckResult))]
public partial class ValidationCheckResult : SafeComObject, IValidationCheckResult
{
Com.PowerOfAttorneyValidationCheckStatus IValidationCheckResult.Status
{
get { return (Com.PowerOfAttorneyValidationCheckStatus) Status; }
}
}

[ComVisible(true)]
[Guid("8A664FAC-D82E-4E4A-8DC4-AA8C16D0763A")]
Expand Down Expand Up @@ -606,4 +653,16 @@ public enum PowerOfAttorneySendingType
File = 2,
DocumentContent = 3
}

[ComVisible(true)]
[Guid("097F4C55-AB9A-4571-8A8E-3F1B0022CBF9")]
//NOTE: Это хотели, чтобы можно было использовать XML-сериализацию для классов
[XmlType(TypeName = "PowerOfAttorneyValidationCheckStatus", Namespace = "https://diadoc-api.kontur.ru")]
public enum PowerOfAttorneyValidationCheckStatus
{
UnknownCheckStatus = 0,
Ok = 1,
Warning = 2,
Error = 3
}
}
94 changes: 92 additions & 2 deletions src/Proto/PowersOfAttorney/PowerOfAttorneyValidation.proto.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,30 @@ public string StatusText
set { _StatusText = value; }
}
private readonly global::System.Collections.Generic.List<Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationError> _Errors = new global::System.Collections.Generic.List<Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationError>();
[global::ProtoBuf.ProtoMember(4, Name=@"Errors", DataFormat = global::ProtoBuf.DataFormat.Default)]
[global::System.Obsolete, global::ProtoBuf.ProtoMember(4, Name=@"Errors", DataFormat = global::ProtoBuf.DataFormat.Default)]
public global::System.Collections.Generic.List<Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationError> Errors
{
get { return _Errors; }
}


private Diadoc.Api.Proto.PowersOfAttorney.ValidationProtocol _ValidationProtocol = null;
[global::ProtoBuf.ProtoMember(5, IsRequired = false, Name=@"ValidationProtocol", DataFormat = global::ProtoBuf.DataFormat.Default)]
[global::System.ComponentModel.DefaultValue(null)]
public Diadoc.Api.Proto.PowersOfAttorney.ValidationProtocol ValidationProtocol
{
get { return _ValidationProtocol; }
set { _ValidationProtocol = value; }
}

private Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationError _OperationError = null;
[global::ProtoBuf.ProtoMember(6, IsRequired = false, Name=@"OperationError", DataFormat = global::ProtoBuf.DataFormat.Default)]
[global::System.ComponentModel.DefaultValue(null)]
public Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationError OperationError
{
get { return _OperationError; }
set { _OperationError = value; }
}
private global::ProtoBuf.IExtension extensionObject;
global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
{ return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
Expand Down Expand Up @@ -142,6 +160,58 @@ public Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationStatus Prevali
{ return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
}

[global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"ValidationProtocol")]
public partial class ValidationProtocol : global::ProtoBuf.IExtensible
{
public ValidationProtocol() {}

private readonly global::System.Collections.Generic.List<Diadoc.Api.Proto.PowersOfAttorney.ValidationCheckResult> _CheckResults = new global::System.Collections.Generic.List<Diadoc.Api.Proto.PowersOfAttorney.ValidationCheckResult>();
[global::ProtoBuf.ProtoMember(1, Name=@"CheckResults", DataFormat = global::ProtoBuf.DataFormat.Default)]
public global::System.Collections.Generic.List<Diadoc.Api.Proto.PowersOfAttorney.ValidationCheckResult> CheckResults
{
get { return _CheckResults; }
}

private global::ProtoBuf.IExtension extensionObject;
global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
{ return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
}

[global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"ValidationCheckResult")]
public partial class ValidationCheckResult : global::ProtoBuf.IExtensible
{
public ValidationCheckResult() {}


private Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationCheckStatus _Status = Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationCheckStatus.UnknownCheckStatus;
[global::ProtoBuf.ProtoMember(1, IsRequired = false, Name=@"Status", DataFormat = global::ProtoBuf.DataFormat.TwosComplement)]
[global::System.ComponentModel.DefaultValue(Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationCheckStatus.UnknownCheckStatus)]
public Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationCheckStatus Status
{
get { return _Status; }
set { _Status = value; }
}
private string _Name;
[global::ProtoBuf.ProtoMember(2, IsRequired = true, Name=@"Name", DataFormat = global::ProtoBuf.DataFormat.Default)]
public string Name
{
get { return _Name; }
set { _Name = value; }
}

private Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationError _Error = null;
[global::ProtoBuf.ProtoMember(3, IsRequired = false, Name=@"Error", DataFormat = global::ProtoBuf.DataFormat.Default)]
[global::System.ComponentModel.DefaultValue(null)]
public Diadoc.Api.Proto.PowersOfAttorney.PowerOfAttorneyValidationError Error
{
get { return _Error; }
set { _Error = value; }
}
private global::ProtoBuf.IExtension extensionObject;
global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
{ return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
}

[global::ProtoBuf.ProtoContract(Name=@"PowerOfAttorneyValidationStatusNamedId")]
public enum PowerOfAttorneyValidationStatusNamedId
{
Expand All @@ -162,7 +232,27 @@ public enum PowerOfAttorneyValidationStatusNamedId
ValidationError = 4,

[global::ProtoBuf.ProtoEnum(Name=@"IsNotAttached", Value=5)]
IsNotAttached = 5
IsNotAttached = 5,

[global::ProtoBuf.ProtoEnum(Name=@"HasWarnings", Value=6)]
HasWarnings = 6
}

[global::ProtoBuf.ProtoContract(Name=@"PowerOfAttorneyValidationCheckStatus")]
public enum PowerOfAttorneyValidationCheckStatus
{

[global::ProtoBuf.ProtoEnum(Name=@"UnknownCheckStatus", Value=0)]
UnknownCheckStatus = 0,

[global::ProtoBuf.ProtoEnum(Name=@"Ok", Value=1)]
Ok = 1,

[global::ProtoBuf.ProtoEnum(Name=@"Warning", Value=2)]
Warning = 2,

[global::ProtoBuf.ProtoEnum(Name=@"Error", Value=3)]
Error = 3
}

}

0 comments on commit 6168f1d

Please sign in to comment.