Example #1
0
        private void calculate_pem_total(ActivityRates activityRates)
        {
            if (objectListView_documents.Items.Count > 0 && activityRates.LanguageRateName.Trim() != string.Empty)
            {
                numericUpDown_pem_rate_total.Value = 0;
                label_rate_currency.Text           = activityRates.LanguageRateCurrency;

                var tcc = new TextComparer {
                    Type = TextComparer.ComparisonType.Words
                };


                var dictTcas = new Dictionary <string, List <DocumentActivity> >();
                foreach (var documentActivity in DocumentActivities)
                {
                    if (!dictTcas.ContainsKey(documentActivity.DocumentId))
                    {
                        dictTcas.Add(documentActivity.DocumentId, new List <DocumentActivity> {
                            documentActivity
                        });
                    }
                    else
                    {
                        dictTcas[documentActivity.DocumentId].Add(documentActivity);
                    }
                }


                foreach (var kvp in dictTcas)
                {
                    var mergedDocuments = new MergedDocuments(kvp.Value, Activity, tcc, activityRates);


                    if (mergedDocuments.LanguageRate != null)
                    {
                        var exactWordsPem = mergedDocuments.LanguageRate.Rate100 * mergedDocuments.ExactWords;
                        var p99WordsPem   = mergedDocuments.LanguageRate.Rate95 * mergedDocuments.Fuzzy99Words;
                        var p94WordsPem   = mergedDocuments.LanguageRate.Rate85 * mergedDocuments.Fuzzy94Words;
                        var p84WordsPem   = mergedDocuments.LanguageRate.Rate75 * mergedDocuments.Fuzzy84Words;
                        var p74WordsPem   = mergedDocuments.LanguageRate.Rate50 * mergedDocuments.Fuzzy74Words;
                        var newWordsPem   = mergedDocuments.LanguageRate.RateNew * mergedDocuments.NewWords;

                        var totalWordsPem = exactWordsPem + p99WordsPem + p94WordsPem + p84WordsPem + p74WordsPem + newWordsPem;

                        numericUpDown_pem_rate_total.Value += totalWordsPem;
                    }
                }
            }
            else
            {
                numericUpDown_pem_rate_total.Value = 0;
                label_rate_currency.Text           = Tracked.Settings.GetGeneralProperty("defaultCurrency").Value;
            }

            check_activity_rate_total();
        }
        private void show_panel(bool back)
        {
            switch (IndexCurrent)
            {
            case 0:
            {
                Text = PluginResources.DQF_Project_Task_Wizard_Title;
                panel_information.BringToFront();
            } break;

            case 1:
            {
                Text = PluginResources.DQF_Project_Task_Step_1_of_3;
                panel_dqf_project.BringToFront();
            } break;

            case 2:
            {
                Text = PluginResources.DQF_Project_Task_Step_2_of_3;

                panel_dqf_documents.BringToFront();
            } break;

            case 3:
            {
                Text = PluginResources.DQF_Project_Task_Step_3_of_3;

                panel_processing_the_upload.BringToFront();
                Application.DoEvents();

                var currentString = string.Empty;
                try
                {
                    progressBar_import_progress.Value   = 0;
                    progressBar_import_progress.Maximum = 100;
                    label_progress_message.Text         = string.Format(PluginResources._0_entries_processed, 0);
                    label_progress_percentage.Text      = "0%";

                    Application.DoEvents();
                    Cursor = Cursors.WaitCursor;

                    var processor = new Processor();
                    if (treeView_dqf_projects.SelectedNode != null)
                    {
                        var dqfProject = treeView_dqf_projects.SelectedNode.Tag as DqfProject;
                        if (dqfProject != null && dqfProject.DqfProjectId > -1)
                        {
                            #region  |  get the working list  |


                            var documentActivitiesUploadList = new List <DocumentActivity>();
                            var targetLanguages = new List <string>();

                            foreach (ListViewItem item in listView_documents.Items)
                            {
                                if (!item.Checked)
                                {
                                    continue;
                                }
                                var da = item.Tag as DocumentActivity;
                                documentActivitiesUploadList.Add(da);

                                if (da != null && !targetLanguages.Contains(da.TranslatableDocument.TargetLanguage))
                                {
                                    targetLanguages.Add(da.TranslatableDocument.TargetLanguage);
                                }
                            }

                            progressBar_import_progress.Maximum = GetTotalDocumentRecords(documentActivitiesUploadList);

                            #endregion


                            var documentActivitiesDictionary = new Dictionary <string, List <DocumentActivity> >();

                            foreach (var documentActivity in documentActivitiesUploadList)
                            {
                                if (!documentActivitiesDictionary.ContainsKey(documentActivity.DocumentId))
                                {
                                    documentActivitiesDictionary.Add(documentActivity.DocumentId, new List <DocumentActivity> {
                                            documentActivity
                                        });
                                }
                                else
                                {
                                    documentActivitiesDictionary[documentActivity.DocumentId].Add(documentActivity);
                                }
                            }


                            var tcc = new TextComparer {
                                Type = TextComparer.ComparisonType.Words
                            };


                            var query = new Query();

                            foreach (var targetLanguage in targetLanguages)
                            {
                                foreach (var kvp in documentActivitiesDictionary)
                                {
                                    if (kvp.Value[0].TranslatableDocument.TargetLanguage != targetLanguage)
                                    {
                                        continue;
                                    }
                                    var mergedDocuments = new MergedDocuments(kvp.Value, Activity, tcc, null);

                                    var productivityProjectTask = new ProductivityProjectTask
                                    {
                                        DqfProjectKey    = dqfProject.DqfProjectKey,
                                        Projectid        = dqfProject.DqfProjectId,
                                        DqfPmanagerKey   = Tracked.Settings.DqfSettings.UserKey,
                                        DqfTranslatorKey = Tracked.Settings.DqfSettings.TranslatorKey,
                                        TargetLanguage   = mergedDocuments.DocumentTargetLanguage,
                                        FileName         = mergedDocuments.DocumentName
                                    };
                                    productivityProjectTask = processor.PostDqfProjectTask(productivityProjectTask);


                                    if (productivityProjectTask.ProjectTaskId <= -1)
                                    {
                                        continue;
                                    }

                                    #region  |  create ProjectTaskSegment list  |

                                    var ptss = new List <ProjectTaskSegment>();

                                    foreach (var record in mergedDocuments.RecordsDictionary.Values)
                                    {
                                        var pts = new ProjectTaskSegment
                                        {
                                            Segmentid        = record.SegmentId,
                                            DqfProjectKey    = dqfProject.DqfProjectKey,
                                            DqfTranslatorKey = Tracked.Settings.DqfSettings.TranslatorKey,
                                            Projectid        = dqfProject.DqfProjectId,
                                            Taskid           = productivityProjectTask.ProjectTaskId,
                                            SourceSegment    =
                                                Helper.GetCompiledSegmentText(
                                                    record.ContentSections.SourceSections, true)
                                        };
                                        if (pts.SourceSegment == string.Empty)
                                        {
                                            pts.SourceSegment = " ";
                                        }
                                        pts.TargetSegment = Helper.GetCompiledSegmentText(record.ContentSections.TargetOriginalSections, true);
                                        if (pts.TargetSegment == string.Empty)
                                        {
                                            pts.TargetSegment = " ";
                                        }
                                        pts.NewTargetSegment = Helper.GetCompiledSegmentText(record.ContentSections.TargetUpdatedSections, true);
                                        if (pts.NewTargetSegment == string.Empty)
                                        {
                                            pts.NewTargetSegment = " ";
                                        }
                                        pts.Time     = new TimeSpan(record.TicksElapsed).Milliseconds;
                                        pts.TmMatch  = GetMatchPercentage(record.TranslationOrigins.Updated.TranslationStatus, record.TranslationOrigins.Updated.OriginType);
                                        pts.Cattool  = 23;        //Trados Studio
                                        pts.Mtengine = 1;
                                        if (record.TranslationOrigins.Updated.OriginType.ToLower().Trim() == "mt" ||
                                            record.TranslationOrigins.Updated.OriginType.ToLower().Trim() == "amt")
                                        {
                                            #region  |  get MT engine  |

                                            if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("APERTIUM", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 2;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("APERTIUM-MOSES", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 3;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("ASIA ONLINE", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 4;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("BING", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 5;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("CAPITA", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 6;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("CARABAO", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 7;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("CCID", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 8;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("CROSSLANG", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 9;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("LINDEN", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 10;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("FIRMA8", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 11;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("FREET", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 12;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("GOOGLE", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 13;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("ICONIC", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 14;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("KANTAN", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 15;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("KODENSHA", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 16;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("LDS TRANSLATOR", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 17;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("LINGUASYS", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 18;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("LUCY", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 19;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("MICROSOFT", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 20;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("MOSES", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 21;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("MYMEMORY", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 22;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("MYMT", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 23;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("OPENTRAD", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 24;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("PANGEAMT", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 25;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("PRAGMA", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 26;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("PROMT", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 27;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("REVERSO", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 28;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("SAFABA", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 29;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("SDL", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 30;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("SOVEE", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 31;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("SYSTRAN", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 32;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("T-TEXT", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 33;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("TAUYOU", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 34;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("TOSHIBA", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 35;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("TRANSSPHERE", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 36;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("WEBLIO", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 37;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("WEBTRANCE", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 38;
                                            }
                                            else if (record.TranslationOrigins.Updated.OriginSystem.ToUpper().IndexOf("WEMT", StringComparison.Ordinal) > -1)
                                            {
                                                pts.Mtengine = 39;
                                            }
                                            else         //other
                                            {
                                                pts.Mtengine = 40;
                                            }

                                            #endregion
                                        }
                                        ptss.Add(pts);
                                    }

                                    #endregion


                                    foreach (var pts in ptss)
                                    {
                                        label_progress_message.Text = string.Format(PluginResources._0_entries_processed, progressBar_import_progress.Value);

                                        if (progressBar_import_progress.Value + 1 <= progressBar_import_progress.Maximum)
                                        {
                                            progressBar_import_progress.Value = ++progressBar_import_progress.Value;

                                            var perc = Convert.ToDouble(progressBar_import_progress.Value) / Convert.ToDouble(progressBar_import_progress.Maximum);
                                            label_progress_percentage.Text = Convert.ToString(Math.Round(perc * 100, 0), CultureInfo.InvariantCulture) + "%";

                                            Application.DoEvents();
                                            Cursor = Cursors.WaitCursor;
                                        }


                                        processor.PostDqfProjectTaskSegment(pts);
                                    }


                                    #region  |  create DQFProjectTask  |

                                    var dqfProjectTask = new DqfProjectTask
                                    {
                                        TableTausdqfprojectsId = dqfProject.Id,
                                        ProjectActivityId      = Activity.Id,
                                        DocumentId             = kvp.Key,
                                        DocumentName           = mergedDocuments.DocumentName,
                                        DqfTranslatorKey       = Tracked.Settings.DqfSettings.TranslatorKey,
                                        DqfProjectKey          = dqfProject.DqfProjectKey,
                                        DqfProjectId           = dqfProject.DqfProjectId,
                                        DqfTaskId      = productivityProjectTask.ProjectTaskId,
                                        Uploaded       = DateTime.Now,
                                        TargetLanguage = mergedDocuments.DocumentTargetLanguage,
                                        CatTool        = 23,
                                        TotalSegments  = mergedDocuments.RecordsDictionary.Values.Count()
                                    };



                                    #endregion

                                    dqfProjectTask.Id = query.CreateDqfProjectTask(Tracked.Settings.ApplicationPaths.ApplicationMyDocumentsDatabaseProjectsPath, dqfProjectTask);

                                    dqfProject.DqfTasks.Add(dqfProjectTask);
                                }
                            }

                            progressBar_import_progress.Value = progressBar_import_progress.Maximum;
                            label_progress_message.Text       = string.Format(PluginResources._0_entries_processed, progressBar_import_progress.Maximum);
                            label_progress_percentage.Text    = "100%";
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, ex.Message + "\r\n\r\n" + currentString, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    Cursor = Cursors.Default;
                }
            } break;
            }
            check_enabled();
        }