private XmlDocument GetConsolidatedReport(int id)
        {
            using (var db = new AutomationDBEntities())
            {
                var         Tasks       = db.AutomationTasks.Where(rows => rows.JobId == id).ToList();
                XmlDocument reportFile  = new XmlDocument();
                string      firstReport = Encoding.UTF8.GetString(Tasks[0].AutomationReport);
                reportFile.LoadXml(firstReport);
                Tasks.RemoveAt(0);

                XmlNode TestsTag = reportFile.GetElementsByTagName("tests")[0];

                foreach (var task in Tasks)
                {
                    if (task.AutomationReport == null)
                    {
                        continue;
                    }

                    string      taskReport = Encoding.UTF8.GetString(task.AutomationReport);
                    XmlDocument document   = new XmlDocument();
                    document.LoadXml(taskReport);
                    var taskTests = document.GetElementsByTagName("test");
                    foreach (XmlNode test in taskTests)
                    {
                        var importedNode = reportFile.ImportNode(test, true);
                        TestsTag.AppendChild(importedNode);
                    }
                }
                return(reportFile);
            }
        }
        public HttpResponseMessage Post([FromBody] JObject JOB)
        {
            try
            {
                int id;
                using (var db = new AutomationDBEntities())
                {
                    if (!db.ManagerJobs.Any())
                    {
                        id = 1;
                    }
                    else
                    {
                        id = db.ManagerJobs.Max(col => col.Id) + 1;
                    }

                    string automationRuntype = JOB["AutomationRunType"].ToString();
                    JOB.Property("AutomationRunType").Remove();
                    //var uploadModules = JOB.Property("UploadModules");
                    //if (uploadModules != null)
                    //    uploadModules.Value = false;
                    var importLibraryData = JOB.Property("ImportLibraryData");
                    if (importLibraryData != null)
                    {
                        importLibraryData.Value = false;
                    }

                    ManagerJob job = new ManagerJob()
                    {
                        Id                = id,
                        Status            = null,
                        AutomationRunType = automationRuntype,
                        Config            = Encoding.UTF8.GetBytes(JOB.ToString())
                    };

                    string BuildURL = JOB["BuildURL"].ToString();

                    if (db.ActiveAutomationBuilds.Any(row => row.Build.Equals(BuildURL, StringComparison.CurrentCultureIgnoreCase)))
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, "Request cannot be accecpted at this time because another run is in progress on the specified build. For more details, please check the active automation runs on the dashboard or contact the Optimus Team."));
                    }
                    var activeAutomation = new ActiveAutomationBuild(job.Id, BuildURL);

                    db.ManagerJobs.Add(job);
                    db.Entry(job).State = System.Data.Entity.EntityState.Added;

                    db.ActiveAutomationBuilds.Add(activeAutomation);
                    db.Entry(activeAutomation).State = System.Data.Entity.EntityState.Added;

                    db.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.Accepted, "JobId:" + job.Id));
                }
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, e.ToString()));
            }
        }
 public ActionResult GetXMLReportForSuite(int id)
 {
     using (var db = new AutomationDBEntities())
     {
         var    record = db.AutomationTasks.Where(row => row.Id == id).FirstOrDefault();
         string report = Encoding.UTF8.GetString(record.AutomationReport);
         return(Content(report, "text/xml"));
     }
 }
        public SlavesStatus Get()
        {
            using (var db = new AutomationDBEntities())
            {
                int busy = db.SlaveMachines.Count(machines => machines.Status == true);
                int idle = db.SlaveMachines.Count(machines => machines.Status == false);

                SlavesStatus status = new SlavesStatus(busy, idle);
                return(status);
            }
        }
 public List <Job> Get()
 {
     using (var db = new AutomationDBEntities())
     {
         var        ManagerJobs = db.ManagerJobs.OrderByDescending(col => col.Id).ToList();
         List <Job> Jobs        = new List <Job>();
         foreach (var job in ManagerJobs)
         {
             Job j = new Job(job.Id, job.AutomationRunType, job.Status == true, job.TimeForCompletion);
             Jobs.Add(j);
         }
         return(Jobs);
     }
 }
        public ActionResult GetConfigForJob(int Id)
        {
            using (var db = new AutomationDBEntities())
            {
                var    job    = db.ManagerJobs.FirstOrDefault(row => row.Id == Id);
                string config = "content not available";
                if (job != null)
                {
                    config = Encoding.UTF8.GetString(job.Config);
                }

                return(Content(config, "application/json"));
            }
        }
 public ActionResult GetConfigForSuite(int Id)
 {
     using (var db = new AutomationDBEntities())
     {
         var    module     = db.AutomationTasks.FirstOrDefault(row => row.Id == Id);
         string jsonConfig = "content not available";
         if (module != null)
         {
             jsonConfig = Encoding.UTF8.GetString(module.ConfigurationsUsedForExecution);
         }
         var jobject = JObject.Parse(jsonConfig);
         return(Content(jobject.ToString(), "application/json"));
     }
 }
 public ActionResult ViewSuiteHTMLReport(int id)
 {
     using (var db = new AutomationDBEntities())
     {
         var         record = db.AutomationTasks.Where(row => row.Id == id).FirstOrDefault();
         string      report = Encoding.UTF8.GetString(record.AutomationReport);
         XmlDocument doc    = new XmlDocument();
         doc.LoadXml(report);
         string FileName = GenerateExtentReport(doc);
         var    rm       = new ReportModel(System.IO.File.ReadAllText(FileName));
         System.IO.File.Delete(FileName);
         return(View("~/Views/Report/ViewResult.cshtml", rm));
     }
 }
 public List <Task> Get(int id)
 {
     using (var db = new AutomationDBEntities())
     {
         var         AutomationTasks = db.AutomationTasks.Where(rows => rows.JobId == id).OrderByDescending(col => col.JobId).OrderBy(col => col.IsComplete).ToList();
         List <Task> Tasks           = new List <Task>();
         foreach (var task in AutomationTasks)
         {
             Task t = new Task(task.JobId, task.IsComplete == true, task.SlaveId, task.SuiteName, task.TimeForCompletion, task.Id);
             Tasks.Add(t);
         }
         return(Tasks);
     }
 }