// GET: api/TestPlans
        public IEnumerable <TestSuiteNode> Get(int id)
        {
            using (var db = new AutomationDashboardEntities())
            {
                var Suites = db.spGetTestSuitesForTeam(id).ToList();
                var Plans  = db.TestPlans.Where(p => p.TeamId == id).ToList();

                Dictionary <int, TestSuiteNode> Nested = new Dictionary <int, TestSuiteNode>();
                Dictionary <int, TestSuiteNode> Flat   = new Dictionary <int, TestSuiteNode>();

                foreach (var item in Plans)
                {
                    TestSuiteNode node = new TestSuiteNode()
                    {
                        text = item.TestPlanName + "  - TestPlan",
                    };
                    node.tags.Add(item.TestCaseCount.ToString());
                    Flat.Add(item.PlanId, node);
                    Nested.Add(item.PlanId, node);
                }

                while (Flat.Count < Suites.Count)
                {
                    foreach (var suiteEntry in Suites)
                    {
                        if (Flat.ContainsKey(suiteEntry.SuiteId) || (suiteEntry.ParentSuite != -1 && !Flat.ContainsKey(suiteEntry.ParentSuite)))
                        {
                            continue;
                        }

                        TestSuiteNode node = new TestSuiteNode()
                        {
                            text = suiteEntry.SuiteName,
                        };
                        node.tags.Add(suiteEntry.TotalTests.ToString());
                        Flat.Add(suiteEntry.SuiteId, node);
                        if (suiteEntry.ParentSuite == -1)
                        {
                            Flat[suiteEntry.TestPlanId].nodes.Add(node);
                        }
                        else
                        {
                            Flat[suiteEntry.ParentSuite].nodes.Add(node);
                        }
                    }
                }

                foreach (var item in Flat.Values)
                {
                    if (item.nodes.Count == 0)
                    {
                        item.icon = "glyphicon glyphicon-leaf";
                    }
                }

                return(Nested.Values.ToList());
            }
        }
        //[OutputCache(Duration = 600)]
        public ActionResult Landing()
        {
            var db = new AutomationDashboardEntities();
            List <TeamAutomationWeeklyProgress> model = new List <TeamAutomationWeeklyProgress>(20);

            foreach (int TeamId in db.ProductTeams.Select(col => col.TeamId))
            {
                TeamAutomationWeeklyProgress temp = new TeamAutomationWeeklyProgress(TeamId);
                model.Add(temp);
            }
            return(View("~/Views/Report/Landing.cshtml", model));
        }
Exemplo n.º 3
0
        private static void DeleteTestSuitesFromDB(int TeamId)
        {
            foreach (var item in db.TestSuites)
            {
                db.Entry(item).State = System.Data.Entity.EntityState.Deleted;
            }
            db.SaveChanges();

            foreach (var item in db.TestPlans)
            {
                db.Entry(item).State = System.Data.Entity.EntityState.Deleted;
            }
            db.SaveChanges();

            db.Dispose();
            db = new AutomationDashboardEntities();
        }
