Exemplo n.º 1
0
        private static void CollectFileData(List <ISegmentWordCounter> counters, IWordCountBatchTaskSettings settings, CountTotal grandTotal, List <CountTotal> fileData)
        {
            foreach (var counter in counters)
            {
                var info = new CountTotal();

                AccumulateCountData(settings, counter, info);

                fileData.Add(info);
                grandTotal.Increment(info);
                grandTotal.UnlockedSpaceCountTotal += info.UnlockedSpaceCountTotal;
                grandTotal.LockedSpaceCountTotal   += info.LockedSpaceCountTotal;
            }
        }
Exemplo n.º 2
0
        private static void AccumulateCountData(IWordCountBatchTaskSettings settings, ISegmentWordCounter counter, CountTotal info)
        {
            info.FileName = counter.FileName;

            SetCountMethod(settings, counter, info);

            foreach (var segInfo in counter.FileCountInfo.SegmentCounts)
            {
                var origin = segInfo.TranslationOrigin;

                if (origin == null)
                {
                    info.Increment(CountTotal.New, segInfo.CountData);
                }
                else
                {
                    if (settings.ReportLockedSeperately && segInfo.IsLocked)
                    {
                        info.Increment(CountTotal.Locked, segInfo.CountData);
                    }
                    else if (origin.OriginType == "document-match")
                    {
                        info.Increment(CountTotal.PerfectMatch, segInfo.CountData);
                    }
                    else if (origin.IsRepeated)
                    {
                        info.Increment(CountTotal.Repetitions, segInfo.CountData);
                    }
                    else if (origin.MatchPercent == 100)
                    {
                        if (origin.TextContextMatchLevel == Sdl.FileTypeSupport.Framework.NativeApi.TextContextMatchLevel.SourceAndTarget)
                        {
                            info.Increment(CountTotal.ContextMatch, segInfo.CountData);
                        }
                        else
                        {
                            info.Increment(CountTotal.OneHundredPercent, segInfo.CountData);
                        }
                    }
                    else if (origin.MatchPercent >= 95)
                    {
                        info.Increment(CountTotal.NinetyFivePercent, segInfo.CountData);
                    }
                    else if (origin.MatchPercent >= 85)
                    {
                        info.Increment(CountTotal.EightyFivePercent, segInfo.CountData);
                    }
                    else if (origin.MatchPercent >= 75)
                    {
                        info.Increment(CountTotal.SeventyFivePercent, segInfo.CountData);
                    }
                    else if (origin.MatchPercent >= 50)
                    {
                        info.Increment(CountTotal.FiftyPercent, segInfo.CountData);
                    }
                    else
                    {
                        info.Increment(CountTotal.New, segInfo.CountData);
                    }
                }

                if (!(settings.ReportLockedSeperately && segInfo.IsLocked))
                {
                    info.Increment(CountTotal.Total, segInfo.CountData);
                }

                if (segInfo.IsLocked)
                {
                    info.LockedSpaceCountTotal += segInfo.SpaceCount;
                }
                else
                {
                    info.UnlockedSpaceCountTotal += segInfo.SpaceCount;
                }
            }
        }