FieldProviderCache
using kCura.EDDS.WebAPI.DocumentManagerBase;
using kCura.WinEDDS.Service;
using System;
using System.Net;
using System.Runtime.CompilerServices;
namespace kCura.WinEDDS
{
public class FieldProviderCache : IFieldProviderCache
{
[Serializable]
[CompilerGenerated]
internal sealed class _Closure$__
{
public static readonly _Closure$__ $I;
public static Func<Field, bool> $I8-0;
public static Func<Field, bool> $I10-0;
static _Closure$__()
{
$I = new _Closure$__();
}
internal bool _Lambda$__8-0(Field field)
{
return true;
}
internal bool _Lambda$__10-0(Field field)
{
return field.FieldTypeID != 9;
}
}
private DocumentFieldCollection _fields;
private DocumentFieldCollection _fieldsNonFile;
private readonly CookieContainer ;
private readonly NetworkCredential _credential;
private readonly Func<string> _correlationIdFunc;
public DocumentFieldCollection CurrentFields {
get {
if (_fields == null || refresh)
_fields = GetFields(artifactTypeId, workspaceId, (_Closure$__.$I8-0 != null) ? _Closure$__.$I8-0 : (_Closure$__.$I8-0 = ((Field field) => true)));
return _fields;
}
}
public DocumentFieldCollection CurrentNonFileFields {
get {
if (_fieldsNonFile == null || refresh)
_fieldsNonFile = GetFields(artifactTypeId, workspaceId, (_Closure$__.$I10-0 != null) ? _Closure$__.$I10-0 : (_Closure$__.$I10-0 = ((Field field) => field.FieldTypeID != 9)));
return _fieldsNonFile;
}
}
public FieldProviderCache(NetworkCredential credential, CookieContainer cookieContainer, Func<string> correlationIdFunc)
{
_cookieContainer = cookieContainer;
_credential = credential;
_correlationIdFunc = correlationIdFunc;
}
public void ResetCache()
{
_fields = null;
_fieldsNonFile = null;
}
void IFieldProviderCache.ResetCache()
{
this.ResetCache();
}
private DocumentFieldCollection GetFields(int artifactTypeId, int workspaceId, Func<Field, bool> filterFun)
{
DocumentFieldCollection documentFieldCollection = new DocumentFieldCollection();
Field[] array = ManagerFactory.CreateFieldQuery(_credential, _cookieContainer, _correlationIdFunc).RetrieveAllAsArray(workspaceId, artifactTypeId, false);
checked {
int num = array.Length - 1;
for (int i = 0; i <= num; i++) {
Field field = array[i];
if (filterFun(array[i]))
documentFieldCollection.Add(new DocumentField(field.DisplayName, field.ArtifactID, field.FieldTypeID, field.FieldCategoryID, field.CodeTypeID, field.MaxLength, field.AssociativeArtifactTypeID, field.UseUnicodeEncoding, field.ImportBehavior, field.EnableDataGrid));
field = null;
}
return documentFieldCollection;
}
}
}
}