Exemplo n.º 4
0
        public JObject Post(string ProjectName)
        {
            var db     = new AutomationDashboardEntities();
            int TeamId = db.ProductTeams.First(team => team.TeamName == ProjectName).TeamId;

            var JSONFile = HttpContext.Current.Server.MapPath("~/jsons/WeeklyProgress.json");

            string  json = File.ReadAllText(JSONFile);
            JObject rss  = JObject.Parse(json);


            List <spGetWeeklyProgressForProductArea_Result> WeeklyProgress = new List <spGetWeeklyProgressForProductArea_Result>();
            var ProductAreas = db.AutomateDatas.Where(r => r.TeamId == TeamId).Select(col => col.ProductArea).Distinct();

            DateTime Date1 = Helpers.GetPreviousFriday(DateTime.Now);
            DateTime Date2 = Helpers.GetPreviousFriday(Date1);

            foreach (var productArea in ProductAreas)
            {
                spGetWeeklyProgressForProductArea_Result data = db.spGetWeeklyProgressForProductArea(productArea, TeamId, Date2, Date1).FirstOrDefault();
                if (data != null && (data.TFSTestCasesThisWeek > 0 || data.AutomatedThisWeek > 0))
                {
                    WeeklyProgress.Add(data);
                }
            }
            JArray DS1 = rss["data"]["datasets"][0]["data"] as JArray;
            JArray DS2 = rss["data"]["datasets"][1]["data"] as JArray;

            for (int i = 0; i < WeeklyProgress.Count; i++)
            {
                string PA = WeeklyProgress[i].ProductArea;

                JArray labels = (JArray)rss["data"]["labels"];
                labels.Add(PA);


                DS1.Add(WeeklyProgress[i].TFSTestCasesThisWeek);

                DS2.Add(WeeklyProgress[i].AutomatedThisWeek);
            }
            return(rss);
        }
        public ActionResult ViewResult(long ID, string Source)
        {
            byte[] binaryData = null;
            var    db         = new AutomationDashboardEntities();

            switch (Source)
            {
            case "DailySmokes":
                binaryData = db.DailySmokes.Where(row => row.id == ID).First().detail_results;
                break;

            case "CoreModSmokes":
                binaryData = db.CoreModSmokes.Where(row => row.id == ID).First().detail_results;
                break;

            case "FullPass":
                binaryData = db.FullPasses.Where(row => row.id == ID).First().detail_results;
                break;
            }

            var rm = new ReportModel(System.Text.Encoding.UTF8.GetString(binaryData));

            return(View("~/Views/Report/ViewResult.cshtml", rm));
        }
        public static void UpdateWeeklyAutomationStatus(string FileName, int TeamId)
        {
            //Retrieve data from the excel file and store it in a dictionary
            Helpers.PopulateInCollectionFromExcel(FileName, TeamId);

            var db = new AutomationDashboardEntities();
            Dictionary <string, spGetCurrentStatusOfAutomationForATeam_Result> CurrentStatus = db.spGetCurrentStatusOfAutomationForATeam(TeamId).ToDictionary(e => e.ProductArea);
            List <AutomateData>   RowsToBeInserted           = new List <AutomateData>();
            List <WeeklyTriaging> WeeklyTriagingToBeInserted = new List <WeeklyTriaging>();
            var CurrentFriday = Helpers.GetPreviousFriday(DateTime.Now).AddDays(7);

            //Filter out the rows to be inserted
            foreach (var record in Helpers.automateData)
            {
                if (!CurrentStatus.ContainsKey(record.Key))
                {
                    //Insert this data in the database as this is a new entry which does not exist in the database
                    RowsToBeInserted.Add(record.Value);
                }
                else
                {
                    //check if there is progress in the field and insert only those fields in the database

                    spGetCurrentStatusOfAutomationForATeam_Result StatusFromDatabase = CurrentStatus[record.Key];
                    AutomateData StatusFromUser = record.Value;

                    if (StatusFromUser.NoOfAutomatedTestcases > StatusFromDatabase.NoOfAutomatedTestcases ||
                        StatusFromUser.NoOfTFSTestcase > StatusFromDatabase.NoOfTFSTestcase)
                    {
                        //only then select the record for insert
                        RowsToBeInserted.Add(StatusFromUser);
                    }
                }

                //check if any modifications is done to the triaging data in the excel
                var entry = db.WeeklyTriagings.FirstOrDefault(row => row.TeamId == TeamId && row.ProductArea == record.Key && row.Date == CurrentFriday.Date);

                if ((record.Value.NoOfTestCasesDebugged > 0 && entry == null) || (entry != null && entry.NoOfTestCasesDebugged < record.Value.NoOfTestCasesDebugged))
                {
                    WeeklyTriaging triaging = new WeeklyTriaging(TeamId, record.Key, CurrentFriday, record.Value.NoOfTestCasesDebugged);
                    WeeklyTriagingToBeInserted.Add(triaging);
                }
            }

            foreach (var record in RowsToBeInserted)
            {
                //if the record exists in the database then only update the existing one
                var entry = db.AutomateDatas.FirstOrDefault(row => row.TeamId == TeamId && row.ProductArea == record.ProductArea && row.date == record.date.Date);
                if (entry == null)
                {
                    db.AutomateDatas.Add(record);
                }
                else
                {
                    entry.NoOfAutomatedTestcases = record.NoOfAutomatedTestcases;
                    entry.NoOfTFSTestcase        = record.NoOfTFSTestcase;
                    db.Entry(entry).State        = EntityState.Modified;
                }

                db.SaveChanges();
            }

            foreach (var record in WeeklyTriagingToBeInserted)
            {
                var entry = db.WeeklyTriagings.FirstOrDefault(row => row.TeamId == TeamId && row.ProductArea == record.ProductArea && row.Date == CurrentFriday.Date);
                if (entry == null)
                {
                    db.WeeklyTriagings.Add(record);
                }
                else
                {
                    entry.NoOfTestCasesDebugged = record.NoOfTestCasesDebugged;
                    db.Entry(entry).State       = EntityState.Modified;
                }
                db.SaveChanges();
            }
        }
        public JObject Get(int id)
        {
            var db = new AutomationDashboardEntities();

            var JSONFile = HttpContext.Current.Server.MapPath("~/jsons/WeeklyProgress.json");

            string  json = System.IO.File.ReadAllText(JSONFile);
            JObject rss  = JObject.Parse(json);


            List <spGetWeeklyProgressForProductArea_Result> WeeklyProgress = new List <spGetWeeklyProgressForProductArea_Result>();
            var      ProductAreas = db.AutomateDatas.Where(r => r.TeamId == id).Select(col => col.ProductArea).Distinct().ToList();
            DateTime Date1, Date2;

            //if friday then show one week data
            if (DateTime.Now.DayOfWeek == DayOfWeek.Friday)
            {
                Date1 = DateTime.Now;
                Date2 = Helpers.GetPreviousFriday(Date1);
            }
            //else show data from previous week till date
            else
            {
                Date1 = Helpers.GetPreviousFriday(DateTime.Now).AddDays(7);
                Date2 = Helpers.GetPreviousFriday(Date1);
                Date2 = Helpers.GetPreviousFriday(Date2);
            }

            var FirstData  = db.spGetStatusOfAutomationForATeamWithSpecifiedDate(id, Date1).ToDictionary(s => s.ProductArea);
            var SecondData = db.spGetStatusOfAutomationForATeamWithSpecifiedDate(id, Date2).ToDictionary(s => s.ProductArea);

            foreach (string productArea in ProductAreas)
            {
                bool flag         = true;
                var  progressData = new spGetWeeklyProgressForProductArea_Result();
                progressData.ProductArea = productArea;
                progressData.TeamId      = id;
                if (FirstData.ContainsKey(productArea) && SecondData.ContainsKey(productArea))
                {
                    progressData.TFSTestCasesThisWeek = FirstData[productArea].NoOfTFSTestcase - SecondData[productArea].NoOfTFSTestcase;
                    progressData.AutomatedThisWeek    = FirstData[productArea].NoOfAutomatedTestcases - SecondData[productArea].NoOfAutomatedTestcases;

                    if (progressData.TFSTestCasesThisWeek == 0 && progressData.AutomatedThisWeek == 0)
                    {
                        flag = false;
                    }
                }
                else if (!FirstData.ContainsKey(productArea) && !SecondData.ContainsKey(productArea))
                {
                    progressData.TFSTestCasesThisWeek = 0;
                    progressData.AutomatedThisWeek    = 0;
                    flag = false;
                }
                else if (FirstData.ContainsKey(productArea))
                {
                    progressData.TFSTestCasesThisWeek = FirstData[productArea].NoOfTFSTestcase;
                    progressData.AutomatedThisWeek    = FirstData[productArea].NoOfAutomatedTestcases;
                }
                if (flag)
                {
                    WeeklyProgress.Add(progressData);
                }
            }


            JArray DS1 = rss["data"]["datasets"][0]["data"] as JArray;
            JArray DS2 = rss["data"]["datasets"][1]["data"] as JArray;

            for (int i = 0; i < WeeklyProgress.Count; i++)
            {
                string PA = WeeklyProgress[i].ProductArea;

                JArray labels = (JArray)rss["data"]["labels"];
                labels.Add(PA);


                DS1.Add(WeeklyProgress[i].TFSTestCasesThisWeek);

                DS2.Add(WeeklyProgress[i].AutomatedThisWeek);
            }

            return(rss);
        }
