private void DeleteSessionFromList()
        {
            if (!_deleteSelectedRow)
            {
                var trialCount = MushraSessionGrid.Items.Count;
                if (trialCount > 0)
                {
                    _mushraSession = MushraSessionGrid.Items.GetItemAt(trialCount - 1) as MushraSessionModel;
                    MushraSessionGrid.Items.Remove(_mushraSession);
                    _mushraSessionList.Remove(_mushraSessionList.Where(item => item.TrialNumber == _mushraSession.TrialNumber).FirstOrDefault());
                }
            }
            else
            {
                var list = (MushraSessionGrid.SelectedItems.Cast <MushraSessionModel>().Select(sess => sess)).ToList();
                _mushraSessionObjectToDelete.ForEach(mushraSessObj =>
                {
                    MushraSessionGrid.Items.Remove(mushraSessObj);
                    _mushraSessionList.Remove(_mushraSessionList.Where(item => item.TrialNumber == mushraSessObj.TrialNumber).FirstOrDefault());
                    //_mushraSessionList.Remove(mushraSessObj);
                });

                if (list.Count > 0)
                {
                    list.ForEach(sessObj =>
                    {
                        MushraSessionGrid.Items.Remove(sessObj);
                        _mushraSessionList.Remove(_mushraSessionList.Where(item => item.TrialNumber == sessObj.TrialNumber).FirstOrDefault());
                        //_mushraSessionList.Remove(sessObj);
                    });
                }
            }
            ReEnumerateTrials();
            _deleteSelectedRow = false;
        }
 private void AddSessionToList()
 {
     _mushraSession = new MushraSessionModel();
     if (_mushraSession == null)
     {
         throw new NullReferenceException("The MUSHRA Session ViewModel is not initialized!!!!");
     }
     _mushraSession.TrialNumber = _trialNumber;
     MushraSessionGrid.Items.Add(_mushraSession);
     _mushraSessionList.Add(new MushraSessionModel {
         TrialNumber = _trialNumber
     });
 }
        private void InitializeEditOrOpenSession()
        {
            if (!string.IsNullOrEmpty(_fileName))
            {
                OpenMItem.IsEnabled = true;
                OpenFile.IsEnabled  = true;
                var existingTrails = 0;

                _mushraSessionList = _mushraModelList.trials.ToList();

                _mushraModelList.trials.ToList().ForEach(mushraSessObj =>
                {
                    var tempMushraSessionObj         = new MushraSessionModel();
                    tempMushraSessionObj.Reference   = GetFileNameFromPath(mushraSessObj.Reference);
                    tempMushraSessionObj.TrialName   = mushraSessObj.TrialName;
                    tempMushraSessionObj.TrialNumber = mushraSessObj.TrialNumber;

                    for (int count = 0; count < mushraSessObj.Sample.Count(); count++)
                    {
                        tempMushraSessionObj.Sample.Add(GetFileNameFromPath(mushraSessObj.Sample[count]));
                    }

                    MushraSessionGrid.Items.Add(tempMushraSessionObj);
                    existingTrails++;
                });

                _trialNumber = existingTrails;
                _mediapoolFilesWithFullPath = _mediaPool.ToList();
                MediaPool.Items?.Clear();
                _mediaPool.All(items =>
                {
                    MediaPool.Items.Add(GetFileNameFromPath(items));
                    return(true);
                });

                ScaleList.SelectedIndex = _mushraModelList.Index;
            }
            else
            {
                OpenMItem.IsEnabled = false;
                OpenFile.IsEnabled  = false;
                MushraSessionGrid.Items.Clear();
                MediaPool.Items.Clear();
                _trialNumber = 0;
            }

            _prevtrialNumber = _trialNumber;
        }
        /// <summary>
        /// A callback method, when Mouse enters on a row of Data Grid
        /// </summary>
        /// <param name="sender"> </param>
        /// <param name="e"></param>
        private void DataGridRow_Enter(object sender, System.Windows.Input.MouseEventArgs e)
        {
            var currentRow = sender as DataGridRow;

            if (currentRow == null)
            {
                return;
            }
            var currentRowIndex = currentRow.GetIndex();

            if (_dropContentFlag)
            {
                //_mushraSession = MushraSessionGrid.Items.GetItemAt(currentRowIndex) as MushraSessionModel;
                _mushraSession = MushraSessionGrid.Items.GetItemAt(currentRowIndex) as MushraSessionModel;

                if (_mushraSession?.TrialName == "")
                {
                    _mushraSession.TrialName = string.Format("Trial{0}", currentRowIndex + 1);
                }
                FillDataFromGridToSession(currentRowIndex);
                _dropContentFlag = false;
            }
            else
            {
                e.Handled = true;
            }

            //OCT-05-2018 code
            var value = "";

            if (_datagridColumnIndex == 1)
            {
                value = _mushraSessionList[currentRowIndex].Reference;
            }
            else if (_datagridColumnIndex > 1 && _datagridColumnIndex <= 13 &&
                     (_datagridColumnIndex - 2) < _mushraSessionList[currentRowIndex].Sample.Count() &&
                     _mushraSessionList[currentRowIndex].Sample.Count > 0)
            {
                value = _mushraSessionList[currentRowIndex].Sample[_datagridColumnIndex - 2];
            }
            //
            if (value != "")
            {
                ToolTipService.SetToolTip(_dataGridCurrentCell, new System.Windows.Controls.ToolTip {
                    Content = value
                });
            }
        }
        private void DisplaytrialsWindow(int rowNumber)
        {
            _mushraSession = MushraSessionGrid.Items.GetItemAt(rowNumber) as MushraSessionModel;
            //if (_mushraSession == null)
            //{
            //	return;
            //}
            //_mushraSessionList[rowNumber].TrialNumber = rowNumber + 1;
            _mushraSession.TrialNumber = rowNumber + 1;
            Window window = new Window
            {
                Title   = "MUSHRA Trials Window",
                Content = new MushraTrialWindow(_mushraSessionList[rowNumber])
            };

            window.SizeToContent         = SizeToContent.WidthAndHeight;
            window.ResizeMode            = ResizeMode.NoResize;
            window.Background            = Brushes.CadetBlue;
            window.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            if (window.ShowDialog() == true)
            {
                _mushraSession.Reference = GetFileNameFromPath(_mushraSessionList[rowNumber].Reference);
                _mushraSession.TrialName = _mushraSessionList[rowNumber].TrialName;
                if (_mushraSession.Sample.Count == 0)
                {
                    _mushraSessionList[rowNumber].Sample.ToList().ForEach(sample =>
                    {
                        _mushraSession.Sample.Add(GetFileNameFromPath(sample));
                    });
                }
                else
                {
                    for (int count = 0; count < _mushraSessionList[rowNumber].Sample.Count; count++)
                    {
                        _mushraSession.Sample[count] = GetFileNameFromPath(_mushraSessionList[rowNumber].Sample[count]);
                    }
                }

                DataContext = _mushraSession;
                MushraSessionGrid.Items.Refresh();
            }
        }
        public MushraTrialWindow(MushraSessionModel mushraSession)
        {
            InitializeComponent();
            _mushraSession = mushraSession;

            _textBoxList.Add(FileA);
            _textBoxList.Add(FileB);
            _textBoxList.Add(FileC);
            _textBoxList.Add(FileD);
            _textBoxList.Add(FileE);
            _textBoxList.Add(FileF);
            _textBoxList.Add(FileG);
            _textBoxList.Add(FileH);
            _textBoxList.Add(FileI);
            _textBoxList.Add(FileJ);
            _textBoxList.Add(FileK);
            _textBoxList.Add(FileL);
            trialNumberText.Text = mushraSession.TrialNumber.ToString();
            LoadCurrentTrialDetails();
            EnableDisableOfBtnA();
        }