Example #1
0
        /// <summary>
        /// Get Statistic Info
        /// </summary>
        /// <param name="candideate"></param>
        /// <param name="t"></param>
        private static void Statistic(List <HiringTracking> candideate, PositionStatistic t)
        {
            t.Pipeline = candideate.Count();
            var firstInterview = from p in candideate
                                 where p.FirstInterviewDate != DateTime.MinValue && !p.IsDel
                                 select p;
            var secondInterview = from p in candideate
                                  where p.SecondInterviewDate != DateTime.MinValue && !p.IsDel
                                  select p;
            var thirdInterview = from p in candideate
                                 where p.ThirdInterviewDate != DateTime.MinValue && !p.IsDel
                                 select p;

            var firstInterviewPass = from p in candideate
                                     where HiringTracking.InterviewPassCheck(p.FirstInterviewResult) && !p.IsDel
                                     select p;
            var secondInterviewPass = from p in candideate
                                      where HiringTracking.InterviewPassCheck(p.SecondInterviewResult) && !p.IsDel
                                      select p;
            var thirdInterviewPass = from p in candideate
                                     where HiringTracking.InterviewPassCheck(p.ThirdInterviewResult) && !p.IsDel
                                     select p;


            if (t.Pipeline != 0)
            {
                t.CVpass = t.Pipeline / firstInterview.Count();
            }
            t.FirstInterviewCount  = firstInterview.Count();
            t.SecondInterviewCount = secondInterview.Count();
            t.ThirdInterviewCount  = thirdInterview.Count();
            t.FirstPass            = firstInterviewPass.Count();
            t.SecondPass           = secondInterviewPass.Count();
            t.ThirdPass            = thirdInterviewPass.Count();

            var Onboard = from p in candideate
                          where p.FinalStatus == HiringTracking.FinalStatusEnum.Onboard && !p.IsDel
                          select p;

            t.Onboard = Onboard.Count();

            var RejectOffer = from p in candideate
                              where p.FinalStatus == HiringTracking.FinalStatusEnum.RejectOffer && !p.IsDel
                              select p;

            t.RejectOffer = RejectOffer.Count();

            var OpenOffer = from p in candideate
                            where p.FinalStatus == HiringTracking.FinalStatusEnum.OpenOffer && !p.IsDel
                            select p;

            t.OpenOffer = OpenOffer.Count();

            var ANOB = from p in candideate
                       where p.FinalStatus == HiringTracking.FinalStatusEnum.ANOB && !p.IsDel
                       select p;

            t.ANOB = ANOB.Count();
        }
        /// <summary>
        /// Phase图
        /// </summary>
        private void InitPhaseChart()
        {
            if (DataCenter.HiringTrackingDataSet.Count == 0)
            {
                return;
            }
            var QuerySeries = new Series("Pileline")
            {
                ChartType  = SeriesChartType.Line,
                XValueType = ChartValueType.String,
                YValueType = ChartValueType.Int32
            };

            PhaseChart.Series.Clear();
            PhaseChart.Series.Add(QuerySeries);

            List <HiringTracking> Target;

            if (Position == SystemManager.strTotal)
            {
                Target = DataCenter.GetHiringTrackingDataSet();
            }
            else
            {
                Target = DataCenter.GetHiringTrackByPosition(Position);
            }

            var queryPoint = new DataPoint();

            queryPoint.SetValueXY("Pipeline", Target.Count());
            PhaseChart.Series[0].Points.Add(queryPoint);


            queryPoint = new DataPoint();
            queryPoint.SetValueXY("ScreenPass", Target.Count((x) =>
            {
                return(!string.IsNullOrEmpty(x.FirstInterviewer));
            }));
            PhaseChart.Series[0].Points.Add(queryPoint);

            queryPoint = new DataPoint();
            queryPoint.SetValueXY("1stPass", Target.Count((x) =>
            {
                return(HiringTracking.InterviewPassCheck(x.FirstInterviewResult));
            }));
            PhaseChart.Series[0].Points.Add(queryPoint);


            queryPoint = new DataPoint();
            queryPoint.SetValueXY("2ndPass", Target.Count((x) =>
            {
                return(HiringTracking.InterviewPassCheck(x.SecondInterviewResult));
            }));
            PhaseChart.Series[0].Points.Add(queryPoint);


            queryPoint = new DataPoint();
            queryPoint.SetValueXY("3rdPass", Target.Count((x) =>
            {
                return(HiringTracking.InterviewPassCheck(x.ThirdInterviewResult));
            }));
            PhaseChart.Series[0].Points.Add(queryPoint);

            queryPoint = new DataPoint();
            queryPoint.SetValueXY("OB", Target.Count((x) =>
            {
                return(x.FinalStatus == HiringTracking.FinalStatusEnum.Onboard);
            }));
            PhaseChart.Series[0].Points.Add(queryPoint);
        }