public async Task <Response> ObtenerDiscapacidadSustitutos([FromBody] DiscapacidadSustitutoRequest viewModel)
        {
            try
            {
                var discapacidadSustituto = await db.DiscapacidadSustituto
                                            .Where(y => y.IdDiscapacidadSustituto == viewModel.IdDiscapacidadSustituto)
                                            .Select(c => new DiscapacidadSustitutoRequest
                {
                    IdDiscapacidadSustituto = c.IdDiscapacidadSustituto,
                    IdPersonaSustituto      = Convert.ToInt32(c.IdPersonaSustituto),
                    IdTipoDiscapacidad      = Convert.ToInt32(c.IdTipoDiscapacidad),
                    NombreTipoDiscapacidad  = c.TipoDiscapacidad.Nombre,
                    NumeroCarnet            = c.NumeroCarnet,
                    PorcentajeDiscapacidad  = c.PorcentajeDiscapacidad,
                })
                                            .FirstOrDefaultAsync();

                if (discapacidadSustituto != null)
                {
                    return(new Response {
                        IsSuccess = true, Resultado = discapacidadSustituto
                    });
                }

                return(new Response {
                    IsSuccess = false, Message = Mensaje.RegistroNoEncontrado
                });
            }
            catch (Exception ex)
            {
                return(new Response {
                    IsSuccess = false, Message = Mensaje.Excepcion
                });
            }
        }
        public async Task <Response> EditarDiscapacidadSustituto([FromBody] DiscapacidadSustitutoRequest viewModel)
        {
            try
            {
                if (viewModel.IdDiscapacidadSustituto <= 0)
                {
                    return(new Response {
                        IsSuccess = false
                    });
                }

                var discapacidadActualizar = await db.DiscapacidadSustituto.Where(x => x.IdDiscapacidadSustituto == viewModel.IdDiscapacidadSustituto).FirstOrDefaultAsync();


                if (discapacidadActualizar != null)
                {
                    discapacidadActualizar.PorcentajeDiscapacidad = viewModel.PorcentajeDiscapacidad;
                    discapacidadActualizar.NumeroCarnet           = viewModel.NumeroCarnet;
                    discapacidadActualizar.IdTipoDiscapacidad     = viewModel.IdTipoDiscapacidad;

                    db.DiscapacidadSustituto.Update(discapacidadActualizar);
                    await db.SaveChangesAsync();

                    return(new Response
                    {
                        IsSuccess = true,
                        Resultado = discapacidadActualizar,
                    });
                }

                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.RegistroNoEncontrado,
                });
            }
            catch (Exception ex)
            {
                return(new Response {
                    IsSuccess = false, Message = Mensaje.Excepcion
                });
            }
        }
        public async Task <Response> ListarDiscapacidadSustitutos([FromBody] DiscapacidadSustitutoRequest viewModel)
        {
            try
            {
                if (viewModel.IdPersonaSustituto <= 0)
                {
                    return(new Response {
                        IsSuccess = false
                    });
                }
                var listaDiscapacidades = await db.DiscapacidadSustituto.Where(y => y.IdPersonaSustituto == viewModel.IdPersonaSustituto)
                                          .Select(x => new ViewModelDiscapacidadSustituto
                {
                    IdDiscapacidadSustituto = x.IdDiscapacidadSustituto,
                    IdTipoDiscapacidad      = x.IdTipoDiscapacidad,
                    NombreTipoDiscapacidad  = x.TipoDiscapacidad.Nombre,
                    NumeroCarnet            = x.NumeroCarnet,
                    PorcentajeDiscapacidad  = x.PorcentajeDiscapacidad,
                }).ToListAsync();



                return(new Response
                {
                    IsSuccess = true,
                    Resultado = new DiscapacidadSustitutoRequest
                    {
                        IdPersonaSustituto = viewModel.IdPersonaSustituto,
                        ListaDiscapacidadSustitutos = listaDiscapacidades
                    },
                });
            }
            catch (Exception ex)
            {
                return(new Response {
                    IsSuccess = false, Message = Mensaje.Excepcion
                });
            }
        }
        public async Task <Response> EliminarDiscapacidadSustituto([FromBody] DiscapacidadSustitutoRequest viewModel)
        {
            try
            {
                if (viewModel.IdDiscapacidadSustituto <= 0)
                {
                    return(new Response {
                        IsSuccess = false
                    });
                }

                var discapacidadEliminar = await db.DiscapacidadSustituto.Where(x => x.IdDiscapacidadSustituto == viewModel.IdDiscapacidadSustituto).FirstOrDefaultAsync();

                if (discapacidadEliminar != null)
                {
                    db.DiscapacidadSustituto.Remove(discapacidadEliminar);
                    await db.SaveChangesAsync();

                    return(new Response
                    {
                        IsSuccess = true,
                        Resultado = discapacidadEliminar,
                    });
                }

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.RegistroNoEncontrado,
                });
            }
            catch (Exception ex)
            {
                return(new Response {
                    IsSuccess = false, Message = Mensaje.Excepcion
                });
            }
        }
        public async Task <Response> InsertarDiscapacidadSustituto([FromBody] DiscapacidadSustitutoRequest viewModel)
        {
            try
            {
                if (viewModel.IdPersonaSustituto <= 0)
                {
                    return(new Response {
                        IsSuccess = false
                    });
                }

                var discapacidadSustituto = new DiscapacidadSustituto
                {
                    IdPersonaSustituto      = viewModel.IdPersonaSustituto,
                    PorcentajeDiscapacidad  = viewModel.PorcentajeDiscapacidad,
                    NumeroCarnet            = viewModel.NumeroCarnet,
                    IdTipoDiscapacidad      = viewModel.IdTipoDiscapacidad,
                    IdDiscapacidadSustituto = viewModel.IdDiscapacidadSustituto,
                };

                await db.DiscapacidadSustituto.AddAsync(discapacidadSustituto);

                await db.SaveChangesAsync();

                return(new Response
                {
                    IsSuccess = true,
                    Resultado = discapacidadSustituto,
                });
            }
            catch (Exception ex)
            {
                return(new Response {
                    IsSuccess = false, Message = Mensaje.Excepcion
                });
            }
        }