I am getting error while updating the retention schedule informatin to laserfiche.In below line i m getting the error "dispositionScheduleInfo.RemoveTransfer(transferInfo.Index);".i have included code block for updating retention schedule.Please check let me know if any modifications required..
public static int UpdateDispositionScheduleAction(List<DispositionSchedule> listDispositionSchedule, List<DispositionTransferInfo> listDispositionTransfer, out int status)
{
status = 0;
Session session = Connect(ServerName, RepositoryName);
Laserfiche.RepositoryAccess.Records.RetentionInstructions retentionInst = new Laserfiche.RepositoryAccess.Records.RetentionInstructions();
DispositionScheduleInfo dispositionScheduleInfo = new DispositionScheduleInfo();
var dispositionScheduleList = listDispositionSchedule[0];
dispositionScheduleInfo.Name = dispositionScheduleList.Name;
dispositionScheduleInfo.Description = dispositionScheduleList.Description;
dispositionScheduleInfo.RetentionMonths = dispositionScheduleList.RetentionMonths;
Laserfiche.RepositoryAccess.Records.DispositionType finalDispositionType = new Laserfiche.RepositoryAccess.Records.DispositionType();
const Laserfiche.RepositoryAccess.Records.RetentionInstructions retentionInstructions = Laserfiche.RepositoryAccess.Records.RetentionInstructions.RetainMetadataOnly;
try
{
switch (dispositionScheduleList.FinalDisposition.ToString())
{
case "Accession":
finalDispositionType = Laserfiche.RepositoryAccess.Records.DispositionType.Accession;
break;
case "Destroy":
finalDispositionType = Laserfiche.RepositoryAccess.Records.DispositionType.Destroy;
break;
case "None":
finalDispositionType = Laserfiche.RepositoryAccess.Records.DispositionType.None;
break;
}
foreach (var transferInfo in listDispositionTransfer)
{
switch (transferInfo.Instructions.ToString())
{
case "RetainMetadataOnly":
retentionInst = Laserfiche.RepositoryAccess.Records.RetentionInstructions.RetainMetadataOnly;
break;
case "Delete":
retentionInst = Laserfiche.RepositoryAccess.Records.RetentionInstructions.Delete;
break;
case "RetainAll":
retentionInst = Laserfiche.RepositoryAccess.Records.RetentionInstructions.RetainAll;
break;
case "NotConfigured":
retentionInst = Laserfiche.RepositoryAccess.Records.RetentionInstructions.NotConfigured;
break;
}
dispositionScheduleInfo.RemoveTransfer(transferInfo.Index);
dispositionScheduleInfo.AddTransfer(transferInfo.LocationId, transferInfo.RetentionMonths, retentionInst, transferInfo.Description);
}
dispositionScheduleInfo.SetFinalDisposition(finalDispositionType, retentionInstructions);
Laserfiche.RepositoryAccess.Records.DispositionSchedule.Update(dispositionScheduleList.Name, dispositionScheduleInfo, session);
if (dispositionScheduleInfo.Id > 0)
status = 1;
return dispositionScheduleInfo.Id;
}
finally
{
session.LogOut();
}
}