Exemple #1
0
        protected override void ProcessItem(ClientProblem wrapper)
        {
            var state = new ProblemState();

            try
            {
                wrapper.LogStart(Logger);

                state = Service.Spawn(wrapper.Problem);

                Task.Delay(2000).Wait();

                _ = FireCallback(wrapper, state, "updated");

                state.Log(Logger);
            }
            finally
            {
                ActiveIds.Remove(wrapper.Id);
            }
        }
Exemple #2
0
        /// <summary>
        /// Process a flag for a problem submission
        /// </summary>
        /// <param name="wrapper"></param>
        protected override void ProcessItem(ClientProblemFlag wrapper)
        {
            try
            {
                wrapper.Log(Logger);

                var result = Service.Grade(wrapper.ProblemFlag);

                Task.Delay(2000).Wait();

                _ = FireCallback(wrapper, result, "graded");
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, $"Failed to process grade for {wrapper.Id}");
            }
            finally
            {
                ActiveIds.Remove(wrapper.Id);

                Logger.LogDebug($"Removed from active list, {wrapper.Id}");
            }
        }
Exemple #3
0
 public void Test()
 {
     Repository.Verify(r => r.Update(Connection, It.Is <AlarmSampleId[]>(
                                         tuples => tuples.Count(t => ActiveIds.Contains(t)) ==
                                         ActiveIds.Length - 1),
                                     TimeService.Object.UtcTime), Times.Once());
 }