static void Main(string[] args) { log4net.Config.BasicConfigurator.Configure(); log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program)); log.Info("Starting"); System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("es"); System.Threading.Thread.CurrentThread.CurrentCulture = ci; Console.WriteLine("Options "); Console.WriteLine("1: Cerrar Actividades CM"); Console.WriteLine("2: Crear Tarea"); Console.WriteLine("3: Cerrar Tarea"); Console.WriteLine("4: Crear Tareas (excel)"); Console.WriteLine("5: Download report as csv"); Console.WriteLine("6: Open app (IE)"); Console.WriteLine("8: Crear defecto"); Console.Write("Escoger opcion: "); var option = Console.ReadLine(); Console.WriteLine("Opcion escogida es: {0}", option); switch (option) { case "8": var defectsExcel = new ExcelQueryFactory("Defects.xlsx"); var defects = from x in defectsExcel.Worksheet <DefectDTO>() select x; foreach (var def in defects) { if (def.IdAuthorization != null) { Login(); log.InfoFormat("Creando Defecto: {0}", def.ToString()); var autPage = new AutorizationPage(driver); string autPageUrl = ""; autPageUrl += ConfigurationManager.AppSettings["URLBase"]; autPageUrl += ConfigurationManager.AppSettings["WISearchURLPartialHistory"]; autPage.GoToURL(string.Format(autPageUrl, def.IdAuthorization)); string areaProyecto = autPage.AreaProyecto(); log.InfoFormat("Area proyecto {0}", areaProyecto); string PrmUrl = ""; PrmUrl += ConfigurationManager.AppSettings["URLBase"]; PrmUrl += ConfigurationManager.AppSettings["WISearchURLPartialHistory"]; Console.WriteLine("Prmurl {0}", PrmUrl); autPage.GoToURL(string.Format(PrmUrl, autPage.Father())); SolPage solPage = new SolPage(driver); solPage.FillAttributes(def); var defPage = new DefectPage(driver); string newDefUrl = ""; newDefUrl += ConfigurationManager.AppSettings["URLBase"]; newDefUrl += ConfigurationManager.AppSettings["ProjectAreaURLPartial"]; newDefUrl += ConfigurationManager.AppSettings["URLdefectPartial"]; defPage.GoToURL(string.Format(newDefUrl, areaProyecto)); defPage.CreateDefect(def); var input = Console.ReadLine(); Logout(); } } break; case "6": string currentDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); string driverFolder = Path.Combine(currentDirectory, ConfigurationManager.AppSettings["DriversDirectory"]); var options = new InternetExplorerOptions { IgnoreZoomLevel = true, ForceCreateProcessApi = true, BrowserCommandLineArguments = "-private", PageLoadStrategy = PageLoadStrategy.None }; string site = ConfigurationManager.AppSettings["IEUrl"]; string usuario = ConfigurationManager.AppSettings["IEUser"]; string clave = ConfigurationManager.AppSettings["IEPassword"]; driver = new InternetExplorerDriver(driverFolder, options); var NetAppLogin = new NetAppLogin(driver); NetAppLogin.GoToURL(site); Console.WriteLine("now is {0}", DateTime.Now.ToLongTimeString()); Console.WriteLine("about to start...."); Console.WriteLine("now is {0}", DateTime.Now.ToLongTimeString()); AutoItX.WinActivate("Windows Security"); AutoItX.WinWaitActive("Windows Security"); AutoItX.Sleep(500); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{TAB}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{TAB}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{ENTER}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{TAB}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{ENTER}"); AutoItX.WinActivate("Windows Security"); AutoItX.Sleep(500); AutoItX.WinActivate("Windows Security"); AutoItX.Send("TIM"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{ASC 092}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send(usuario); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{TAB}"); AutoItX.WinActivate("Windows Security"); AutoItX.Sleep(500); AutoItX.WinActivate("Windows Security"); AutoItX.Send(clave); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{ENTER}"); break; case "5": Login(); var savedQueryPage = new SavedQueryPage(driver); savedQueryPage.downloadCSV(); log.Info("Se descargó reporte en download"); Logout(); break; case "4": var tasksExcel = new ExcelQueryFactory("Tasks.xlsx"); var timeTasks = from x in tasksExcel.Worksheet <TimeTask>() select x; foreach (var task in timeTasks) { if (task != null && task.ToString() != null && task.IdTicket != "" && task.IdTicket != null) { Login(); log.InfoFormat("Creando Tarea: {0}", task.ToString()); Console.WriteLine(task.ToString()); Console.WriteLine("taskplanned for {0}", task.TaskPlannedFor == null); int taskCode = Int32.Parse(task.IdTicket); NewTaskPage taskPage = null; taskPage = new NewTaskPage(driver, taskCode); if (task.TimeSpentHr.Contains(",")) { task.TimeSpentHr = task.TimeSpentHr.Replace(",", "."); Console.WriteLine("new timespent {0}", task.TimeSpentHr); } taskPage.VisitTicketLinksTab(task); Logout(); } else { log.Error("No se procesan tareas nulas"); } } //report Login(); savedQueryPage = new SavedQueryPage(driver); savedQueryPage.downloadCSV(); log.Info("Se descargó reporte en download"); Logout(); break; case "3": //close task tarea var taskCode1 = int.Parse(ConfigurationManager.AppSettings["TaskID"]); var page1 = new TaskPage(driver, "", null); page1.GoTo(taskCode1); page1.CloseTask("Completada"); //Completada o Invalida o En Trabajo break; case "2": //crear task var taskPage2 = new NewTaskPage(driver, int.Parse(ConfigurationManager.AppSettings["IdTicket"])); taskPage2.VisitTicketLinksTab(null); break; case "1": try { Login(); int startRow = int.Parse(ConfigurationManager.AppSettings["startRow"]); int endRow = int.Parse(ConfigurationManager.AppSettings["endRow"]); int processingAssignations = endRow - startRow + 1; Console.WriteLine("Skipping {0} attention(s)", startRow - 2); Console.WriteLine("Processing {0} attention(s)", processingAssignations); var excel = new ExcelQueryFactory("Modelo.xlsx"); excel.AddTransformation <AssignationExcel>(x => x.DDS, cellValue => cellValue == "Y"); excel.AddTransformation <AssignationExcel>(x => x.Installed, cellValue => cellValue != "N"); excel.AddTransformation <AssignationExcel>(x => x.SourcesCompiled, cellValue => cellValue != "N"); excel.AddTransformation <AssignationExcel>(x => x.Special, cellValue => cellValue == "Y"); var assignations = from x in excel.Worksheet <AssignationExcel>() select x; var assignationList = assignations.ToList().Skip(startRow - 2).Take(processingAssignations); foreach (var task in assignationList) { Console.WriteLine("Processing Actividad id {0} summary {1} installed {2}", task.Id, task.Summary, task.Installed); //crear assignation request var request = new AssignationRequest(); if (task.Cycle > 0) { request.Cycle = task.Cycle; } if (task.DDS) { request.DDS = task.DDS; } request.Id = task.Id; if (!task.Installed) { request.Installation = task.Installed; } if (task.NumberDefects > 0) { request.NumberDefects = task.NumberDefects; } if (task.NumberPbls > 0) { request.NumberPBL = task.NumberPbls; } if (!task.SourcesCompiled) { request.SourcesCompiled = task.SourcesCompiled; } request.TimeSpent = task.TotalTime; Console.WriteLine("Task state {0}", task.ClosingState); if (task.ClosingState == 1) { request.ClosingState = SeleniumCM.Models.AssignationRequest.AttentionClosingState.ExitosoConErrores; } if (task.ClosingState == 2) { request.ClosingState = SeleniumCM.Models.AssignationRequest.AttentionClosingState.Stopper; } if (task.Special) { request.Special = task.Special; } var atencion = AssignationFactory.createAssignation(request); //Console.ReadLine(); //buscar actividad var activity = task.Id; var url = String.Format("https://172.19.112.112:9443/ccm/web/projects/CLARO.CERTIFICACION#action=com.ibm.team.workitem.viewWorkItem&id={0}&tab=esfuerzoscm", activity); driver.Navigate().GoToUrl(url); driver.Navigate().Refresh(); driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20); IWebElement table = null; table = driver.FindElement(By.ClassName("DetailsSplitTable")); var i = 0; foreach (var tarea in atencion.Tasks) { //editar campos t1 IWebElement field = null; field = table.FindElements(By.TagName("input"))[i]; field.Clear(); field.SendKeys(tarea.ReportTime.ToString()); i++; } //guardar IWebElement saveBtn = null; saveBtn = driver.FindElement(By.CssSelector("button.primary-button")); saveBtn.Click(); //cambiar estado a Status IWebElement statusList = null; statusList = driver.FindElement(By.CssSelector("select[aria-label='Status']")); //select status var selectElement = new SelectElement(statusList); selectElement.SelectByText("Finalizado"); //cambiar estado a Resolution var resolutionList = driver.FindElement(By.CssSelector("select[aria-label='Resolution']")); //select status selectElement = new SelectElement(resolutionList); Console.WriteLine("Closing state {0}", request.ClosingState.ToString()); switch (request.ClosingState) { case SeleniumCM.Models.AssignationRequest.AttentionClosingState.Exitoso: selectElement.SelectByText("Exitoso"); break; case SeleniumCM.Models.AssignationRequest.AttentionClosingState.ExitosoConErrores: selectElement.SelectByText("Exitoso con Errores"); break; case SeleniumCM.Models.AssignationRequest.AttentionClosingState.Stopper: selectElement.SelectByText("Stopper (No Instalado)"); break; default: break; } //guardar final saveBtn.Click(); driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5); ScreenshotHelper.TakeScreenshot(driver, request.Id); } } catch (Exception e) { Console.WriteLine("Exception Message {0}", e.Message); Console.WriteLine("Exception Trace {0}", e.StackTrace); } break; default: break; } //page object return return; }