Exemple #1
0
    public static void lockTaskForceUpdatePages(int ttid, string currentlock, int userid)
    {
        LockInfo li      = Defect.Locktask(ttid.ToString(), currentlock, userid.ToString(), true);
        var      context = GlobalHost.ConnectionManager.GetHubContext <NotifyHub>();

        context.Clients.All.OnLockTask(ttid);
    }
Exemple #2
0
 public LockInfo locktask(string ttid, string lockid)
 {
     if (!CurrentContext.Valid || string.IsNullOrEmpty(ttid))
     {
         return(null);
     }
     return(Defect.Locktask(ttid, lockid, CurrentContext.UserID.ToString()));
 }
Exemple #3
0
    public void SetTaskTestStatus(string ttid, string failed, string userphone)
    {
        try
        {
            MPSUser bsu = MPSUser.FindUserbyPhone(userphone);
            if (bsu == null)
            {
                Logger.Log($"Cannot update task {ttid} by testing system. User was not found by phone number: {userphone}");
                return;
            }

            Defect d = new Defect(ttid);
            d.SetUpdater(bsu);
            string lockguid = Guid.NewGuid().ToString();
            var    lt       = Defect.Locktask(ttid.ToString(), lockguid, bsu.ID.ToString());
            bool   locked   = lt.globallock != lockguid;
            bool   testFail;
            bool   testcancel = false;
            if (!bool.TryParse(failed, out testFail))
            {
                testcancel = true;
            }
            if (locked)
            {
                MPSUser lu = new MPSUser(lt.lockedby);
                TasksBot.SendMessage(lu.CHATID, $"You was disconnected from the task by the testing system to update task status!{Settings.CurrentSettings.GetTTAnchor(int.Parse(ttid), "disconnect.png")}");
                NotifyHub.lockTaskForceUpdatePages(int.Parse(ttid), lockguid, bsu.ID);
                lt = Defect.Locktask(ttid.ToString(), lockguid, bsu.ID.ToString());
            }
            List <DefectDispo> disp = (testcancel || testFail) ? DefectDispo.EnumTestsFailed() : DefectDispo.EnumTestsPassed();
            if (disp.Count > 0)
            {
                if (!testcancel)
                {
                    d.DISPO = disp[0].ID.ToString();
                }
                else
                {
                    d.AddMessage("Test request have been ignored", bsu.ID);
                }
                d.Store();
                Defect.UnLocktask(ttid, lt.globallock);

                if (!testcancel)
                {
                    DefectUser du = new DefectUser(d.AUSER);
                    if (du.TRID > -1)
                    {
                        MPSUser worker = new MPSUser(du.TRID);
                        string  result = "Succeeded!";
                        string  img    = "taskokay.png";
                        if (testcancel)
                        {
                            result = "Cancelled!";
                            img    = "bin.png";
                        }
                        else if (testFail)
                        {
                            result = "Failed!";
                            img    = "taskfail.png";
                        }
                        TasksBot.SendMessage(worker.CHATID, $"The task tests have been marked as BST {result} by {bsu.PERSON_NAME}{Settings.CurrentSettings.GetTTAnchor(int.Parse(ttid), img)}");
                    }
                }
            }
        }
        catch (Exception e)
        {
            Logger.Log(e);
        }
    }
Exemple #4
0
    public void FinishBuild(int id, string requestguid)
    {
        try
        {
            DefectBuild b = new DefectBuild(id)
            {
                STATUS = DefectBuild.BuildStatus.finishedok.ToString(), TESTGUID = requestguid
            };
            b.Store();

            if (Settings.CurrentSettings.RELEASETTID == b.TTID.ToString() && b.TYPE == (int)DefectBuild.BuildType.releasebuild)
            {
                //release builder sends its own notifications
                return;
            }

            Defect     d = new Defect(b.TTID);
            DefectUser u = new DefectUser(b.TTUSERID);
            d.SetUpdater(new MPSUser(u.TRID));
            List <DefectDispo> dsps = DefectDispo.EnumTestsStarted();
            if (dsps.Count > 0)
            {
                string   currentlock = Guid.NewGuid().ToString();
                LockInfo li          = Defect.Locktask(b.TTID.ToString(), currentlock, u.TRID.ToString(), true);
                d.DISPO = dsps[0].ID.ToString();
                if (d.PRIMARYHOURS == null)
                {
                    d.PRIMARYHOURS = d.SPENT;
                }
                d.Store();
                DefectEvent.AddEventByTask(id, DefectEvent.Eventtype.QualityAssurance, b.TTUSERID, "Sent for QA Automation");
                Defect.UnLocktask(u.TRID.ToString(), currentlock);
            }

            if (Settings.CurrentSettings.RELEASETTID == b.TTID.ToString())
            {
                VersionBuilder.SendAlarm("✅New internal release build has been finished. Testing is starting...");
            }
            else
            {
                try
                {
                    string mess = $"New task from {u.FULLNAME} is ready for tests!{Settings.CurrentSettings.GetTTAnchor(b.TTID, d.FIRE ? "taskfire.png" : "")}";
                    TestChannel.SendMessage(mess);
                }
                catch (Exception e)
                {
                    Logger.Log(e);
                }
            }

            string bst_b = d.BSTBATCHES.Trim();
            string bst_c = d.BSTCOMMANDS.Trim();
            if (!string.IsNullOrEmpty(bst_b) || !string.IsNullOrEmpty(bst_c))
            {
                string batches  = string.Join(",", bst_b.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries));
                string commands = string.Join(",", bst_c.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries));
                using (var wcClient = new WebClient())
                {
                    var reqparm = new NameValueCollection();
                    reqparm.Add("guid", requestguid);
                    reqparm.Add("commaseparatedbatches", batches);
                    reqparm.Add("commaseparatedcommands", commands);
                    reqparm.Add("priority", d.TESTPRIORITY);
                    //reqparm.Add("branch", d.BRANCHBST);
                    wcClient.UploadValues(Settings.CurrentSettings.BSTSITESERVICE + "/StartTest", reqparm);
                }
            }
        }
        catch (Exception e)
        {
            Logger.Log(e);
        }
    }
Exemple #5
0
    public void lockTaskForce(int ttid, string currentlock, int userid)
    {
        LockInfo li = Defect.Locktask(ttid.ToString(), currentlock, userid.ToString(), true);

        Clients.Caller.OnLockTask(li);
    }