Exemplo n.º 8
0
        public JObject Get(string id)
        {
            var db = new AutomationDashboardEntities();

            if (id.Contains("All"))
            {
                string ID            = id.Substring(4);
                int    teamId        = int.Parse(ID);
                var    automateDatas = db.ProductTeams.First(team => team.TeamId == teamId);

                var JSONFile = HttpContext.Current.Server.MapPath("~/jsons/automateOverview.json");

                string  json       = File.ReadAllText(JSONFile);
                JObject rss        = JObject.Parse(json);
                JArray  labels     = (JArray)rss["data"]["labels"];
                JArray  labelsData = rss["data"]["datasets"][0]["data"] as JArray;

                if (teamId == 1)
                {
                    labels.Add("Expected Test Cases");
                }
                labels.Add("Testcases in TFS");
                labels.Add("Automated Test Cases");

                if (teamId == 1)
                {
                    labelsData.Add(automateDatas.TotalExpectedTests);
                }
                labelsData.Add(automateDatas.TotalTFSTests);
                labelsData.Add(automateDatas.TotalAutomatedTests);

                if (teamId != 1)
                {
                    JArray BackgroundColor = (JArray)rss["data"]["datasets"][0]["backgroundColor"];
                    BackgroundColor.RemoveAt(0);
                }
                return(rss);
            }
            else
            {
                int ID           = int.Parse(id);
                var Suite        = db.TestSuites.Where(row => row.SuiteId == ID).First();
                int?teamId       = Suite.TestPlan.TeamId;
                var suiteDetails = db.spGetSuiteDetails(Suite.SuiteId).First();

                var JSONFile = HttpContext.Current.Server.MapPath("~/jsons/automateOverview.json");

                string  json       = File.ReadAllText(JSONFile);
                JObject rss        = JObject.Parse(json);
                JArray  labels     = (JArray)rss["data"]["labels"];
                JArray  labelsData = rss["data"]["datasets"][0]["data"] as JArray;



                if (teamId == 1)
                {
                    labels.Add("Expected Test Cases");
                }
                labels.Add("Testcases in TFS");
                labels.Add("Automated Test Cases");

                if (teamId == 1)
                {
                    labelsData.Add(suiteDetails?.ExpectedTests);
                }
                labelsData.Add(suiteDetails?.TotalTests);
                labelsData.Add(suiteDetails?.TotalAutomatedTests);

                if (teamId != 1)
                {
                    JArray BackgroundColor = (JArray)rss["data"]["datasets"][0]["backgroundColor"];
                    BackgroundColor.RemoveAt(0);
                }

                return(rss);
            }
        }
Exemplo n.º 9
0
 static TFS()
 {
     db = new AutomationDashboardEntities();
     getLatestInProgress = new HashSet <int>();
 }