Esempio n. 1
0
        public void Run()
        {
            //llamamos al Abstract Factory que genera la Factory que a su vez crea la familia de Servicios
            //es decir clases del tipo de Servicio enviado
            var tipo            = Constantes.Constantes.ServiceType.REST_FULL;
            var abstractFactory = ServiceStackAbstractFactory.createServiceFactory(tipo);

            //Actualmente el tipo de servicio se pasa al createServiceFactory pero se puede leer ese valor desde
            //un archivo de configuracion o algo similar y dentro de ServiceStackAbsytractFactory se obtiene el valor,
            // y se crean los Services pertinentes al valor leido desde la configuracion


            IEmployeeService employeeService = abstractFactory.getEmployeeService();
            IProductService  productService  = abstractFactory.getProductService();

            Console.WriteLine($":::::::::::::::::::  EMPLEADOS   ({tipo})  :::::::::::::::::::");
            foreach (var employee in employeeService.getEmployee())
            {
                Console.WriteLine($"Empleado:: {employee}");
            }
            Console.WriteLine("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::");

            Console.WriteLine($":::::::::::::::::::  PRUDCOTS   ({tipo})  :::::::::::::::::::");
            foreach (var producto in productService.getProducts())
            {
                Console.WriteLine($"Producto:: {producto}");
            }
            Console.WriteLine("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::");
        }
        static void Main(string[] args)
        {
            IServiceStackAbstractFactory factory         = ServiceStackAbstractFactory.CreateServiceFactory();
            IEmployeeService             employeeService = factory.GetEmployeeService();
            IProductsService             productService  = factory.GetProductsService();

            Console.WriteLine("EmployeeService class > " + typeof(IEmployeeService).Name);
            Console.WriteLine("ProductService class  > " + typeof(IProductsService).Name);

            Console.WriteLine("getEmployee > " + string.Join("", employeeService.GetEmployee()));
            Console.WriteLine("getProduct  > " + string.Join("", productService.GetProducts()));
        }