Example #1
0
        public CurrentPlotStatus GetCurrentPlotStatus()
        {
            if (this.IsComplete)
            {
                return(null);
            }

            CurrentPlotStatus cps = new CurrentPlotStatus();

            if (Phases.Count == 0)
            {
                cps.CurrentPhase = "Starting";
                return(cps);
            }

            var currentPhase = Phases.OrderByDescending(p => p.Number).FirstOrDefault();

            cps.CurrentPhase = $"Phase {currentPhase.Number}";
            cps.StartTime    = currentPhase.StartDate;
            cps.PhaseNumber  = currentPhase.Number;

            if (!string.IsNullOrWhiteSpace(FinalFileSize))
            {
                cps.CurrentPhase = CopyingStatusText;
                cps.StartTime    = currentPhase.EndDate;
                cps.PhaseNumber  = null;
            }

            if (Phases.Any())
            {
                int totalPhaseLines = Phases.Sum(p => p.LogLineCount);
                cps.PercentComplete = (totalPhaseLines + 0.0) / (788.0 + 30 + 1636 + 143);
            }

            return(cps);
        }