Hi,
I do have an automated package import, however it throws an exception when vendor does try to deliver package more than once. Here is my code:
List<ProgressEventArgs> test_progress_args = new List<ProgressEventArgs>();
List<MessageEventArgs> test_messages = new List<MessageEventArgs>();
ReturnPackageImport rpi_test = p_test.ImportReturnPackage(packageFile,(sender,progresarg)=>test_progress_args.Add(progresarg),(sender,messagearg)=>test_messages.Add(messagearg));
if (rpi_test.Status != PackageStatus.Completed)
{
throw new Exception("Package test: SDL Trados could not import vendor translation package. " + rpi_test.StatusMessage);
}
if (test_messages.Count > 0)
{
string body = "";
foreach (MessageEventArgs message in test_messages)
{
body += String.Format(" {0} </br>", message.Message.Message);
}
string subject = String.Format("Job: {0}, Language: {1}, WO: {2}", wr.Job.Number,
wr.TargetLanguageAsString, wr.WorkRequestId);
string final_body =
String.Format(
"Hello {0}, <br>Vendor {1} is trying to upload translation package but following error does occur: <br>{2}<br>" +
"This error is displayed on vendor WO page.<br>If you have received this message several times please follow up with vendor or log DocEng support ticket",
wr.InternalContactPerson.FirstName, wr.ContactPerson.Company.CompanyName, body);
List<string> to = new List<string>();
to.Add(wr.InternalContactPerson.Email);
List<string> cc_package_test= new List<string>();
cc_package_test.Add(wr.Job.ProjectManager.Email);
SendMailNoAttachments(subject,final_body,MailPriority.High,to,cc_package_test);
throw new Exception(body);
}
It does work well when vendor upload package first time, but line:
ReturnPackageImport rpi_test = p_test.ImportReturnPackage(packageFile,(sender,progresarg)=>test_progress_args.Add(progresarg),(sender,messagearg)=>test_messages.Add(messagearg));
throws an exception below when you will try to import it one more time:
Subject: Sdl.ProjectApi.Implementation
This property is only available once the package has been imported.
at Sdl.ProjectApi.Implementation.PackageOperation.get_Files()
at Sdl.ProjectAutomation.FileBased.FileBasedProject.CreateReturnPackageImportObject(IReturnPackageImport rpi)
at Sdl.ProjectAutomation.FileBased.FileBasedProject.ImportReturnPackage(String returnPackageFilePath, EventHandler`1 statusEventHandler, EventHandler`1 messageEventHandler)
at Trados2011.Tools.ImportTranslationPackage(String projectFile, String packageFile, List`1 emails, String job_number, String client_name, String work_order_id, String language, String pm_firstname, String pc_firstname, TradosWorkQueue q) in c:\code\iTrac\Client\Trados2011\Tools.cs:line 727
at TradosQueueProcessor.Program.ImportWorkRequestPackage(TradosWorkQueue q) in c:\code\iTrac\Client\TradosQueueProcessor\Program.cs:line 658
at TradosQueueProcessor.Program.ProcessQueue() in c:\code\iTrac\Client\TradosQueueProcessor\Program.cs:line 94
Does anyone have any idea how i can:
a) Check if package is already imported
b) reset previous import.
I'm using Trados 2011
Thanks in advance!