示例#1
0
        public void MissingCheckpoints()
        {
            var score = new CycleScore(CheckPoint.Current().Cycle, DateTimeOffset.Now.Ticks);

            foreach (var cp in score.MissingCPs())
            {
                Console.WriteLine(cp.Cp);
            }
            score.SetScore(2, new UpdateScore(new CpScore(1000, 0), 0), new Mock <ICycleScoreUpdater>().Object);
            foreach (var cp in score.MissingCPs())
            {
                Console.WriteLine(cp.Cp);
            }
        }
        private void PostToSlack(CycleScore currentCycle)
        {
            IRestResponse response;

            if (currentCycle.HasMissingCPs())
            {
                var missingCPs = currentCycle.MissingCPs();
                //http://localhost:31790/#/6/1
                var missingMessages = missingCPs.Select(cp => string.Format("Missing CP {2}. Goto http://{0}/#/{1}/{2} to update the score", Request.RequestUri.Host.ToLower(), currentCycle.Cycle.Id, cp.Cp)).ToList();
                response = _slackSender.Send(string.Join("\n", missingMessages));
            }
            else
            {
                response = _slackSender.Send(currentCycle.ToString());
            }

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new HttpException((int)response.StatusCode, "Error Sending To Slack. " + response.ErrorMessage);
            }
        }