Exemplo n.º 1
0
        private void ListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var viewModel        = DataContext as ConferenceViewModel;
            var sessionViewModel = viewModel.CreateSelectedSessionViewModel();

            if (sessionViewModel != null)
            {
                SessionWindow sessionWindow = new SessionWindow();
                sessionWindow.Show(sessionViewModel);
            }
        }
Exemplo n.º 2
0
        public SessionViewModel(Window ownerWindow)
        {
            CommandSessionStep         = new RelayCommand(CommandSessionStep_Execute);
            CommandAcceptRemoteControl = new RelayCommand(CommandAcceptRemoteControl_Execute);
            CommandRejectRemoteControl = new RelayCommand(CommandRejectRemoteControl_Execute);

            Window = new SessionWindow()
            {
                DataContext = this,
                Owner       = ownerWindow
            };
        }
Exemplo n.º 3
0
    private void TryGenerateWindowAggregation(TimeWindows windowedBy)
    {
        if (windowedBy == null)
        {
            return;
        }

        var windowType = windowedBy switch
        {
            HoppingWindows _ => "HOPPING",
            SessionWindow _ => "SESSION",
            _ => "TUMBLING"
        };

        string size = windowType == "SESSION" ? String.Empty : "SIZE ";

        Append($" WINDOW {windowType} ({size}{windowedBy.Duration.Value} {windowedBy.Duration.TimeUnit}");

        if (windowedBy is HoppingWindows {
            AdvanceBy : { }
        } hoppingWindows)
        {
            Append($", ADVANCE BY {hoppingWindows.AdvanceBy.Value} {hoppingWindows.AdvanceBy.TimeUnit}");
        }

        if (windowedBy is HoppingWindows {
            Retention : { }
        } hoppingWindows2)
        {
            Append($", RETENTION {hoppingWindows2.Retention.Value} {hoppingWindows2.Retention.TimeUnit}");
        }

        if (windowedBy.GracePeriod != null)
        {
            Append($", GRACE PERIOD {windowedBy.GracePeriod.Value} {windowedBy.GracePeriod.TimeUnit}");
        }

        Append(")");
    }
}
Exemplo n.º 4
0
        static public FuncExpr BuildFuncExpr(string funcName, List <Expr> args)
        {
            var func = funcName.Trim().ToLower();

            FuncExpr r;

            switch (func)
            {
            case "sum": r = new AggSum(args); break;

            case "min": r = new AggMin(args); break;

            case "max": r = new AggMax(args); break;

            case "avg": r = new AggAvg(args); break;

            case "stddev_samp": r = new AggStddevSamp(args); break;

            case "count":
                if (args.Count == 0)
                {
                    r = new AggCountStar(null);
                }
                else
                {
                    r = new AggCount(args);
                }
                break;

            case "substr":
            case "substring": r = new SubstringFunc(args); break;

            case "upper": r = new UpperFunc(args); break;

            case "year": r = new YearFunc(args); break;

            case "date": r = new DateFunc(args); break;

            case "repeat": r = new RepeatFunc(args); break;

            case "abs": r = new AbsFunc(args); break;

            case "round": r = new RoundFunc(args); break;

            case "coalesce": r = new CoalesceFunc(args); break;

            case "hash": r = new HashFunc(args); break;

            case "tumble": r = new TumbleWindow(args); break;

            case "tumble_start": r = new TumbleStart(args); break;

            case "tumble_end": r = new TumbleEnd(args); break;

            case "hop": r = new HopWindow(args); break;

            case "session": r = new SessionWindow(args); break;

            default:
                if (ExternalFunctions.set_.ContainsKey(funcName))
                {
                    r = new ExternalFunc(func, args);
                }
                else
                {
                    r = new FuncExpr(funcName, args);
                }
                break;
            }

            // verify arguments count
            if (args.Count != r.argcnt_)
            {
                throw new SemanticAnalyzeException($"{r.argcnt_} argument is expected");
            }
            return(r);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Open session window
        /// </summary>
        public void OpenSessionWindow()
        {
            if (_group == null || _group.Length < 1 ||
                _indiv == null || _indiv.Length < 1 ||
                _eval == null || _eval.Length < 1 ||
                _cond == null || _cond.Length < 1 ||
                _keys == null || _keys.Length < 1 ||
                _sessionNumber == null || _sessionNumber.Length < 1 ||
                _ther == null || _ther.Length < 1 ||
                _collect == null || _collect.Length < 1 ||
                _dataRole == null || _dataRole.Length < 1 ||
                _sessionTime == null || _sessionTime.Length < 1)
            {
                return;
            }

            int session;

            if (!int.TryParse(_sessionNumber, out session))
            {
                return;
            }

            try
            {
                string savedStatePath = Path.Combine(Properties.Settings.Default.SaveLocation, "SavedState.json");
                var    savedState     = new SavedState();
                savedState.Group         = _group;
                savedState.Individual    = _indiv;
                savedState.Evaluation    = _eval;
                savedState.Condition     = _cond;
                savedState.KeySet        = _keys;
                savedState.Therapist     = _ther;
                savedState.DataCollector = _collect;
                savedState.Role          = _dataRole;
                savedState.Duration      = _sessionTime;

                string json = JsonConvert.SerializeObject(savedState);
                File.WriteAllText(savedStatePath, json);
            }
            catch { }

            var window = new SessionWindow("Recording Session: Session #" + SessionNumber);

            window.GroupName      = _group;
            window.PatientName    = _indiv;
            window.EvaluationName = _eval;
            window.ConditionName  = _cond;
            window.KeyboardName   = _keys + ".json";
            window.SessionCount   = session;
            window.TherapistName  = _ther;
            window.CollectorName  = _collect;
            window.CollectorRole  = _dataRole;
            window.SetKeys(keyboardListViewModel.keyboardSelection);
            window.SessionTime = GetSessionLength(_sessionTime);

            window.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            window.ShowDialog();

            var kbWindow = new ResultsWindow();

            kbWindow.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            kbWindow.mFrequencyColumns = window.GetFrequencyKeys();
            kbWindow.mDurationColumns  = window.GetDurationKeys();

            kbWindow.mainFreqCounts  = window.GetMainFrequencyCounts();
            kbWindow.mainFreqMinutes = window.GetMainFrequencyTotals();
            kbWindow.mainFreqRPM     = window.GetMainFrequencyRPM();

            kbWindow.mainDurCounts  = window.GetMainDurationTime();
            kbWindow.mainDurMinutes = window.GetMainDurationTotalTime();
            kbWindow.mainDurPercent = window.GetMainDurationPercentageSession();

            kbWindow.schOneFreqCounts  = window.GetSchOneFrequencyCounts();
            kbWindow.schOneFreqMinutes = window.GetSchOneFrequencyTotals();
            kbWindow.schOneFreqRPM     = window.GetSchOneFrequencyRPM();

            kbWindow.schOneDurCounts  = window.GetSchOneDurationTime();
            kbWindow.schOneDurMinutes = window.GetSchOneDurationTotalTime();
            kbWindow.schOneDurPercent = window.GetSchOneDurationPercentageSession();

            kbWindow.schTwoFreqCounts  = window.GetSchTwoFrequencyCounts();
            kbWindow.schTwoFreqMinutes = window.GetSchTwoFrequencyTotals();
            kbWindow.schTwoFreqRPM     = window.GetSchTwoFrequencyRPM();

            kbWindow.schTwoDurCounts  = window.GetSchTwoDurationTime();
            kbWindow.schTwoDurMinutes = window.GetSchTwoDurationTotalTime();
            kbWindow.schTwoDurPercent = window.GetSchTwoDurationPercentageSession();

            kbWindow.schThreeFreqCounts  = window.GetSchThreeFrequencyCounts();
            kbWindow.schThreeFreqMinutes = window.GetSchThreeFrequencyTotals();
            kbWindow.schThreeFreqRPM     = window.GetSchThreeFrequencyRPM();

            kbWindow.schThreeDurCounts  = window.GetSchThreeDurationTime();
            kbWindow.schThreeDurMinutes = window.GetSchThreeDurationTotalTime();
            kbWindow.schThreeDurPercent = window.GetSchThreeDurationPercentageSession();

            kbWindow.ShowDialog();

            if (kbWindow.SaveData && window.stopWatch.Elapsed.TotalSeconds > 0)
            {
                XSSFWorkbook hssfworkbook = new XSSFWorkbook();

                try
                {
                    ISheet page = hssfworkbook.CreateSheet("Cover Page");
                    window.WriteResults(page, window.freqIntervalListMain, window.stopWatch, window.durationIntervalListMain, window.mMultiScheds[0], true, 0);

                    page = hssfworkbook.CreateSheet("Schedule 1 Only");
                    window.WriteResults(page, window.freqIntervalListSchOne, window.scheduleOne, window.durationIntervalListSchOne, window.mMultiScheds[1], false, 1);
                    page = hssfworkbook.CreateSheet("Schedule 2 Only");
                    window.WriteResults(page, window.freqIntervalListSchTwo, window.scheduleTwo, window.durationIntervalListSchTwo, window.mMultiScheds[2], false, 2);
                    page = hssfworkbook.CreateSheet("Schedule 3 Only");
                    window.WriteResults(page, window.freqIntervalListSchThree, window.scheduleThree, window.durationIntervalListSchThree, window.mMultiScheds[3], false, 3);

                    page = hssfworkbook.CreateSheet("FrequencyIntervals");
                    window.WriteFreqIntervalResults(page, window.keyFrequency, window.mKeyboards.frequencyKeys, window.freqIntervalListMain);

                    page = hssfworkbook.CreateSheet("DurationIntervals");
                    window.WriteDurIntervalResults(page, window.keyDuration, window.mKeyboards.durationKeys, window.durationIntervalListMain);

                    var task = new Task <bool>(() =>
                    {
                        var targetDir = Path.Combine(Properties.Settings.Default.SaveLocation, window.GroupName, window.PatientName, window.EvaluationName, window.ConditionName);
                        var di        = new DirectoryInfo(targetDir);
                        return(di.Exists);
                    });
                    task.Start();

                    bool resp = task.Wait(100) && task.Result;

                    if (resp)
                    {
                        var targetFile = Path.Combine(Properties.Settings.Default.SaveLocation,
                                                      window.GroupName,
                                                      window.PatientName,
                                                      window.EvaluationName,
                                                      window.ConditionName,
                                                      "Session_" + window.SessionCount + "_" + window.CollectorRole + ".xlsx");

                        using (FileStream file = new FileStream(targetFile, FileMode.Create))
                        {
                            hssfworkbook.Write(file);
                        }
                    }
                    else
                    {
                        var targetFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                                                      "DataTracker",
                                                      window.GroupName,
                                                      window.PatientName,
                                                      window.EvaluationName,
                                                      window.ConditionName,
                                                      "Session_" + window.SessionCount + "_" + window.CollectorRole + ".xlsx");

                        using (FileStream file = new FileStream(targetFile, FileMode.Create))
                        {
                            hssfworkbook.Write(file);
                        }

                        MessageBox.Show("Saved to local location!");
                    }
                }
                catch (IOException e2)
                {
                    Console.WriteLine(e2.ToString());
                }
            }

            CountSessions();
        }