public PairTrackerPresenter(PairTrackerView view, PairingSession model, AboutPresenter aboutPresenter, SessionPercentageStatisticGenerator statGenerator, Repository <PairingSession> repository)
        {
            this.view           = view;
            this.model          = model;
            this.statGenerator  = statGenerator;
            this.repository     = repository;
            this.aboutPresenter = aboutPresenter;

            view.StartButton_Clicked += new EventHandler <StartButtonClickedEventArgs>(StartSession);
            view.StopButton_Clicked  += new EventHandler <EventArgs>(EndSession);
            view.Controller_Changed  += new EventHandler <ControllerChangedEventArgs>(ChangeControllerHandler);
            view.CloseButton_Clicked += new EventHandler <CloseButtonClickedEventArgs>(Close);
            view.About_Clicked       += new EventHandler <EventArgs>(ShowAbout);
            view.PauseButton_Clicked += new EventHandler <EventArgs>(PauseSession);
        }
        public PairTrackerPresenter(PairTrackerView view, PairingSession model, AboutPresenter aboutPresenter, SessionPercentageStatisticGenerator statGenerator, Repository<PairingSession> repository)
        {
            this.view = view;
            this.model = model;
            this.statGenerator = statGenerator;
            this.repository = repository;
            this.aboutPresenter = aboutPresenter;

            view.StartButton_Clicked += new EventHandler<StartButtonClickedEventArgs>(StartSession);
            view.StopButton_Clicked += new EventHandler<EventArgs>(EndSession);
            view.Controller_Changed += new EventHandler<ControllerChangedEventArgs>(ChangeControllerHandler);
            view.CloseButton_Clicked += new EventHandler<CloseButtonClickedEventArgs>(Close);
            view.About_Clicked += new EventHandler<EventArgs>(ShowAbout);
            view.PauseButton_Clicked += new EventHandler<EventArgs>(PauseSession);
        }
        private IDictionary <Programmer, TimeSpan> GetTotalTimeByProgrammer(PairingSession session)
        {
            var totalTimeInSessionByProgrammer = new Dictionary <Programmer, TimeSpan>();

            foreach (var interval in session.Intervals)
            {
                if (totalTimeInSessionByProgrammer.ContainsKey(interval.Programmer))
                {
                    totalTimeInSessionByProgrammer[interval.Programmer] += interval.Length;
                }
                else
                {
                    totalTimeInSessionByProgrammer.Add(interval.Programmer, interval.Length);
                }
            }

            return(totalTimeInSessionByProgrammer);
        }
Beispiel #4
0
 public PairTrackerPresenterBuilder WithModel(PairingSession model)
 {
     this.model = model;
     return(this);
 }
 public PairTrackerPresenterBuilder WithModel(PairingSession model)
 {
     this.model = model;
     return this;
 }
        public IDictionary <Programmer, Statistic> Generate(PairingSession session)
        {
            var totalTimeInSessionByProgrammer = GetTotalTimeByProgrammer(session);

            return(GetPercentageOfSessionByProgrammer(totalTimeInSessionByProgrammer, session));
        }
        private IDictionary <Programmer, Statistic> GetPercentageOfSessionByProgrammer(IDictionary <Programmer, TimeSpan> totalSecondsInSessionByProgrammer, PairingSession session)
        {
            var percentageOfSessionByProgrammer = new Dictionary <Programmer, Statistic>();

            //TODO: Clean this up
            TimeSpan timeControlledByNeither = new TimeSpan();

            totalSecondsInSessionByProgrammer.TryGetValue(Programmer.Neither, out timeControlledByNeither);

            var totalTimeControlledByAProgrammer = session.Length - timeControlledByNeither;

            foreach (var item in totalSecondsInSessionByProgrammer)
            {
                if (item.Key != Programmer.Neither)
                {
                    percentageOfSessionByProgrammer.Add(item.Key, CalculateStatistic(item.Value, totalTimeControlledByAProgrammer));
                }
            }

            return(percentageOfSessionByProgrammer);
        }