private Dictionary <string, object> getDialogRepresentation(TaskDialogAnnotation dialog, string annotation, int?forcedSuccessCode)
        {
            var r = new Dictionary <string, object>();

            var d = dialog.Dialog;

            r["Id"]               = d.Id;
            r["Task"]             = d.Task;
            r["ManualAnnotation"] = annotation;
            r["SuccessCode"]      = forcedSuccessCode ?? d.SuccessCode;
            r["ExperimentId"]     = d.ExperimentId;
            r["DialogEvents"]     = getEventsRepresentation(dialog.Dialog);
            return(r);
        }
        internal void Refresh()
        {
            _dialogAnnotations.Clear();
            var logFiles = new List <LogFile>();

            foreach (var experiment in _experiments)
            {
                foreach (var logFile in experiment.LoadLogFiles())
                {
                    foreach (var dialog in logFile.ParseDialogs())
                    {
                        var annotatedDialog = new TaskDialogAnnotation(dialog);
                        _dialogAnnotations.Add(annotatedDialog);
                    }
                }
            }

            _dialogAnnotations.Sort((a, b) => a.Dialog.Start.CompareTo(b.Dialog.Start));
        }