ExportManager
using kCura.EDDS.WebAPI.ExportManagerBase;
using kCura.WinEDDS.Service.Export;
using kCura.WinEDDS.Service.Replacement;
using Microsoft.VisualBasic.CompilerServices;
using Relativity.DataExchange;
using System;
using System.Net;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Text;
using System.Web.Services.Protocols;
namespace kCura.WinEDDS.Service
{
public class ExportManager : kCura.EDDS.WebAPI.ExportManagerBase.ExportManager, kCura.WinEDDS.Service.Export.IExportManager, kCura.WinEDDS.Service.Replacement.IExportManager
{
[Serializable]
public class InsufficientPermissionsForExportException : Exception
{
public InsufficientPermissionsForExportException()
{
}
public InsufficientPermissionsForExportException(string message)
: base(message)
{
}
public InsufficientPermissionsForExportException(string message, Exception innerException)
: base(message, innerException)
{
}
protected InsufficientPermissionsForExportException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
[CompilerGenerated]
internal sealed class _Closure$__2-0<$CLS0>
{
public Func<$CLS0> $VB$Local_f;
public ExportManager $VB$Me;
internal $CLS0 _Lambda$__0()
{
try {
return $VB$Local_f();
} catch (Exception ex) {
ProjectData.SetProjectError(ex);
Exception ex2 = ex;
$VB$Me.UnpackHandledException(ex2);
throw;
}
}
}
[CompilerGenerated]
internal sealed class _Closure$__3-0
{
public int $VB$Local_appID;
public Guid $VB$Local_runId;
public int $VB$Local_artifactTypeID;
public int[] $VB$Local_avfIds;
public int $VB$Local_chunkSize;
public bool $VB$Local_displayMulticodesAsNested;
public char $VB$Local_multiValueDelimiter;
public char $VB$Local_nestedValueDelimiter;
public int[] $VB$Local_textPrecedenceAvfIds;
public int $VB$Local_productionId;
public int $VB$Local_index;
public ExportManager $VB$Me;
internal object[] _Lambda$__0()
{
return ((kCura.EDDS.WebAPI.ExportManagerBase.ExportManager)$VB$Me).RetrieveResultsBlockForProductionStartingFromIndex($VB$Local_appID, $VB$Local_runId, $VB$Local_artifactTypeID, $VB$Local_avfIds, $VB$Local_chunkSize, $VB$Local_displayMulticodesAsNested, $VB$Local_multiValueDelimiter, $VB$Local_nestedValueDelimiter, $VB$Local_textPrecedenceAvfIds, $VB$Local_productionId, $VB$Local_index);
}
}
[CompilerGenerated]
internal sealed class _Closure$__4-0
{
public int $VB$Local_appID;
public int $VB$Local_viewArtifactID;
public int $VB$Local_parentArtifactID;
public bool $VB$Local_includeSubFolders;
public int[] $VB$Local_avfIds;
public int $VB$Local_startAtRecord;
public int $VB$Local_artifactTypeID;
public ExportManager $VB$Me;
internal InitializationResults _Lambda$__0()
{
return ((kCura.EDDS.WebAPI.ExportManagerBase.ExportManager)$VB$Me).InitializeFolderExport($VB$Local_appID, $VB$Local_viewArtifactID, $VB$Local_parentArtifactID, $VB$Local_includeSubFolders, $VB$Local_avfIds, $VB$Local_startAtRecord, $VB$Local_artifactTypeID);
}
}
[CompilerGenerated]
internal sealed class _Closure$__5-0
{
public int $VB$Local_appID;
public int $VB$Local_productionArtifactID;
public int[] $VB$Local_avfIds;
public int $VB$Local_startAtRecord;
public ExportManager $VB$Me;
internal InitializationResults _Lambda$__0()
{
return ((kCura.EDDS.WebAPI.ExportManagerBase.ExportManager)$VB$Me).InitializeProductionExport($VB$Local_appID, $VB$Local_productionArtifactID, $VB$Local_avfIds, $VB$Local_startAtRecord);
}
}
[CompilerGenerated]
internal sealed class _Closure$__6-0
{
public int $VB$Local_appID;
public int $VB$Local_searchArtifactID;
public int[] $VB$Local_avfIds;
public int $VB$Local_startAtRecord;
public ExportManager $VB$Me;
internal InitializationResults _Lambda$__0()
{
return ((kCura.EDDS.WebAPI.ExportManagerBase.ExportManager)$VB$Me).InitializeSearchExport($VB$Local_appID, $VB$Local_searchArtifactID, $VB$Local_avfIds, $VB$Local_startAtRecord);
}
}
[CompilerGenerated]
internal sealed class _Closure$__7-0
{
public int $VB$Local_appID;
public Guid $VB$Local_runId;
public int $VB$Local_artifactTypeID;
public int[] $VB$Local_avfIds;
public int $VB$Local_chunkSize;
public bool $VB$Local_displayMulticodesAsNested;
public char $VB$Local_multiValueDelimiter;
public char $VB$Local_nestedValueDelimiter;
public int[] $VB$Local_textPrecedenceAvfIds;
public int $VB$Local_index;
public ExportManager $VB$Me;
internal object[] _Lambda$__0()
{
return ((kCura.EDDS.WebAPI.ExportManagerBase.ExportManager)$VB$Me).RetrieveResultsBlockStartingFromIndex($VB$Local_appID, $VB$Local_runId, $VB$Local_artifactTypeID, $VB$Local_avfIds, $VB$Local_chunkSize, $VB$Local_displayMulticodesAsNested, $VB$Local_multiValueDelimiter, $VB$Local_nestedValueDelimiter, $VB$Local_textPrecedenceAvfIds, $VB$Local_index);
}
}
[CompilerGenerated]
internal sealed class _Closure$__9-0
{
public int $VB$Local_appID;
public ExportManager $VB$Me;
internal bool _Lambda$__0()
{
return ((kCura.EDDS.WebAPI.ExportManagerBase.ExportManager)$VB$Me).HasExportPermissions($VB$Local_appID);
}
}
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest obj = (HttpWebRequest)this.GetWebRequest(uri);
obj.UnsafeAuthenticatedConnectionSharing = true;
obj.Credentials = this.get_Credentials();
return obj;
}
public ExportManager(ICredentials credentials, CookieContainer cookieContainer)
{
this.set_Credentials(credentials);
this.set_CookieContainer(cookieContainer);
base.Url = $"{AppSettings.Instance.WebApiServiceUrl}""";
this.set_Timeout(Settings.DefaultTimeOut);
}
private T MakeCallAttemptReLogin<T>(Func<T> f)
{
return WebServiceExtensions.RetryOnReLoginException(this, delegate {
try {
return f();
} catch (Exception ex) {
ProjectData.SetProjectError(ex);
Exception ex2 = ex;
UnpackHandledException(ex2);
throw;
}
}, true);
}
public new object[] RetrieveResultsBlockForProductionStartingFromIndex(int appID, Guid runId, int artifactTypeID, int[] avfIds, int chunkSize, bool displayMulticodesAsNested, char multiValueDelimiter, char nestedValueDelimiter, int[] textPrecedenceAvfIds, int productionId, int index)
{
object[] array = MakeCallAttemptReLogin(() => base.RetrieveResultsBlockForProductionStartingFromIndex(appID, runId, artifactTypeID, avfIds, chunkSize, displayMulticodesAsNested, multiValueDelimiter, nestedValueDelimiter, textPrecedenceAvfIds, productionId, index));
RehydrateStrings(array);
return array;
}
object[] kCura.WinEDDS.Service.Export.IExportManager.RetrieveResultsBlockForProductionStartingFromIndex(int appID, Guid runId, int artifactTypeID, int[] avfIds, int chunkSize, bool displayMulticodesAsNested, char multiValueDelimiter, char nestedValueDelimiter, int[] textPrecedenceAvfIds, int productionId, int index)
{
return this.RetrieveResultsBlockForProductionStartingFromIndex(appID, runId, artifactTypeID, avfIds, chunkSize, displayMulticodesAsNested, multiValueDelimiter, nestedValueDelimiter, textPrecedenceAvfIds, productionId, index);
}
object[] kCura.WinEDDS.Service.Replacement.IExportManager.RetrieveResultsBlockForProductionStartingFromIndex(int appID, Guid runId, int artifactTypeID, int[] avfIds, int chunkSize, bool displayMulticodesAsNested, char multiValueDelimiter, char nestedValueDelimiter, int[] textPrecedenceAvfIds, int productionId, int index)
{
return this.RetrieveResultsBlockForProductionStartingFromIndex(appID, runId, artifactTypeID, avfIds, chunkSize, displayMulticodesAsNested, multiValueDelimiter, nestedValueDelimiter, textPrecedenceAvfIds, productionId, index);
}
public new InitializationResults InitializeFolderExport(int appID, int viewArtifactID, int parentArtifactID, bool includeSubFolders, int[] avfIds, int startAtRecord, int artifactTypeID)
{
return MakeCallAttemptReLogin(() => base.InitializeFolderExport(appID, viewArtifactID, parentArtifactID, includeSubFolders, avfIds, startAtRecord, artifactTypeID));
}
InitializationResults kCura.WinEDDS.Service.Export.IExportManager.InitializeFolderExport(int appID, int viewArtifactID, int parentArtifactID, bool includeSubFolders, int[] avfIds, int startAtRecord, int artifactTypeID)
{
return this.InitializeFolderExport(appID, viewArtifactID, parentArtifactID, includeSubFolders, avfIds, startAtRecord, artifactTypeID);
}
InitializationResults kCura.WinEDDS.Service.Replacement.IExportManager.InitializeFolderExport(int appID, int viewArtifactID, int parentArtifactID, bool includeSubFolders, int[] avfIds, int startAtRecord, int artifactTypeID)
{
return this.InitializeFolderExport(appID, viewArtifactID, parentArtifactID, includeSubFolders, avfIds, startAtRecord, artifactTypeID);
}
public new InitializationResults InitializeProductionExport(int appID, int productionArtifactID, int[] avfIds, int startAtRecord)
{
return MakeCallAttemptReLogin(() => base.InitializeProductionExport(appID, productionArtifactID, avfIds, startAtRecord));
}
InitializationResults kCura.WinEDDS.Service.Export.IExportManager.InitializeProductionExport(int appID, int productionArtifactID, int[] avfIds, int startAtRecord)
{
return this.InitializeProductionExport(appID, productionArtifactID, avfIds, startAtRecord);
}
InitializationResults kCura.WinEDDS.Service.Replacement.IExportManager.InitializeProductionExport(int appID, int productionArtifactID, int[] avfIds, int startAtRecord)
{
return this.InitializeProductionExport(appID, productionArtifactID, avfIds, startAtRecord);
}
public new InitializationResults InitializeSearchExport(int appID, int searchArtifactID, int[] avfIds, int startAtRecord)
{
return MakeCallAttemptReLogin(() => base.InitializeSearchExport(appID, searchArtifactID, avfIds, startAtRecord));
}
InitializationResults kCura.WinEDDS.Service.Export.IExportManager.InitializeSearchExport(int appID, int searchArtifactID, int[] avfIds, int startAtRecord)
{
return this.InitializeSearchExport(appID, searchArtifactID, avfIds, startAtRecord);
}
InitializationResults kCura.WinEDDS.Service.Replacement.IExportManager.InitializeSearchExport(int appID, int searchArtifactID, int[] avfIds, int startAtRecord)
{
return this.InitializeSearchExport(appID, searchArtifactID, avfIds, startAtRecord);
}
public new object[] RetrieveResultsBlockStartingFromIndex(int appID, Guid runId, int artifactTypeID, int[] avfIds, int chunkSize, bool displayMulticodesAsNested, char multiValueDelimiter, char nestedValueDelimiter, int[] textPrecedenceAvfIds, int index)
{
object[] array = MakeCallAttemptReLogin(() => base.RetrieveResultsBlockStartingFromIndex(appID, runId, artifactTypeID, avfIds, chunkSize, displayMulticodesAsNested, multiValueDelimiter, nestedValueDelimiter, textPrecedenceAvfIds, index));
RehydrateStrings(array);
return array;
}
object[] kCura.WinEDDS.Service.Export.IExportManager.RetrieveResultsBlockStartingFromIndex(int appID, Guid runId, int artifactTypeID, int[] avfIds, int chunkSize, bool displayMulticodesAsNested, char multiValueDelimiter, char nestedValueDelimiter, int[] textPrecedenceAvfIds, int index)
{
return this.RetrieveResultsBlockStartingFromIndex(appID, runId, artifactTypeID, avfIds, chunkSize, displayMulticodesAsNested, multiValueDelimiter, nestedValueDelimiter, textPrecedenceAvfIds, index);
}
object[] kCura.WinEDDS.Service.Replacement.IExportManager.RetrieveResultsBlockStartingFromIndex(int appID, Guid runId, int artifactTypeID, int[] avfIds, int chunkSize, bool displayMulticodesAsNested, char multiValueDelimiter, char nestedValueDelimiter, int[] textPrecedenceAvfIds, int index)
{
return this.RetrieveResultsBlockStartingFromIndex(appID, runId, artifactTypeID, avfIds, chunkSize, displayMulticodesAsNested, multiValueDelimiter, nestedValueDelimiter, textPrecedenceAvfIds, index);
}
private void RehydrateStrings(object[] toScrub)
{
if (toScrub != null) {
int num = 0;
while (true) {
if (num >= toScrub.Length)
return;
object[] array = (object[])toScrub[num];
if (array == null)
break;
checked {
int num2 = array.Length - 1;
for (int i = 0; i <= num2; i++) {
if (array[i] is byte[])
array[i] = Encoding.Unicode.GetString(unchecked((byte[])array[i]));
}
num++;
}
}
throw new Exception("Invalid (null) row retrieved from server");
}
}
public new bool HasExportPermissions(int appID)
{
return MakeCallAttemptReLogin(() => base.HasExportPermissions(appID));
}
bool kCura.WinEDDS.Service.Export.IExportManager.HasExportPermissions(int appID)
{
return this.HasExportPermissions(appID);
}
bool kCura.WinEDDS.Service.Replacement.IExportManager.HasExportPermissions(int appID)
{
return this.HasExportPermissions(appID);
}
private void UnpackHandledException(Exception ex)
{
SoapException val = ex as SoapException;
if (val != null) {
Exception ex2 = null;
try {
if (Operators.CompareString(val.get_Detail().SelectNodes("ExceptionType").Item(0)
.InnerText, "Relativity.Core.Exception.InsufficientAccessControlListPermissions", false) == 0)
ex2 = new InsufficientPermissionsForExportException(val.get_Detail().SelectNodes("ExceptionMessage")[0].InnerText, ex);
} catch (Exception projectError) {
ProjectData.SetProjectError(projectError);
ProjectData.ClearProjectError();
}
if (ex2 != null)
throw ex2;
}
}
}
}