Adding
This commit is contained in:
+54
@@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using LCU.Library.Internal.ApiResponse.Models;
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
using LCU.Library.Internal.FileOperationsModels.Models.NameSettings;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class BatchIngestionRequest : ReturnResponse
|
||||
{
|
||||
[Required(ErrorMessage = "Ingestor Type is required")]
|
||||
public IngestorTypes IngestorType { get; set; }
|
||||
[Required(ErrorMessage = "Root Base Path is required")]
|
||||
public string RootBasePath { get; set; }
|
||||
public int DaysIngestionDate { get; set; }
|
||||
public DateTime? IngestionDate { get; set; }
|
||||
public DynamicIngestionDate DynamicIngestionDate { get; set; } = new();
|
||||
public bool UseDynamicIngestionDate { get; set; } = false;
|
||||
public string ParentDynamicDirectory { get; set; } = "";
|
||||
public string SubDirectoryPath { get; set; } = "";
|
||||
[Required(ErrorMessage = "Dynamic Index File Name is required")]
|
||||
public string DynamicIndexFileName { get; set; }
|
||||
public DynamicNameSetting DynamicFileSettings { get; set; }
|
||||
public DynamicNameSetting ParentDynamicDirectorySettings { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public DateTime FinalIngestionDate
|
||||
{
|
||||
get
|
||||
{
|
||||
if (UseDynamicIngestionDate)
|
||||
{
|
||||
return new DateTime(DynamicIngestionDate.Year ?? DateTime.Now.Year,
|
||||
DynamicIngestionDate.Month ?? DateTime.Now.Month,
|
||||
DynamicIngestionDate.Day ?? DateTime.Now.Day);
|
||||
|
||||
}
|
||||
|
||||
return (IngestionDate ?? DateTime.Now).AddDays(DaysIngestionDate);
|
||||
}
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public string FinalRootBasePath
|
||||
{
|
||||
get
|
||||
{
|
||||
var rootBasePath = RootBasePath.EndsWith("\\") ? RootBasePath : $"{RootBasePath}\\";
|
||||
return $"{rootBasePath}{FinalIngestionDate:MMddyyyy}\\";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class BatchIngestionResult
|
||||
{
|
||||
public List<string> Messages { get; set; } = new List<string>();
|
||||
public int FailureCount { get; set; } = 0;
|
||||
|
||||
|
||||
[NotMapped]
|
||||
public bool IsSuccessfull
|
||||
{
|
||||
get
|
||||
{
|
||||
return FailureCount == 0;
|
||||
}
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public bool IsFailure
|
||||
{
|
||||
get
|
||||
{
|
||||
return FailureCount > 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddToFailureCount(string message)
|
||||
{
|
||||
Messages.Add(message);
|
||||
FailureCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Entities;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class BatchUpdateMemberNotificationDataRequest
|
||||
{
|
||||
public BatchUpdateMemberNotificationDataRequest() { }
|
||||
public BatchUpdateMemberNotificationDataRequest(List<MemberNotificationInfo> memberNotificationInfos,
|
||||
GatherMemberNotificationInfoRequest gatherMemberNotificationInfoRequest)
|
||||
{
|
||||
MemberNotificationInfos = memberNotificationInfos;
|
||||
GatherMemberNotificationInfoRequest = gatherMemberNotificationInfoRequest;
|
||||
}
|
||||
|
||||
public List<MemberNotificationInfo> MemberNotificationInfos { get; set; }
|
||||
public GatherMemberNotificationInfoRequest GatherMemberNotificationInfoRequest { get; set; }
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Entities;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class BatchUploadCompletionRequest
|
||||
{
|
||||
public List<UploadCompletionRequest> SuccessfulUploadCompletions { get; set; }
|
||||
public List<UploadCompletionRequest> UnsuccessfulUploadCompletions { get; set; }
|
||||
public IEnumerable<DocumentProcessingInfo> DocumentProcessingInfos { get; set; }
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Models.Pagination;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
public class BulkNotificationStatusRequest : IValidatableObject
|
||||
{
|
||||
public BulkNotificationStatusRequest()
|
||||
{
|
||||
}
|
||||
|
||||
public BulkNotificationStatusRequest(Filter filter,
|
||||
NotificationStatusTypes notificationStatus,
|
||||
string reasonMessage)
|
||||
{
|
||||
Filter = filter;
|
||||
NotificationStatus = notificationStatus;
|
||||
ReasonMessage = reasonMessage;
|
||||
}
|
||||
|
||||
public Filter Filter { get; set; }
|
||||
public NotificationStatusTypes NotificationStatus { get; set; }
|
||||
public string ReasonMessage { get; set; } = string.Empty;
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (Filter == null)
|
||||
{
|
||||
yield return new ValidationResult("Filter cannot be null.");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(ReasonMessage))
|
||||
{
|
||||
yield return new ValidationResult("Must provide a ReasonMessage explaining the reason for the update.");
|
||||
}
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Entities;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class CompletionProcessingData
|
||||
{
|
||||
public DocumentProcessingInfo DocumentProcessingInfo { get; set; }
|
||||
public CompletionRequest CompletionRequest { get; set; }
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class CompletionRequest
|
||||
{
|
||||
public ProcessResult ProcessResult { get; set; }
|
||||
public ProcessingRequest ProcessingRequest { get; set; }
|
||||
public MemberNotificationInfoRequest MemberNotificationInfoRequest { get; set; }
|
||||
}
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
public class DocumentProcessingInfoStatusRequest : IValidatableObject
|
||||
{
|
||||
public DocumentProcessingInfoStatusRequest()
|
||||
{
|
||||
}
|
||||
|
||||
public DocumentProcessingInfoStatusRequest(int documentProcessingInfoId,
|
||||
ProcessStatusTypes processStatus,
|
||||
string reasonMessage,
|
||||
string username)
|
||||
{
|
||||
DocumentProcessingInfoId = documentProcessingInfoId;
|
||||
ProcessStatus = processStatus;
|
||||
ReasonMessage = reasonMessage;
|
||||
Username = username;
|
||||
}
|
||||
|
||||
public int DocumentProcessingInfoId { get; set; }
|
||||
public ProcessStatusTypes ProcessStatus { get; set; }
|
||||
public string ReasonMessage { get; set; } = string.Empty;
|
||||
public string Username { get; set; } = string.Empty;
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (DocumentProcessingInfoId == 0 || DocumentProcessingInfoId == null)
|
||||
{
|
||||
yield return new ValidationResult("DocumentProcessingInfoId cannot be 0 or null.");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(ReasonMessage))
|
||||
{
|
||||
yield return new ValidationResult("Must provide a ReasonMessage explaining the reason for the update.");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(Username))
|
||||
{
|
||||
yield return new ValidationResult("Must provide a Username.");
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
using System;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class DynamicIngestionDate
|
||||
{
|
||||
public int? Month { get; set; }
|
||||
public int? Day { get; set; }
|
||||
public int? Year { get; set; }
|
||||
}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
public class EntityUnknownRequest : IValidatableObject
|
||||
{
|
||||
public EntityUnknownRequest()
|
||||
{
|
||||
}
|
||||
|
||||
public EntityUnknownRequest(string userName, List<int> documentProcessingInfoIds)
|
||||
{
|
||||
UserName = userName;
|
||||
DocumentProcessingInfoIds = documentProcessingInfoIds;
|
||||
}
|
||||
|
||||
public string UserName { get; set; }
|
||||
public List<int> DocumentProcessingInfoIds { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(UserName))
|
||||
{
|
||||
yield return new ValidationResult("UserName cannot be null.");
|
||||
}
|
||||
|
||||
if (!DocumentProcessingInfoIds.Any())
|
||||
{
|
||||
yield return new ValidationResult("DocumentProcessingInfoIds cannot be empty.");
|
||||
}
|
||||
}
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
#nullable enable
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class ErrorCaptureResult<T> where T : class
|
||||
{
|
||||
private ErrorCaptureResult(bool success, string? message, T payload, bool? entityIsUnknown = null)
|
||||
{
|
||||
Success = success;
|
||||
Message = message;
|
||||
Payload = payload;
|
||||
EntityIsUnknown = entityIsUnknown;
|
||||
}
|
||||
|
||||
public bool Success { get; }
|
||||
|
||||
public string? Message { get; }
|
||||
|
||||
public T Payload { get; }
|
||||
|
||||
public bool? EntityIsUnknown { get; }
|
||||
|
||||
public static ErrorCaptureResult<T> CreateErrorPayload(string? message, T payload, bool? entityIsUnknown = null)
|
||||
{
|
||||
return new ErrorCaptureResult<T>(false, message, payload, entityIsUnknown);
|
||||
}
|
||||
|
||||
public static ErrorCaptureResult<T> CreateSuccessPayload(T payload)
|
||||
{
|
||||
return new ErrorCaptureResult<T>(true, null, payload);
|
||||
}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class GatherMemberNotificationInfoRequest
|
||||
{
|
||||
public CompletionRequest CompletionRequest { get; set; }
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
public class FosDnaDocument
|
||||
{
|
||||
[Index(0)]
|
||||
public string AccountNumber { get; set; }
|
||||
[Index(1)]
|
||||
public string EntityName { get; set; }
|
||||
[Index(2)]
|
||||
public string CreationDate { get; set; }
|
||||
[Index(3)]
|
||||
public string DocType { get; set; }
|
||||
[Index(4)]
|
||||
public string DocName { get; set; }
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
public class FosLoanStatement
|
||||
{
|
||||
[Index(0)]
|
||||
public string DocType { get; set; }
|
||||
[Index(4)]
|
||||
public string AccountNumber { get; set; }
|
||||
[Index(5)]
|
||||
public string EntityName { get; set; }
|
||||
[Index(6)]
|
||||
public string EmailAddress { get; set; }
|
||||
[Index(7)]
|
||||
public string CreationDate { get; set; }
|
||||
[Index(8)]
|
||||
public string StartingPage { get; set; }
|
||||
[Index(9)]
|
||||
public string NumberOfPages { get; set; }
|
||||
[Index(10)]
|
||||
public string DocName { get; set; }
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
/// <summary>
|
||||
/// NOTE: The index annotation denotes the index location of each record in the csv row being processed.
|
||||
/// The Index record 3 is the tax year identical for each row in a file and not used in the ingestor
|
||||
/// </summary>
|
||||
public class FosTaxStatementDocument
|
||||
{
|
||||
[Index(0)]
|
||||
public string FileName { get; set; }
|
||||
[Index(1)]
|
||||
public string PrimaryTIN { get; set; }
|
||||
[Index(2)]
|
||||
public string FullName { get; set; }
|
||||
[Index(3)]
|
||||
public int TaxYear { get; set; }
|
||||
[Index(4)]
|
||||
public string AccountNumber { get; set; }
|
||||
[Index(5)]
|
||||
public string PDF { get; set; }
|
||||
}
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
public class OsgDnaNoticeSplit
|
||||
{
|
||||
[Index(0)]
|
||||
public string SequenceNumber { get; set; }
|
||||
|
||||
[Index(1)]
|
||||
public string NoticeId { get; set; }
|
||||
|
||||
[Index(2)]
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
[Index(3)]
|
||||
public string MemberNumber { get; set; }
|
||||
|
||||
[Index(4)]
|
||||
public string UserId { get; set; }
|
||||
|
||||
[Index(5)]
|
||||
public string RecipientName { get; set; }
|
||||
|
||||
[Index(6)]
|
||||
public string SSN { get; set; }
|
||||
|
||||
[Index(7)]
|
||||
public string NoticeName { get; set; }
|
||||
|
||||
[Index(8)]
|
||||
public string ApplicationNumber { get; set; }
|
||||
|
||||
[Index(9)]
|
||||
public string CreationDate { get; set; }
|
||||
|
||||
[Index(10)]
|
||||
public string PdfName { get; set; }
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
/// <summary>
|
||||
/// Note: Index record 0 is the SequenceNumber. Created by OSG during creation of documents / Index file - means nothing to our process
|
||||
/// </summary>
|
||||
public class OsgDnaNoticesDocument
|
||||
{
|
||||
[Index(1)]
|
||||
public string DocType { get; set; }
|
||||
|
||||
[Index(2)]
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
[Index(3)]
|
||||
public string MemberNumberOrUserId { get; set; }
|
||||
|
||||
[Index(4)]
|
||||
public string CreationDate { get; set; }
|
||||
|
||||
[Index(5)]
|
||||
public string StartingPage { get; set; }
|
||||
|
||||
[Index(6)]
|
||||
public string NumberOfPages { get; set; }
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
/// <summary>
|
||||
/// Note: Index record 0 is the SequenceNumber. Created by OSG during creation of documents / Index file - means nothing to our process
|
||||
/// </summary>
|
||||
public class OsgHistoricalDocument
|
||||
{
|
||||
[Index(1)]
|
||||
public string DocType { get; set; }
|
||||
|
||||
[Index(2)]
|
||||
public string EntityName { get; set; }
|
||||
|
||||
[Index(3)]
|
||||
public string MemberNumberOrUserId { get; set; }
|
||||
|
||||
[Index(4)]
|
||||
public string CreationDate { get; set; }
|
||||
|
||||
[Index(5)]
|
||||
public string StartingPage { get; set; }
|
||||
|
||||
[Index(6)]
|
||||
public string NumberOfPages { get; set; }
|
||||
}
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
public class OsgTaxStatement
|
||||
{
|
||||
[Index(0)]
|
||||
public string SequenceNumber { get; set; }
|
||||
|
||||
[Index(1)]
|
||||
public string NoticeId { get; set; }
|
||||
|
||||
[Index(2)]
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
[Index(3)]
|
||||
public string MemberNumber { get; set; }
|
||||
|
||||
[Index(4)]
|
||||
public string UserId { get; set; }
|
||||
|
||||
[Index(5)]
|
||||
public string RecipientName { get; set; }
|
||||
|
||||
[Index(6)]
|
||||
public string SSN { get; set; }
|
||||
|
||||
[Index(7)]
|
||||
public string NoticeName { get; set; }
|
||||
|
||||
[Index(8)]
|
||||
public string ApplicationNumber { get; set; }
|
||||
|
||||
[Index(9)]
|
||||
public string CreationDate { get; set; }
|
||||
|
||||
[Index(10)]
|
||||
public string PdfName { get; set; }
|
||||
}
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
/// <summary>
|
||||
/// Note: Index record 6 is the same as index record 5 (The DocType is repeated from the vendor index)
|
||||
/// </summary>
|
||||
public class OsgTemenosNoticesDocument
|
||||
{
|
||||
[Index(0)]
|
||||
public string Sequence { get; set; }
|
||||
|
||||
[Index(2)]
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
[Index(3)]
|
||||
public string LoanNumber { get; set; }
|
||||
|
||||
[Index(5)]
|
||||
public string EntityName { get; set; }
|
||||
|
||||
[Index(7)]
|
||||
public string DocumentType { get; set; }
|
||||
|
||||
[Index(9)]
|
||||
public string CreationDate { get; set; }
|
||||
|
||||
[Index(10)]
|
||||
public string PDF { get; set; }
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
public class OsgWeilandStatement
|
||||
{
|
||||
[Index(0)]
|
||||
public string Date { get; set; }
|
||||
|
||||
[Index(1)]
|
||||
public string Family { get; set; }
|
||||
|
||||
[Index(2)]
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
[Index(3)]
|
||||
public string AccountTitle { get; set; }
|
||||
|
||||
[Index(4)]
|
||||
public string PdfDate { get; set; }
|
||||
|
||||
[Index(5)]
|
||||
public string PdfName { get; set; }
|
||||
|
||||
[Index(6)]
|
||||
public string DocCode { get; set; }
|
||||
}
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
public class XdiActionNoticesDocument
|
||||
{
|
||||
[Index(0)]
|
||||
public string CreationDate { get; set; }
|
||||
|
||||
[Index(1)]
|
||||
public string ApplicationNumber { get; set; }
|
||||
|
||||
[Index(2)]
|
||||
public string LoanNumber { get; set; }
|
||||
|
||||
[Index(3)]
|
||||
public string EntityName { get; set; }
|
||||
|
||||
[Index(4)]
|
||||
public int PageCount { get; set; }
|
||||
|
||||
[Index(5)]
|
||||
public string DocumentType { get; set; }
|
||||
|
||||
[Index(7)]
|
||||
public string DocumentName { get; set; }
|
||||
}
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
using CsvHelper.Configuration.Attributes;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.IndexFileDocuments
|
||||
{
|
||||
/// <summary>
|
||||
/// Note: Index record 6 is the same as index record 5 (The DocType is repeated from the vendor index)
|
||||
/// </summary>
|
||||
public class XdiDnaNoticesDocument
|
||||
{
|
||||
[Index(0)]
|
||||
public string CreationDate { get; set; }
|
||||
|
||||
[Index(1)]
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
[Index(2)]
|
||||
public string LoanNumber { get; set; }
|
||||
|
||||
[Index(3)]
|
||||
public string EntityName { get; set; }
|
||||
|
||||
[Index(4)]
|
||||
public int PageCount { get; set; }
|
||||
|
||||
[Index(5)]
|
||||
public string DocumentType { get; set; }
|
||||
|
||||
[Index(7)]
|
||||
public string PDF { get; set; }
|
||||
}
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using LCU.Library.Internal.ApiResponse.Models;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class IngestionFolderCleanUpRequest : ReturnResponse
|
||||
{
|
||||
public DateTime? IngestionEndedDate { get; set; }
|
||||
|
||||
public int DaysFromIngestionEndedDate { get; set; } = 0;
|
||||
|
||||
public DateTime? ArchiveDate { get; set; }
|
||||
|
||||
public int DaysFromArchiveDate { get; set; } = 0;
|
||||
|
||||
[Required] public string ArchiveRootPath { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public DateTime FinalIngestionEndedDate => IngestionEndedDate ?? DateTime.Today.AddDays(1).AddTicks(-1);
|
||||
|
||||
[NotMapped]
|
||||
public DateTime FinalArchiveDate => ArchiveDate ?? DateTime.Today.AddDays(1).AddTicks(-1);
|
||||
|
||||
[NotMapped]
|
||||
public DateTime CleanUpIngestionFoldersUntilDate => FinalIngestionEndedDate.AddDays(DaysFromIngestionEndedDate).Date.AddDays(1).AddTicks(-1);
|
||||
|
||||
[NotMapped]
|
||||
public string ArchiveFolderName => FinalArchiveDate.AddDays(DaysFromArchiveDate).ToString("yyyy-MM-dd");
|
||||
|
||||
[NotMapped]
|
||||
public string ArchiveRootPathAndFolder => (ArchiveRootPath.EndsWith("\\") ? ArchiveRootPath : $"{ArchiveRootPath}\\") + ArchiveFolderName;
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class IngestionFolderCleanUpResult
|
||||
{
|
||||
public List<string> Messages { get; set; } = new List<string>();
|
||||
|
||||
public int FailureCount { get; set; } = 0;
|
||||
|
||||
[NotMapped]
|
||||
public bool IsSuccessful => FailureCount == 0;
|
||||
|
||||
[NotMapped]
|
||||
public bool IsFailure => FailureCount > 0;
|
||||
|
||||
public void AddToFailureCount(string message)
|
||||
{
|
||||
Messages.Add(message);
|
||||
FailureCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using LCU.Library.Internal.ApiResponse.Models;
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class IngestorRequest : ReturnResponse
|
||||
{
|
||||
private string rootPath;
|
||||
private const string ArchiveFolder = "Archived";
|
||||
|
||||
public IngestorTypes IngestorType { get; set; }
|
||||
public string RootPath
|
||||
{
|
||||
get
|
||||
{
|
||||
return rootPath;
|
||||
}
|
||||
set
|
||||
{
|
||||
rootPath = value.EndsWith("\\") ? value : $"{value}\\";
|
||||
}
|
||||
}
|
||||
public string IndexFileName { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public string ArchivePath
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{RootPath}{ArchiveFolder}\\";
|
||||
}
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public string FinalIndexFilePath
|
||||
{
|
||||
get
|
||||
{
|
||||
return RootPath + IndexFileName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
using System.Collections.Generic;
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Entities;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class IngestorResult
|
||||
{
|
||||
public IngestorResult()
|
||||
{
|
||||
MessageStack = new List<string>();
|
||||
}
|
||||
|
||||
public IngestorResult(bool fatalFailure, string message)
|
||||
{
|
||||
FatalFailure = fatalFailure;
|
||||
MessageStack = new List<string>() { message };
|
||||
}
|
||||
public bool FatalFailure { get; set; }
|
||||
public List<string> MessageStack { get; set; }
|
||||
public IngestorRunInfo IngestorRunInfo { get; set; }
|
||||
public List<ProcessingRequest> ProcessingRequests { get; set; }
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
using LCU.Library.Internal.ApiResponse.Models;
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class MemberDocumentNotificationRequest : ReturnResponse
|
||||
{
|
||||
public bool RunCriticalFailureNotifications { get; set; } = false;
|
||||
}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class MemberDocumentNotificationResult
|
||||
{
|
||||
public List<string> Messages { get; set; } = new List<string>();
|
||||
public int FailureCount { get; set; } = 0;
|
||||
|
||||
[NotMapped]
|
||||
public bool IsSuccessful
|
||||
{
|
||||
get
|
||||
{
|
||||
return FailureCount == 0;
|
||||
}
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public bool IsFailure
|
||||
{
|
||||
get
|
||||
{
|
||||
return FailureCount > 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddToFailureCount(string message)
|
||||
{
|
||||
Messages.Add(message);
|
||||
FailureCount++;
|
||||
}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class MemberNotificationCompletionRequest
|
||||
{
|
||||
public List<int> MemberNotificationInfoIds { get; set; }
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class MemberNotificationInfoRequest
|
||||
{
|
||||
public int DocumentProcessingInfoId { get; set; }
|
||||
public DocumentOwnerTypes DocumentOwnerType { get; set; }
|
||||
public string DocumentEntityNumber { get; set; }
|
||||
public EntityTypes EntityType { get; set; }
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
[Obsolete("06/02/2023 - Used to prepare historical documents for ingestion. No longer in use.")]
|
||||
public class OsgPreprocessorRequest
|
||||
{
|
||||
private string workingBasePath;
|
||||
private string outputBasePath;
|
||||
private string incompleteOutputBasePath;
|
||||
[Required(ErrorMessage = "Archive Start Date is required")]
|
||||
public DateTime ArchiveStartDate { get; set; }
|
||||
public bool SaveXmlOutput { get; set; } = false;
|
||||
|
||||
[Required(ErrorMessage = "Source Base Path is required")]
|
||||
public string SourceBasePath { get; set; }
|
||||
[Required(ErrorMessage = "Working Base Path is required")]
|
||||
public string WorkingBasePath
|
||||
{
|
||||
get
|
||||
{
|
||||
return workingBasePath;
|
||||
}
|
||||
set
|
||||
{
|
||||
workingBasePath = value.EndsWith("\\") ? value : $"{value}\\";
|
||||
}
|
||||
}
|
||||
[Required(ErrorMessage = "Output Base Path is required")]
|
||||
public string OutputBasePath
|
||||
{
|
||||
get
|
||||
{
|
||||
return outputBasePath;
|
||||
}
|
||||
set
|
||||
{
|
||||
outputBasePath = value.EndsWith("\\") ? value : $"{value}\\";
|
||||
}
|
||||
}
|
||||
[Required(ErrorMessage = "Incomplete Output Base Path is required")]
|
||||
public string IncompleteOutputBasePath
|
||||
{
|
||||
get
|
||||
{
|
||||
return incompleteOutputBasePath;
|
||||
}
|
||||
set
|
||||
{
|
||||
incompleteOutputBasePath = value.EndsWith("\\") ? value : $"{value}\\";
|
||||
}
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
[Obsolete("06/02/2023 - Used to prepare historical documents for ingestion. No longer in use.")]
|
||||
public class OsgPreprocessorResult
|
||||
{
|
||||
public string OutputFile { get; set; }
|
||||
public bool Success { get; set; }
|
||||
public List<string> MessageStack { get; set; } = new List<string>();
|
||||
|
||||
public void AddFailureAndMessage(string message)
|
||||
{
|
||||
MessageStack.Add(message);
|
||||
Success = false;
|
||||
}
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
[Obsolete("06/02/2023 - Used to prepare historical documents for ingestion. No longer in use.")]
|
||||
public class OsgPreprocessorRunInfo
|
||||
{
|
||||
|
||||
public OsgPreprocessorRunInfo(OsgPreprocessorRequest request)
|
||||
{
|
||||
OsgPreprocessorRequest = request;
|
||||
OsgPreprocessorResults = new List<OsgPreprocessorResult>();
|
||||
Messages = new List<string>();
|
||||
}
|
||||
|
||||
public OsgPreprocessorRequest OsgPreprocessorRequest { get; set; }
|
||||
public List<OsgPreprocessorResult> OsgPreprocessorResults { get; set; }
|
||||
public string UnZippedFolder { get; set; }
|
||||
public string DirectoryDate { get; set; }
|
||||
public string IndexFile { get; set; }
|
||||
public bool Incomplete { get; set; } = false;
|
||||
public bool HasStatements { get; set; } = true;
|
||||
public List<string> Messages { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public string FinalWorkingDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
return $"{OsgPreprocessorRequest.WorkingBasePath}{UnZippedFolder}\\";
|
||||
}
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public string IndexFilePath
|
||||
{
|
||||
get
|
||||
{
|
||||
return FinalWorkingDirectory + IndexFile;
|
||||
}
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public string FinalOutputDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
return Incomplete ? OsgPreprocessorRequest.IncompleteOutputBasePath : $"{OsgPreprocessorRequest.OutputBasePath}{DirectoryDate}\\";
|
||||
}
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using LCU.Library.Internal.ApiResponse.Models;
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
using LCU.Library.Internal.FileOperationsModels.Models.NameSettings;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class PdfPartitionerRequest : ReturnResponse
|
||||
{
|
||||
[Required(ErrorMessage = "Pdf Parser Types is required")]
|
||||
public PdfParserTypes PdfParserType { get; set; }
|
||||
[Required(ErrorMessage = "Root Base Path is required")]
|
||||
public string RootBasePath { get; set; }
|
||||
public int DaysIngestionDate { get; set; }
|
||||
public DateTime? IngestionDate { get; set; }
|
||||
public DynamicIngestionDate DynamicIngestionDate { get; set; } = new();
|
||||
public bool UseDynamicIngestionDate { get; set; } = false;
|
||||
public string ParentDynamicDirectory { get; set; } = "";
|
||||
public string SubDirectoryPath { get; set; } = "";
|
||||
[Required(ErrorMessage = "Dynamic Index File Name is required")]
|
||||
public string DynamicIndexFileName { get; set; }
|
||||
public string DynamicPdfName { get; set; }
|
||||
public bool SkipParseIfCountsMatch { get; set; }
|
||||
public DynamicNameSetting ParentDynamicDirectorySettings { get; set; }
|
||||
public DynamicNameSetting DynamicFileSettings { get; set; }
|
||||
public DynamicNameSetting DynamicPdfSettings { get; set; }
|
||||
|
||||
[NotMapped]
|
||||
public DateTime FinalIngestionDate
|
||||
{
|
||||
get
|
||||
{
|
||||
if (UseDynamicIngestionDate)
|
||||
{
|
||||
return new DateTime(DynamicIngestionDate.Year ?? DateTime.Now.Year,
|
||||
DynamicIngestionDate.Month ?? DateTime.Now.Month,
|
||||
DynamicIngestionDate.Day ?? DateTime.Now.Day);
|
||||
|
||||
}
|
||||
|
||||
return (IngestionDate ?? DateTime.Now).AddDays(DaysIngestionDate);
|
||||
}
|
||||
}
|
||||
|
||||
[NotMapped]
|
||||
public string FinalRootBasePath
|
||||
{
|
||||
get
|
||||
{
|
||||
var rootBasePath = RootBasePath.EndsWith("\\") ? RootBasePath : $"{RootBasePath}\\";
|
||||
return $"{rootBasePath}{FinalIngestionDate.ToString("MMddyyyy")}\\";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class PdfPartitionerResult
|
||||
{
|
||||
public PdfPartitionerResult(Guid pdfPartitionerRunInfoId, PdfPartitionerRequest pdfPartitionerRequest)
|
||||
{
|
||||
PdfPartitionerRunInfoId = pdfPartitionerRunInfoId;
|
||||
PdfPartitionerRequest = pdfPartitionerRequest;
|
||||
MessageStack = new List<string>();
|
||||
FailedToQueueToParse = false;
|
||||
}
|
||||
|
||||
public Guid PdfPartitionerRunInfoId { get; set; }
|
||||
public PdfPartitionerRequest PdfPartitionerRequest { get; set; }
|
||||
public List<string> MessageStack { get; set; }
|
||||
public bool FailedToQueueToParse { get; set; }
|
||||
|
||||
public void AddFailureAndMessage(string message)
|
||||
{
|
||||
MessageStack.Add(message);
|
||||
FailedToQueueToParse = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class ProcessResult
|
||||
{
|
||||
public ProcessResult()
|
||||
{
|
||||
Success = true;
|
||||
MessageStack = new List<string>();
|
||||
}
|
||||
|
||||
public ProcessResult(bool success, string message)
|
||||
{
|
||||
Success = success;
|
||||
MessageStack = new List<string>() { message };
|
||||
}
|
||||
|
||||
public bool Success { get; set; }
|
||||
public bool AttemptToArchive { get; set; }
|
||||
public List<string> MessageStack { get; set; }
|
||||
public ProcessStatusTypes ProcessStatusType { get; set; }
|
||||
public bool? EntityIsUnknown { get; set; }
|
||||
|
||||
public static ProcessResult ProcessCriticalFailure(ProcessResult processResult, string message)
|
||||
{
|
||||
return ProcessCriticalFailure(processResult, new List<string> { message });
|
||||
}
|
||||
|
||||
public static ProcessResult ProcessCriticalFailure(ProcessResult processResult, List<string> messages)
|
||||
{
|
||||
processResult.ProcessStatusType = ProcessStatusTypes.CriticalFailure;
|
||||
return ProcessFailure(processResult, messages, false);
|
||||
}
|
||||
|
||||
public static ProcessResult ProcessDataMappingFailure(ProcessResult processResult, string message)
|
||||
{
|
||||
processResult.ProcessStatusType = ProcessStatusTypes.DataMappingFailure;
|
||||
return ProcessFailure(processResult, message, null);
|
||||
}
|
||||
|
||||
public static ProcessResult ProcessNotificationDataFailure(ProcessResult processResult, string message)
|
||||
{
|
||||
processResult.ProcessStatusType = ProcessStatusTypes.NotificationDataFailure;
|
||||
return ProcessFailure(processResult, message, false);
|
||||
}
|
||||
|
||||
public static ProcessResult ProcessCompleted(ProcessResult processResult, string message)
|
||||
{
|
||||
processResult.ProcessStatusType = ProcessStatusTypes.Completed;
|
||||
return ProcessSuccess(processResult, new List<string> { message }, false);;
|
||||
}
|
||||
|
||||
private static ProcessResult ProcessFailure(ProcessResult processResult, string message, bool? entityIsUnknown)
|
||||
{
|
||||
return ProcessFailure(processResult, new List<string> { message }, entityIsUnknown);
|
||||
}
|
||||
|
||||
private static ProcessResult ProcessFailure(ProcessResult processResult, List<string> messages, bool? entityIsUnknown)
|
||||
{
|
||||
processResult.Success = false;
|
||||
processResult.MessageStack.AddRange(messages);
|
||||
processResult.EntityIsUnknown = entityIsUnknown;
|
||||
return processResult;
|
||||
}
|
||||
|
||||
private static ProcessResult ProcessSuccess(ProcessResult processResult, List<string> messages, bool? entityUnknown)
|
||||
{
|
||||
processResult.Success = true;
|
||||
processResult.MessageStack.AddRange(messages);
|
||||
processResult.EntityIsUnknown = entityUnknown;
|
||||
return processResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
using LCU.Library.Internal.ApiResponse.Models;
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Enums;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Requests
|
||||
{
|
||||
public class ProcessStatusTypeEmailRequest : ReturnResponse
|
||||
{
|
||||
private List<ProcessStatusTypes> NotAllowedStatuses => new() { Enums.ProcessStatusTypes.Completed, Enums.ProcessStatusTypes.Processing };
|
||||
|
||||
public ProcessStatusTypeEmailRequest()
|
||||
{
|
||||
}
|
||||
|
||||
public ProcessStatusTypeEmailRequest(List<string> emailAddresses, List<ProcessStatusTypes> processStatusTypes, string processStatusTypeEmailUrl)
|
||||
{
|
||||
this.EmailAddresses = emailAddresses;
|
||||
this.ProcessStatusTypes = processStatusTypes;
|
||||
this.ProcessStatusTypeEmailUrl = processStatusTypeEmailUrl;
|
||||
}
|
||||
|
||||
public List<string> EmailAddresses { get; set; }
|
||||
public List<ProcessStatusTypes> ProcessStatusTypes { get; set; }
|
||||
public string ProcessStatusTypeEmailUrl { get; set; }
|
||||
public bool HasInvalidStatuses(out List<ProcessStatusTypes> invalid)
|
||||
{
|
||||
invalid = ProcessStatusTypes
|
||||
.Where(x => NotAllowedStatuses.Contains(x))
|
||||
.ToList();
|
||||
|
||||
return invalid.Any();
|
||||
}
|
||||
}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using LCU.Library.Internal.DocumentIngestorModels.Entities;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models
|
||||
{
|
||||
public class ProcessingRequest
|
||||
{
|
||||
public int DocumentProcessingInfoId { get; set; }
|
||||
public Guid IngestorRunInfoId { get; set; }
|
||||
public IngestorRequest IngestorRequest { get; set; }
|
||||
public string DocumentFileName { get; set; }
|
||||
public string DocumentTypeDisplayName { get; set; }
|
||||
public string DocumentValuePayload { get; set; }
|
||||
public OwnerOverrideInfo OwnerOverrideInfo { get; set; }
|
||||
public int RetryCount { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.QueueResult;
|
||||
|
||||
public class QueueCompletionResult
|
||||
{
|
||||
public bool Success { get; set; }
|
||||
public CompletionRequest CompletionRequest { get; set; }
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.QueueResult;
|
||||
|
||||
public class QueueGatherMemberNotificationInfoResult
|
||||
{
|
||||
public bool Success { get; set; }
|
||||
public UploadCompletionRequest OriginalRequest { get; set; }
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
using LCU.Library.Internal.ApiResponse.Models;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models;
|
||||
|
||||
public class UploadCompletionRequest
|
||||
{
|
||||
public UploadCompletionRequest() { }
|
||||
public UploadCompletionRequest(CompletionRequest completionRequest, Response response)
|
||||
{
|
||||
CompletionRequest = completionRequest;
|
||||
Response = response;
|
||||
}
|
||||
|
||||
public CompletionRequest CompletionRequest { get; set; }
|
||||
public Response Response { get; set; }
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace LCU.Library.Internal.DocumentIngestorModels.Models.XmlParser;
|
||||
|
||||
[Serializable]
|
||||
[XmlType(AnonymousType = true)]
|
||||
[XmlRoot(ElementName = "DOCUMENT", Namespace = "", IsNullable = false)]
|
||||
public class XmlOsgHistoricalDocument
|
||||
{
|
||||
[XmlAttribute("accountNumber")]
|
||||
public string MemberNumberOrUserId { get; set; }
|
||||
|
||||
[XmlAttribute("documentDate")]
|
||||
public string CreationDate { get; set; }
|
||||
|
||||
[XmlAttribute("documentType")]
|
||||
public string DocumentType { get; set; }
|
||||
|
||||
[XmlElement("ArchiveOutput")]
|
||||
public XmlOsgArchiveOutput ArchiveOutput { get; set; }
|
||||
|
||||
[XmlElement("OriginalAddress")]
|
||||
public XmlOsgOriginalAddress OriginalAddress { get; set; }
|
||||
|
||||
public string XmlOutput { get; set; }
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
[DesignerCategory("code")]
|
||||
[XmlType(AnonymousType = true)]
|
||||
[XmlRoot("ArchiveOutput", IsNullable = false)]
|
||||
public class XmlOsgArchiveOutput
|
||||
{
|
||||
[XmlAttribute("startPage")]
|
||||
public int StartingPage { get; set; }
|
||||
|
||||
[XmlAttribute("numberOfPages")]
|
||||
public int NumberOfPages { get; set; }
|
||||
|
||||
[XmlAttribute("fileSeq")]
|
||||
public int PdfIndex { get; set; }
|
||||
}
|
||||
|
||||
|
||||
[Serializable]
|
||||
[DesignerCategory("code")]
|
||||
[XmlType(AnonymousType = true)]
|
||||
[XmlRoot("OriginalAddress", IsNullable = false)]
|
||||
public class XmlOsgOriginalAddress
|
||||
{
|
||||
[XmlAttribute("addr1")]
|
||||
public string EntityName { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user