Пример #1
0
        /// <summary>
        /// TODOTR: document
        /// </summary>
        /// <param name="context">TODOTR: document context</param>
        protected override void OnEndSendTranslationJob(ITranslationJobContext context)
        {
            GLExchange projectDirectorClient;

            if (context.TryGetItem <GLExchange>(CurrentClientKey, out projectDirectorClient))
            {
                bool isAtLeastOneDocumentUploaded;
                if (context.TryGetItem <bool>(DocumentUploadedKey, out isAtLeastOneDocumentUploaded) && isAtLeastOneDocumentUploaded)
                {
                    var submissionTicket = projectDirectorClient.getSubmissionTicket();
                    IStartProjectTaskEvent startProjEvent;
                    if (context.TryGetItem <IStartProjectTaskEvent>(StartProjectEventKey, out startProjEvent))
                    {
                        projectDirectorClient.startSubmission();
                        startProjEvent.Acknowledge(submissionTicket);
                    }
                }

                context.Items.Remove(CurrentClientKey);
            }

            base.OnEndSendTranslationJob(context);
        }
Пример #2
0
        /// <inheritdoc />
        protected override bool ProcessSendTranslationEvent(ISendTranslationTaskEvent evnt, ITranslationJobContext context, out string translationId)
        {
            GLExchange projectDirectorClient;

            if (!context.TryGetItem <GLExchange>(CurrentClientKey, out projectDirectorClient))
            {
                var submissionTicket = evnt.ProjectExternalId;

                projectDirectorClient = new GLExchange(this.ProjectDirectorConfig);
                if (!string.IsNullOrEmpty(submissionTicket))
                {
                    projectDirectorClient.getSubmission(submissionTicket);
                }

                context.Items[CurrentClientKey] = projectDirectorClient;
            }

            var translationsComDocument = new Document
            {
                fileformat = TranslationsComConnector.FileFormat,

                // Setting the translation id as the name of the document.
                name            = string.Format("{0}.xlf", evnt.TranslationId),
                sourceLanguage  = evnt.ActualSourceLanguage,
                targetLanguages = new string[] { evnt.TargetLanguage }
            };

            var xliffFile = evnt.GetXliffFile();

            this.ProcessXliffFile(xliffFile);
            var root = new XliffRoot();

            root.Files.Add(xliffFile);

            var xliffSerializer = new XmlSerializer(typeof(XliffRoot));

            using (var xliffStream = new MemoryStream())
            {
                xliffSerializer.Serialize(xliffStream, root);
                xliffStream.Seek(0, SeekOrigin.Begin);
                translationsComDocument.setDataFromMemoryStream(xliffStream);
                projectDirectorClient.uploadTranslatable(translationsComDocument);
            }

            // Setting a Boolean value indicating that we successfully uploaded at least one document in the current submission.
            context.Items[DocumentUploadedKey] = true;

            translationId = translationsComDocument.name;

            return(false);
        }
Пример #3
0
 /// <inheritdoc />
 protected override bool OnSendTranslationError(Exception err, ISendTranslationTaskEvent evnt, ITranslationJobContext context)
 {
     return(false);
 }
Пример #4
0
        /// <summary>
        /// TODOTR: document
        /// </summary>
        /// <param name="evnt">TODOTR: document event</param>
        /// <param name="context">TODOTR: document context</param>
        /// <param name="projectId">TODOTR: document projectId</param>
        /// <returns>TODOTR: document returns</returns>

        protected override bool ProcessStartProjectEvent(IStartProjectTaskEvent evnt, ITranslationJobContext context, out string projectId)
        {
            projectId = string.Empty;

            var projectDirectorClient = new GLExchange(this.ProjectDirectorConfig);

            var project = projectDirectorClient.getProject(this.TranslationsComProjectShortCode);

            Submission submission = new Submission();

            submission.name    = string.Format("{0}{1}-UCF-{2}", this.SubmissionNamePrefix, evnt.ProjectName, DateTime.Now.ToString("yyyy-MM-dd-hh-mm"));
            submission.project = project;
            submission.dueDate = evnt.DueDate;

            projectDirectorClient.initSubmission(submission);

            context.Items[CurrentClientKey]     = projectDirectorClient;
            context.Items[StartProjectEventKey] = evnt;

            return(false);
        }