コード例 #1
0
        private void radCardViewMain_ItemMouseClick(object sender, ListViewItemEventArgs e)
        {
            LiveClientStatus lcs = ((DataRowView)e.Item.DataBoundItem).Row["Column 1"] as LiveClientStatus;
            ClientInfo       ci  = new ClientInfo(lcs);

            ci.ShowDialog();
        }
コード例 #2
0
        private void radButtonMarkClean_Click(object sender, EventArgs e)
        {
            if (radListViewClientList.CheckedItems.Count > 0)
            {
                DialogResult dr = RadMessageBox.Show(this, string.Format("Are you sure you want to mark ({0}) machines as \"Cleaned\"?", radListViewClientList.CheckedItems.Count), "Confirm", MessageBoxButtons.YesNo, RadMessageIcon.Question);

                if (dr == DialogResult.Yes)
                {
                    List <ClientParm> clientParm = new List <ClientParm>();

                    foreach (ListViewDataItem lv in radListViewClientList.CheckedItems)
                    {
                        LiveClientStatus lcs = (LiveClientStatus)lv.Value;

                        clientParm.Add(new ClientParm(lcs.ClientID));
                    }

                    NetworkFunction.TurnOffCleaningFlag(clientParm);

                    this.Close();
                }
            }
            else
            {
                this.ShowAlertBox("Manager Features", "Please select at least one client machine to continue!");
            }
        }
コード例 #3
0
        private void FlipAssistantRow()
        {
            try
            {
                IEnumerable <RadElement> raditem = radCardViewMain.CardViewElement.ViewElement.GetChildren(ChildrenListOptions.Normal).FirstOrDefault().GetChildren(ChildrenListOptions.Normal);

                foreach (RadElement re in raditem)
                {
                    CardListViewVisualItem clvvi = (CardListViewVisualItem)re;

                    List <RadElement> re2 = clvvi.CardContainer.GetChildren(ChildrenListOptions.Normal).ToList();

                    CardViewItem cvi = (CardViewItem)re2.Where(x => ((CardViewItem)x).FieldName == "Assist").FirstOrDefault();

                    LiveClientStatus lcs = (LiveClientStatus)clvvi.Data.Value;

                    if (cvi != null && lcs.IsAssistanceRequested)
                    {
                        cvi.DrawBorder = _flipStatus;
                    }
                }

                _flipStatus = !_flipStatus;
            }
            catch { }
        }
コード例 #4
0
        private void radButtonEndSession_Click(object sender, EventArgs e)
        {
            if (radListViewClientList.CheckedItems.Count > 0)
            {
                DialogResult dr = RadMessageBox.Show(this, string.Format("Are you sure you want to *MANUALLY* end session on ({0}) machines?", radListViewClientList.CheckedItems.Count), "Confirm", MessageBoxButtons.YesNo, RadMessageIcon.Question);

                if (dr == DialogResult.Yes)
                {
                    List <ClientParm> clientParm = new List <ClientParm>();

                    foreach (ListViewDataItem lv in radListViewClientList.CheckedItems)
                    {
                        LiveClientStatus            lcs   = (LiveClientStatus)lv.Value;
                        Dictionary <string, string> dParm = new Dictionary <string, string>();

                        dParm.Add("EndMode", "Manual");

                        clientParm.Add(new ClientParm(lcs.ClientID, dParm));
                    }

                    NetworkFunction.SendEndNow(clientParm);

                    this.Close();
                }
            }
            else
            {
                this.ShowAlertBox("Manager Features", "Please select at least one client machine to continue!");
            }
        }
コード例 #5
0
        private void radButtonStartSessionTimed_Click(object sender, EventArgs e)
        {
            if (radListViewClientList.CheckedItems.Count > 0)
            {
                DialogResult dr = RadMessageBox.Show(this, string.Format("Are you sure you want to start timed session on ({0}) machines for ({1}) minutes of each?", radListViewClientList.CheckedItems.Count, radSpinEditorSessionTime.Value), "Confirm", MessageBoxButtons.YesNo, RadMessageIcon.Question);

                if (dr == DialogResult.Yes)
                {
                    List <ClientParm> clientParm = new List <ClientParm>();

                    foreach (ListViewDataItem lv in radListViewClientList.CheckedItems)
                    {
                        LiveClientStatus            lcs   = (LiveClientStatus)lv.Value;
                        Dictionary <string, string> dParm = new Dictionary <string, string>();

                        dParm.Add("Duration", radSpinEditorSessionTime.Value.ToString());
                        clientParm.Add(new ClientParm(lcs.ClientID, dParm));
                    }

                    NetworkFunction.SendStartTiming(clientParm);

                    this.Close();
                }
            }
            else
            {
                this.ShowAlertBox("Manager Features", "Please select at least one client machine to continue!");
            }
        }
