using DemoBlazeAutomation.POM.Input; using DemoBlazeAutomation.POM.Models; using RazorEngine.Compilation.ImpromptuInterface.InvokeExt; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using TechTalk.SpecFlow.Configuration.JsonConfig; namespace DemoBlazeAutomation.POM.Helper { /// <summary> /// Clase Auxiliar contiene métodos de parseo (desde transformar los elementos de ui a webelements y de webelement a obj c#) que serán usados en HomePage. /// </summary> public static class ProductHelper { /// <summary> /// Transforma una lista de Productos UI (IWebelements) en una lista de ProductWebElements /// </summary> /// <param name="list"></param> /// <returns></returns> public static IList<ProductWebElement> Parse(IList<IWebElement> list) => list.Select(product => new ProductWebElement(product)).ToList(); /// <summary> /// Transforma una lista de IWebelements en una lista de ProductModels /// </summary> /// <param name="list"></param> /// <returns></returns> public static IList <ProductModel> Parse(IList<ProductWebElement> list) => list.Select(product => Parse(product)).ToList(); /// <summary> /// Transforma un producto en formato WebElement en un objeto c Sharp /// </summary> /// <param name="element"></param> /// <returns></returns> public static ProductModel Parse(ProductWebElement element) { var priceCleaned= decimal.Parse(element.Price.Replace("$","").Trim()); // Elimina espacios en blanco y el signo de dólar al principio si lo hay return new ProductModel(element.Name, price: priceCleaned, element.Description); } } }