public virtual bool CanReturnToSource()
 {
     return(SelectedQueue != null &&
            !SelectedQueue.IsRemoteQueue() &&
            SelectedMessage != null &&
            FailedQueue != null);
 }
Esempio n. 2
0
 public virtual bool CanReturnToSource()
 {
     return(SelectedQueue != null &&
            !SelectedQueue.IsRemoteQueue() &&
            SelectedMessage != null &&
            Items.Count > 0 &&
            Items.Any(header => header.Key.Equals(HeaderInfo.FailedQueueKey, StringComparison.InvariantCultureIgnoreCase)));
 }
Esempio n. 3
0
 private void OpenResourcePicker()
 {
     if (_currentResourcePicker.ShowDialog(_server))
     {
         var selectedResource = _currentResourcePicker.SelectedResource;
         SelectedQueue.ResourceId   = selectedResource.ResourceId;
         SelectedQueue.WorkflowName = selectedResource.ResourcePath;
         SelectedQueue.GetInputsFromWorkflow();
     }
 }
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        ltrLOG.Text = "";

        int zqa = (avg_QLen_A * 100) / ((avg_QLen_A + avg_QLen_B) + 1);
        int zqb = (avg_QLen_A * 100) / ((avg_QLen_A + avg_QLen_B) + 1);

        if (checkFirst)
        {
            QA = MakeItFCFS(CreateProcessesQueue(5, 20));
            QB = MakeItSJF(CreateProcessesQueue(3, 17));

            aaa = 0;
            bbb = 0;

            seq = 1;

            totalLenOfQA = 0;
            totalLenOfQB = 0;

            avg_QLen_A = 0;
            avg_QLen_B = 0;

            checkFirst = false;
        }
        else
        {
            zqa /= 2;
            zqb /= 2;

            QA = MakeItFCFS(CreateProcessesQueue(zqa - r.Next(1, 10), zqa + r.Next(1, 10)));
            QB = MakeItSJF(CreateProcessesQueue(zqb - r.Next(1, 10), zqb + r.Next(1, 10)));
        }

        rptQueueA.DataSource = QA;
        rptQueueA.DataBind();

        rptQueueB.DataSource = QB;
        rptQueueB.DataBind();

        Queue <Process> SelectedQueue;

        QA_AWT = 0;
        QB_AWT = 0;

        int QA_Count = QA.Count;
        int QB_Count = QB.Count;

        for (int i = 0; i < (QA_Count + QB_Count); i++)
        {
            if (QA.Count == 0 || QB.Count == 0)
            {
                if (QA.Count == 0)
                {
                    SelectedQueue = QB;
                }
                else
                {
                    SelectedQueue = QA;
                }
            }
            else
            {
                SelectedQueue = SelectQueue(QA, QB, QueueA_rate, QueueB_rate);
            }

            Process ThatOne = SelectedQueue.Dequeue();

            elapsed_time        += ThatOne.burst_time + ((i == 0) ? ThatOne.arrival_time : 0);
            ThatOne.finish_time  = elapsed_time;
            ThatOne.waiting_time = ThatOne.finish_time - ThatOne.arrival_time;

            ltrLOG.Text += "<span class=\"badge badge-warning\">" + ThatOne.name + "(" + ThatOne.burst_time + ")--->" + elapsed_time + "</span><br/>";

            if (TheQueueIs == "A")
            {
                QA_AWT += ThatOne.waiting_time;
            }
            else
            {
                QB_AWT += ThatOne.waiting_time;
            }
        }

        totalLenOfQA = totalLenOfQA + QA_Count;
        totalLenOfQB = totalLenOfQB + QB_Count;

        QA_AWT = QA_AWT / totalLenOfQA;
        QB_AWT = QB_AWT / totalLenOfQB;

        ltrQALen.Text = QA_Count.ToString();
        ltrQBLen.Text = QB_Count.ToString();

        ltrQAPick.Text = QueueA_rate.ToString();
        ltrQBPick.Text = QueueB_rate.ToString();

        double QA_Rat = (totalLenOfQA * 100) / (totalLenOfQA + totalLenOfQB);

        QueueA_rate = Convert.ToInt32(QA_Rat);
        QueueB_rate = 100 - QueueA_rate;

        ltrNewQAPick.Text = QueueA_rate.ToString();
        ltrNewQBPick.Text = QueueB_rate.ToString();

        pnlAlert.Visible = true;

        Chart1.Series["Series1"].Points.Add(QA_AWT);
        Chart1.Series["Series1"].Points.Add(QB_AWT);

        Chart1.Series["Series1"].Points[0].Color     = ColorTranslator.FromHtml("#FFF3CD");
        Chart1.Series["Series1"].Points[1].Color     = ColorTranslator.FromHtml("#D1ECF1");
        Chart1.Series["Series1"].Points[0].AxisLabel = "FCFS (" + QA_AWT.ToString() + ")";
        Chart1.Series["Series1"].Points[1].AxisLabel = "SJF (" + QB_AWT.ToString() + ")";

        double xqa = totalLenOfQA / seq;

        avg_QLen_A = Convert.ToInt32(xqa) + r.Next(3, 10);

        double xqb = totalLenOfQB / seq;

        avg_QLen_B = Convert.ToInt32(xqb) + r.Next(3, 10);

        totalA.Text = xqa.ToString();
        totalB.Text = xqb.ToString();

        seq++;
    }