コード例 #6
0
        private void radButtonEmergency_Click(object sender, EventArgs e)
        {
            DialogResult dr = RadMessageBox.Show(this, string.Format("Are you sure you want to put system in emergency mode? All sessions will be FORCED TO EXIT!"), "Confirm", MessageBoxButtons.YesNo, RadMessageIcon.Question);

            if (dr == DialogResult.Yes)
            {
                List <ClientParm> clientParm = new List <ClientParm>();

                foreach (ListViewDataItem lv in radCardViewMain.Items)
                {
                    LiveClientStatus            lcs   = (LiveClientStatus)lv.Value;
                    Dictionary <string, string> dParm = new Dictionary <string, string>();


                    dParm.Add("EndMode", "Emergency");

                    clientParm.Add(new ClientParm(lcs.ClientID, dParm));
                }

                NetworkFunction.SendEndNow(clientParm);
            }
        }
コード例 #7
0
        private void radCardViewMain_CardViewItemFormatting(object sender, Telerik.WinControls.UI.CardViewItemFormattingEventArgs e)
        {
            DataRowView dr = (DataRowView)e.VisualItem.Data.DataBoundItem;

            CardViewItem cardItem = e.Item as CardViewItem;

            if (cardItem != null)
            {
                LiveClientStatus lcs = ((LiveClientStatus)dr.Row["Column 1"]);

                switch (cardItem.FieldName)
                {
                case "Column 0":

                    cardItem.EditorItem.DrawText = false;
                    Image  image;
                    string status   = "";
                    bool   isOnline = false;

                    Utility.TranslateOnlineStatus(lcs.ClientStatus, out status, out isOnline);

                    if (((bool)dr.Row["Column 0"]) == true)
                    {
                        switch (lcs.Mode)
                        {
                        case "TIMING_ON":

                            image = Resources.ComputerOnTiming.ScaleImage(100, 100);

                            break;

                        case "NO_TIMING_ON":

                            image = Resources.ComputerOnNonTiming.ScaleImage(100, 100);

                            break;

                        default:

                            if (status != "ERROR" && isOnline)
                            {
                                if (lcs.ClientStatus == Enums.LiveClientStatus.GAMEOVER_FOR_CLEANING)
                                {
                                    image = Resources.ComputerCleaning.ScaleImage(100, 100);
                                }
                                else if (lcs.ClientStatus == Enums.LiveClientStatus.ONLINE)
                                {
                                    image = Resources.ComputerOnError.ScaleImage(100, 100);
                                }
                                else
                                {
                                    image = Resources.ComputerOnReady.ScaleImage(100, 100);
                                }
                            }
                            else
                            {
                                image = Resources.ComputerOnError.ScaleImage(100, 100);
                            }

                            break;
                        }
                    }
                    else
                    {
                        image = Resources.ComputerOff.ScaleImage(100, 100);
                    }

                    cardItem.EditorItem.Image       = image;
                    cardItem.EditorItem.ImageLayout = ImageLayout.Center;
                    cardItem.EditorItem.NotifyParentOnMouseInput = false;
                    cardItem.EditorItem.ShouldHandleMouseInput   = false;
                    cardItem.Padding = new Padding(-5, -5, -5, 0);
                    return;

                case "Column 1":
                    cardItem.Text            = "Name";
                    cardItem.EditorItem.Text = lcs.ClientName;

                    break;

                case "Column 2":
                    cardItem.Text = "Mode";

                    break;

                case "Column 3":
                    cardItem.Text = "Status";
                    if (lcs.ClientStatus == Enums.LiveClientStatus.GAMEOVER_FOR_CLEANING)
                    {
                        cardItem.DrawFill   = true;
                        cardItem.BackColor  = Color.Lavender;
                        cardItem.BackColor2 = Color.MediumBlue;
                        cardItem.ForeColor  = Color.White;
                    }
                    else
                    {
                        cardItem.DrawFill  = false;
                        cardItem.ForeColor = Color.Black;
                    }
                    cardItem.BorderBoxStyle      = BorderBoxStyle.SingleBorder;
                    cardItem.BorderGradientStyle = GradientStyles.Solid;
                    cardItem.BorderColor         = Color.Blue;
                    cardItem.BorderWidth         = 1;

                    break;

                case "Column 4":
                    cardItem.Text = "Left / Pass";

                    break;

                case "Column 5":
                    cardItem.Text = "Help Needed";
                    if (cardItem.EditorItem.Text == "Yes")
                    {
                        cardItem.DrawFill   = true;
                        cardItem.BackColor  = Color.Pink;
                        cardItem.BackColor2 = Color.Red;
                        cardItem.ForeColor  = Color.White;
                    }
                    else
                    {
                        cardItem.DrawFill  = false;
                        cardItem.ForeColor = Color.Black;
                    }
                    cardItem.BorderBoxStyle      = BorderBoxStyle.SingleBorder;
                    cardItem.BorderGradientStyle = GradientStyles.Solid;
                    cardItem.BorderColor         = Color.Red;
                    cardItem.BorderWidth         = 1;

                    break;

                default:
                    break;
                }


                System.Drawing.Font editorFont = new System.Drawing.Font(cardItem.Font.FontFamily, cardItem.Font.Size, FontStyle.Regular);

                cardItem.EditorItem.Font = editorFont;
            }
        }
