public async Task <IActionResult> Create(string mensaje)
        {
            InicializarMensaje(mensaje);

            var tipoAccionPersonalViewmodel = new TipoAccionPersonalViewModel
            {
                MatrizLista = new List <Matriz>
                {
                    new Matriz {
                        Id = "Matriz", Nombre = "Matriz"
                    },
                    new Matriz {
                        Id = "Regional", Nombre = "Regional"
                    },
                    new Matriz {
                        Id = "Matriz y Regional", Nombre = "Matriz y Regional"
                    }
                },
                TipoAccionPersonal = new TipoAccionPersonal {
                    NDiasMaximo  = 0,
                    NDiasMinimo  = 0,
                    NHorasMaximo = 0,
                    NHorasMinimo = 0
                }
            };

            ViewData["IdEstadoTipoAccionPersonal"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(await apiServicio.Listar <EstadoTipoAccionPersonal>(new Uri(WebApp.BaseAddress), "api/EstadosTiposAccionPersonal/ListarEstadosTiposAccionPersonal"), "IdEstadoTipoAccionPersonal", "Nombre");
            ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(tipoAccionPersonalViewmodel.MatrizLista, "Id", "Nombre");


            return(View(tipoAccionPersonalViewmodel));
        }
        public async Task <IActionResult> Create()
        {
            var tipoAccionPersonalViewmodel = new TipoAccionPersonalViewModel
            {
                MatrizLista = new List <Matriz>
                {
                    new Matriz {
                        Id = "MATRIZ", Nombre = "MATRIZ"
                    },
                    new Matriz {
                        Id = "REGIONAL", Nombre = "REGIONAL"
                    },
                    new Matriz {
                        Id = "MATRIZ Y REGIONAL", Nombre = "MATRIZ Y REGIONAL"
                    }
                },
                TipoAccionPersonal = new TipoAccionPersonal {
                    NDiasMaximo  = 0,
                    NDiasMinimo  = 0,
                    NHorasMaximo = 0,
                    NHorasMinimo = 0
                }
            };

            ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(tipoAccionPersonalViewmodel.MatrizLista, "Id", "Nombre");


            return(View(tipoAccionPersonalViewmodel));
        }
        public async Task <IActionResult> Edit(string id, string mensaje)
        {
            InicializarMensaje(mensaje);

            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    var respuesta = await apiServicio.SeleccionarAsync <Response>(id, new Uri(WebApp.BaseAddress),
                                                                                  "api/TiposAccionesPersonales");


                    respuesta.Resultado = JsonConvert.DeserializeObject <TipoAccionPersonal>(respuesta.Resultado.ToString());

                    var tipoAccionPersonalViewmodel = new TipoAccionPersonalViewModel
                    {
                        MatrizLista = new List <Matriz>
                        {
                            new Matriz {
                                Id = "Matriz", Nombre = "Matriz"
                            },
                            new Matriz {
                                Id = "Regional", Nombre = "Regional"
                            },
                            new Matriz {
                                Id = "Matriz y Regional", Nombre = "Matriz y Regional"
                            }
                        },


                        TipoAccionPersonal = (TipoAccionPersonal)respuesta.Resultado
                    };

                    ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(tipoAccionPersonalViewmodel.MatrizLista, "Id", "Nombre");
                    ViewData["IdEstadoTipoAccionPersonal"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(await apiServicio.Listar <EstadoTipoAccionPersonal>(new Uri(WebApp.BaseAddress), "api/EstadosTiposAccionPersonal/ListarEstadosTiposAccionPersonal"), "IdEstadoTipoAccionPersonal", "Nombre");


                    if (respuesta.IsSuccess)
                    {
                        return(View(tipoAccionPersonalViewmodel));
                    }
                }

                return(BadRequest());
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> Edit(string id, TipoAccionPersonal TipoAccionPersonal)
        {
            Response response = new Response();

            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    var tipoAccionPersonalViewmodel = new TipoAccionPersonalViewModel
                    {
                        MatrizLista = new List <Matriz>
                        {
                            new Matriz {
                                Id = "Matriz", Nombre = "Matriz"
                            },
                            new Matriz {
                                Id = "Regional", Nombre = "Regional"
                            },
                            new Matriz {
                                Id = "Matriz y Regional", Nombre = "Matriz y Regional"
                            }
                        },
                    };

                    response = await apiServicio.EditarAsync(id, TipoAccionPersonal, new Uri(WebApp.BaseAddress),
                                                             "api/TiposAccionesPersonales");


                    if (response.IsSuccess)
                    {
                        return(RedirectToAction("Index", new { mensaje = response.Message }));
                    }
                    ViewData["Error"] = response.Message;


                    ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(tipoAccionPersonalViewmodel.MatrizLista, "Id", "Nombre");
                    ViewData["IdEstadoTipoAccionPersonal"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(await apiServicio.Listar <EstadoTipoAccionPersonal>(new Uri(WebApp.BaseAddress), "api/EstadosTiposAccionPersonal/ListarEstadosTiposAccionPersonal"), "IdEstadoTipoAccionPersonal", "Nombre");


                    return(View(tipoAccionPersonalViewmodel));
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> Create(TipoAccionPersonal tipoAccionPersonal)
        {
            Response response = new Response();

            try
            {
                var model = new TipoAccionPersonalViewModel
                {
                    MatrizLista = new List <Matriz>
                    {
                        new Matriz {
                            Id = "Matriz", Nombre = "Matriz"
                        },
                        new Matriz {
                            Id = "Regional", Nombre = "Regional"
                        },
                        new Matriz {
                            Id = "Matriz y Regional", Nombre = "Matriz y Regional"
                        }
                    },
                    TipoAccionPersonal = tipoAccionPersonal
                };

                if (!ModelState.IsValid)
                {
                    ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(model.MatrizLista, "Id", "Nombre");

                    var listaEstadoTipoAccionPersonal = await apiServicio.Listar <EstadoTipoAccionPersonal>(new Uri(WebApp.BaseAddress), "api/EstadosTiposAccionPersonal/ListarEstadosTiposAccionPersonal");

                    ViewData["IdEstadoTipoAccionPersonal"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(
                        listaEstadoTipoAccionPersonal, "IdEstadoTipoAccionPersonal", "Nombre");


                    InicializarMensaje(Mensaje.ModeloInvalido);

                    return(View(model));
                }



                response = await apiServicio.InsertarAsync(tipoAccionPersonal,
                                                           new Uri(WebApp.BaseAddress),
                                                           "api/TiposAccionesPersonales/InsertarTipoAccionPersonal");

                var tipoAccionPersonalViewmodel = new TipoAccionPersonalViewModel
                {
                    MatrizLista = new List <Matriz>
                    {
                        new Matriz {
                            Id = "Matriz", Nombre = "Matriz"
                        },
                        new Matriz {
                            Id = "Regional", Nombre = "Regional"
                        },
                        new Matriz {
                            Id = "Matriz y Regional", Nombre = "Matriz y Regional"
                        }
                    },
                    TipoAccionPersonal = new TipoAccionPersonal
                    {
                        NDiasMaximo  = 0,
                        NDiasMinimo  = 0,
                        NHorasMaximo = 0,
                        NHorasMinimo = 0
                    }
                };



                if (response.IsSuccess)
                {
                    return(RedirectToAction("Index", new { mensaje = response.Message }));
                }

                ViewData["IdEstadoTipoAccionPersonal"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(await apiServicio.Listar <EstadoTipoAccionPersonal>(new Uri(WebApp.BaseAddress), "api/EstadosTiposAccionPersonal/ListarEstadosTiposAccionPersonal"), "IdEstadoTipoAccionPersonal", "Nombre");
                ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(tipoAccionPersonalViewmodel.MatrizLista, "Id", "Nombre");

                return(View(tipoAccionPersonalViewmodel));
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> Create(TipoAccionPersonalViewModel tipoAccionPersonalViewModel)
        {
            Response response = new Response();

            try
            {
                var MatrizLista = new List <Matriz>
                {
                    new Matriz {
                        Id = "MATRIZ", Nombre = "MATRIZ"
                    },
                    new Matriz {
                        Id = "REGIONAL", Nombre = "REGIONAL"
                    },
                    new Matriz {
                        Id = "MATRIZ Y REGIONAL", Nombre = "MATRIZ Y REGIONAL"
                    }
                };

                // Obtener el valor de empleadoCambio y setear la variable del modelo a la que equivale
                // 0 = n/a || 1 = Modalidad contrataciĆ³n || 2 = desactivar empleado
                switch (tipoAccionPersonalViewModel.empleadoCambio)
                {
                case 0:
                    tipoAccionPersonalViewModel.TipoAccionPersonal.DesactivarEmpleado    = false;
                    tipoAccionPersonalViewModel.TipoAccionPersonal.ModalidadContratacion = false;
                    break;

                case 1:
                    tipoAccionPersonalViewModel.TipoAccionPersonal.DesactivarEmpleado    = false;
                    tipoAccionPersonalViewModel.TipoAccionPersonal.ModalidadContratacion = true;
                    break;

                case 2:
                    tipoAccionPersonalViewModel.TipoAccionPersonal.DesactivarEmpleado    = true;
                    tipoAccionPersonalViewModel.TipoAccionPersonal.ModalidadContratacion = false;
                    break;

                default:
                    break;
                }

                // Obtener el valor de grp_tiempo_minimo y setear la variable del modelo a la que equivale
                if (tipoAccionPersonalViewModel.grp_tiempo_minimo == "definitivo")
                {
                    tipoAccionPersonalViewModel.TipoAccionPersonal.Definitivo = true;
                }
                else
                {
                    tipoAccionPersonalViewModel.TipoAccionPersonal.Definitivo = false;
                }


                if (!ModelState.IsValid)
                {
                    ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(MatrizLista, "Id", "Nombre");

                    this.TempData["MensajeTimer"] = $"{Mensaje.Error}|{Mensaje.ModeloInvalido}|{"10000"}";

                    return(View(tipoAccionPersonalViewModel));
                }



                response = await apiServicio.InsertarAsync(tipoAccionPersonalViewModel.TipoAccionPersonal,
                                                           new Uri(WebApp.BaseAddress),
                                                           "api/TiposAccionesPersonales/InsertarTipoAccionPersonal");

                tipoAccionPersonalViewModel.MatrizLista = MatrizLista;



                if (response.IsSuccess)
                {
                    return(this.Redireccionar(
                               "TiposAccionesPersonales",
                               "Index",
                               $"{Mensaje.Success}|{response.Message}"
                               ));
                }


                ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(tipoAccionPersonalViewModel.MatrizLista, "Id", "Nombre");

                this.TempData["MensajeTimer"] = $"{Mensaje.Error}|{response.Message}|{"10000"}";


                return(View(tipoAccionPersonalViewModel));
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> Edit(string id)
        {
            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    var respuesta = await apiServicio.SeleccionarAsync <Response>(id, new Uri(WebApp.BaseAddress),
                                                                                  "api/TiposAccionesPersonales");


                    respuesta.Resultado = JsonConvert.DeserializeObject <TipoAccionPersonal>(respuesta.Resultado.ToString());

                    var tipoAccionPersonalViewModel = new TipoAccionPersonalViewModel
                    {
                        MatrizLista = new List <Matriz>
                        {
                            new Matriz {
                                Id = "MATRIZ", Nombre = "MATRIZ"
                            },
                            new Matriz {
                                Id = "REGIONAL", Nombre = "REGIONAL"
                            },
                            new Matriz {
                                Id = "MATRIZ Y REGIONAL", Nombre = "MATRIZ Y REGIONAL"
                            }
                        },


                        TipoAccionPersonal = (TipoAccionPersonal)respuesta.Resultado
                    };

                    ViewData["IdMatriz"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(tipoAccionPersonalViewModel.MatrizLista, "Id", "Nombre");



                    if (respuesta.IsSuccess)
                    {
                        // Obtener el valor de empleadoCambio a la que equivale
                        // 0 = n/a || 1 = Modalidad contrataciĆ³n || 2 = desactivar empleado

                        if (
                            tipoAccionPersonalViewModel.TipoAccionPersonal.DesactivarEmpleado == false &&
                            tipoAccionPersonalViewModel.TipoAccionPersonal.ModalidadContratacion == false
                            )
                        {
                            tipoAccionPersonalViewModel.empleadoCambio = 0;
                        }

                        else if (
                            tipoAccionPersonalViewModel.TipoAccionPersonal.DesactivarEmpleado == false &&
                            tipoAccionPersonalViewModel.TipoAccionPersonal.ModalidadContratacion == true
                            )
                        {
                            tipoAccionPersonalViewModel.empleadoCambio = 1;
                        }

                        else if (
                            tipoAccionPersonalViewModel.TipoAccionPersonal.DesactivarEmpleado == true &&
                            tipoAccionPersonalViewModel.TipoAccionPersonal.ModalidadContratacion == false
                            )
                        {
                            tipoAccionPersonalViewModel.empleadoCambio = 2;
                        }


                        return(View(tipoAccionPersonalViewModel));
                    }
                }

                return(BadRequest());
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }