public IHttpActionResult getEmployee(string idEmployee = null)
        {
            try
            {
                //Control_Subtypes control = new Control_Subtypes(); // Habilitar si se desea instanciar por Subtypes del Json
                Control_Factory control  = new Control_Factory(); // Habilitar si se desea instanciar usando el patrón Factory Method
                string          employee = control.getEmployee(idEmployee);
                bool            response = (employee != "[]") ? true : false;
                dynamic         resp     = new ExpandoObject();
                resp.message = (response) ?
                               "Employee:" :
                               "No existe el empleado.";
                resp.Data = (response) ? employee : null;

                return(Json(new
                {
                    status = (response) ? HttpStatusCode.OK : HttpStatusCode.NoContent,
                    data = resp
                }));
            }
            catch (Exception ex)
            {
                return(Json(new
                {
                    status = HttpStatusCode.NoContent,
                    data = new { message = ex.Message }
                }));
            }
        }
        public IHttpActionResult getAllEmployees()
        {
            try
            {
                //Control_Subtypes control = new Control_Subtypes(); // Habilitar si se desea instanciar por Subtypes del Json
                Control_Factory control       = new Control_Factory(); // Habilitar si se desea instanciar usando el patrón Factory Method
                string          ListEmployees = control.getAllEmployees();
                bool            response      = (ListEmployees != String.Empty) ? true : false;
                dynamic         resp          = new ExpandoObject();
                resp.message = (response) ?
                               "Lista de Empleados:" :
                               "No existen empleados";
                resp.Data = (response) ? ListEmployees : null;

                return(Json(new
                {
                    status = (response) ? HttpStatusCode.OK : HttpStatusCode.NoContent,
                    data = resp
                }));
            }
            catch (Exception ex)
            {
                return(Json(new
                {
                    status = HttpStatusCode.NoContent,
                    data = new { message = ex.Message }
                }));
            }
        }
        public void getAllEmployees_Vacío()
        {
            this.DataRepositoryMock = new Mock <IDatos_Employee>();
            this.DataRepositoryMock.Setup(gd => gd.getEmployees()).Returns("");
            this.controller = new Control_Factory(this.DataRepositoryMock.Object);

            string result = this.controller.getAllEmployees();

            Assert.AreEqual(result, "[]");
        }
        public void getAllEmployees_no_existe_tipoContrato()
        {
            this.DataRepositoryMock = new Mock <IDatos_Employee>();
            this.DataRepositoryMock.Setup(gd => gd.getEmployees()).Returns("[{\"id\": 1,\"name\": \"Juan\",\"contractTypeName\": \"Hourly\",\"roleId\": 1,\"roleName\": \"Administrator\",\"roleDescription\": null,\"hourlySalary\": 60000,\"monthlySalary\": 80000}]");
            this.controller = new Control_Factory(this.DataRepositoryMock.Object);

            string result = this.controller.getAllEmployees();

            Console.WriteLine("Resultado:" + result);

            Assert.AreEqual(result, "[]");
        }