コード例 #8
0
        private void PopulateMainCardView(List <LiveClientStatus> liveClientStatus)
        {
            string status   = "";
            bool   isOnline = false;
            string timeLeft = "";
            string assist   = "";
            string mode     = "";

            lock (_lockCardView)
            {
                if (liveClientStatus.Count > 0)
                {
                    //radCardViewMain.SelectedItem = null;

                    radCardViewMain.BeginUpdate();

                    // delete non-exist
                    List <DataRow> removeClientListItem = new List <DataRow>();

                    foreach (DataRow dr in _dtClientList.Rows)
                    {
                        LiveClientStatus lcsCurr = ((LiveClientStatus)dr["Column 1"]);

                        LiveClientStatus lcs = liveClientStatus.Where(x => x.ClientID == lcsCurr.ClientID).FirstOrDefault();

                        if (lcs == null)
                        {
                            // item is deleted
                            removeClientListItem.Add(dr);
                        }
                    }

                    foreach (DataRow dr in removeClientListItem)
                    {
                        _dtClientList.Rows.Remove(dr);
                    }

                    // sort liveClientStatus

                    liveClientStatus = liveClientStatus.OrderBy(x => x.ClientName).ToList();

                    // add new or change existing
                    foreach (LiveClientStatus lcs in liveClientStatus)
                    {
                        Utility.TranslateOnlineStatus(lcs.ClientStatus, out status, out isOnline);

                        timeLeft = lcs.TimeLeft.ToString(@"hh\:mm\:ss");
                        assist   = lcs.IsAssistanceRequested ? "Yes" : "No";

                        switch (lcs.Mode)
                        {
                        case "TIMING_ON":

                            mode = "Timing";

                            break;

                        case "NO_TIMING_ON":

                            mode = "Manual";

                            break;

                        default:

                            if (status != "ERROR" && isOnline)
                            {
                                mode = "-";
                            }
                            else
                            {
                                mode = "-";
                            }

                            break;
                        }

                        bool bFoundlcsItem = false;

                        foreach (DataRow dr in _dtClientList.Rows)
                        {
                            LiveClientStatus lcsCurr = ((LiveClientStatus)dr["Column 1"]);

                            if (lcsCurr.ClientID == lcs.ClientID)
                            {
                                if ((bool)dr["Column 0"] != isOnline || lcsCurr.ClientName != lcs.ClientName || (string)dr["Column 2"] != mode ||
                                    (string)dr["Column 3"] != status || (string)dr["Column 4"] != timeLeft || (string)dr["Column 5"] != assist)
                                {
                                    dr["Column 0"] = isOnline;
                                    dr["Column 1"] = lcs;
                                    dr["Column 2"] = mode;
                                    dr["Column 3"] = status;
                                    dr["Column 4"] = timeLeft;
                                    dr["Column 5"] = assist;
                                    _dtClientList.AcceptChanges();
                                }

                                bFoundlcsItem = true;
                            }
                        }

                        if (!bFoundlcsItem)
                        {
                            _dtClientList.Rows.Add(isOnline, lcs, mode, status, timeLeft, assist);
                            _dtClientList.AcceptChanges();
                        }
                    }



                    radCardViewMain.EndUpdate();
                }
            }
        }
コード例 #9
0
 public ClientInfo(LiveClientStatus liveClientStatus) : this()
 {
     _liveClientStatus = liveClientStatus;
 }