Exemplo n.º 1
0
        private async void unlockToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (lsvItems.SelectedItems.Count == 0)
            {
                return;
            }

            Language       l        = _languageManager.GetLanguage();
            ListViewItem   selected = lsvItems.SelectedItems[0];
            ListViewLocker lvl      = _lvlManager.FindListViewLocker(selected.Text);

            CancelSelectedTask(selected);
            await Task.Run(() =>
            {
                while (lvl.IsRunning())
                {
                }
            });

            try
            {
                SetLoading(selected, 1);

                lvl.SetRunning(true);
                await lvl.Unlock();

                if (!lvl.HasCancelled())
                {
                    selected.SubItems[1].ForeColor = Color.Green;
                    selected.SubItems[1].Text      = l.MsgSuccessfullyUnlocked;
                }
                else
                {
                    SetCancelled(selected);
                }
            }
            catch (Exception ex)
            {
                MessageBoxAdv.Show(ex.Message + Environment.NewLine + ex.StackTrace, "DeadLock", MessageBoxButtons.OK, MessageBoxIcon.Error);
                selected.SubItems[1].ForeColor = Color.Red;
                selected.SubItems[1].Text      = l.MsgCouldNotUnlock;
            }
            finally
            {
                lvl.SetRunning(false);
            }

            lsvDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            lsvDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }
Exemplo n.º 2
0
        private async void moveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (lsvItems.SelectedItems.Count == 0)
            {
                return;
            }

            ListViewItem   selected = lsvItems.SelectedItems[0];
            ListViewLocker lvl      = _lvlManager.FindListViewLocker(selected.Text);
            Language       l        = _languageManager.GetLanguage();

            CancelSelectedTask(selected);
            await Task.Run(() =>
            {
                while (lvl.IsRunning())
                {
                }
            });

            try
            {
                SetLoading(selected, 1);

                lvl.SetRunning(true);
                await lvl.Move();

                if (!lvl.HasCancelled())
                {
                    selected.SubItems[1].ForeColor = Color.Green;
                    selected.SubItems[1].Text      = l.MsgSuccessfullyMoved;
                }
                else
                {
                    SetCancelled(selected);
                }
            }
            catch (Exception ex)
            {
                MessageBoxAdv.Show(ex.Message, "DeadLock", MessageBoxButtons.OK, MessageBoxIcon.Error);
                selected.SubItems[1].ForeColor = Color.Red;
                selected.SubItems[1].Text      = l.MsgCouldNotMove;
            }
            finally
            {
                lvl.SetRunning(false);
            }
        }
Exemplo n.º 3
0
        private async void lsvItems_DoubleClick(object sender, EventArgs e)
        {
            if (lsvItems.SelectedItems.Count == 0)
            {
                return;
            }
            lsvDetails.Items.Clear();

            ListViewLocker lvl = (ListViewLocker)lsvItems.SelectedItems[0];
            Language       l   = LanguageManager.GetLanguage();

            try
            {
                CancelSelectedTask(lvl);
                await Task.Run(() =>
                {
                    while (lvl.IsRunning())
                    {
                    }
                });

                lvl.SetLocker(new List <ProcessLocker>());

                if (!File.Exists(lvl.Text) && !Directory.Exists(lvl.Text))
                {
                    imgFileIcons.Images.RemoveByKey(lvl.Text);
                    lsvItems.Items.Remove(lvl);
                    return;
                }

                SetLoading(lvl, 1);
                SetLoading(lvl, 2);

                lvl.SetRunning(true);
                List <ProcessLocker> lockers = await lvl.GetLockerDetails();

                if (!lvl.HasCancelled())
                {
                    if (lockers.Count == 0)
                    {
                        lvl.SubItems[1].Text      = l.MsgUnlocked;
                        lvl.SubItems[1].ForeColor = Color.Green;
                    }
                    else
                    {
                        lvl.SubItems[1].Text      = l.MsgLocked;
                        lvl.SubItems[1].ForeColor = Color.Red;
                    }
                    lvl.SubItems[2].Text = lvl.HasOwnership() ? l.BarItemOwnershipTrue : l.BarItemOwnershipFalse;

                    foreach (ProcessLocker p in lockers)
                    {
                        ListViewItem lvi = new ListViewItem {
                            Text = p.GetFileName()
                        };
                        lvi.SubItems.Add(p.GetFilePath());
                        lvi.SubItems.Add(p.GetProcessId().ToString());

                        lsvDetails.Items.Add(lvi);
                    }
                    lvl.SetLocker(lockers);

                    lsvDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
                    lsvDetails.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
                }
                else
                {
                    lvl.SetLocker(new List <ProcessLocker>());
                    SetCancelled(lvl);
                }
            }
            catch (Exception ex)
            {
                MessageBoxAdv.Show(ex.Message, "DeadLock", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                lvl.SetRunning(false);
            }
        }