private Response Existe(ConfiguracionViatico ConfiguracionViatico)
        {
            var bdd  = ConfiguracionViatico.IdRolPuesto;
            var bdd1 = ConfiguracionViatico.ValorEntregadoPorDia;
            var bdd2 = ConfiguracionViatico.PorCientoAjustificar;


            var ConfiguracionViaticorespuesta = db.ConfiguracionViatico.Where(p => p.IdRolPuesto == bdd &&
                                                                              p.PorCientoAjustificar == bdd2 &&
                                                                              p.ValorEntregadoPorDia == bdd1).FirstOrDefault();

            if (ConfiguracionViaticorespuesta != null)
            {
                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.ExisteRegistro,
                    Resultado = ConfiguracionViaticorespuesta,
                });
            }

            return(new Response
            {
                IsSuccess = false,
                Resultado = ConfiguracionViaticorespuesta,
            });
        }
        private async Task Actualizar(ConfiguracionViatico configuracionViatico)
        {
            var escalaevatotal = db.ConfiguracionViatico.Find(configuracionViatico.IdConfiguracionViatico);

            escalaevatotal.IdDependencia        = configuracionViatico.IdDependencia;
            escalaevatotal.ValorEntregadoPorDia = configuracionViatico.ValorEntregadoPorDia;
            escalaevatotal.PorCientoAJustificar = configuracionViatico.PorCientoAJustificar;
            db.ConfiguracionViatico.Update(escalaevatotal);
            await db.SaveChangesAsync();
        }
        public async Task <IActionResult> Create(ConfiguracionViatico configuracionViatico)
        {
            if (!ModelState.IsValid)
            {
                InicializarMensaje(null);
                return(View(configuracionViatico));
            }


            Response response = new Response();

            try
            {
                response = await apiServicio.InsertarAsync(configuracionViatico,
                                                           new Uri(WebApp.BaseAddress),
                                                           "api/ConfiguracionesViaticos/InsertarConfiguracionViatico");

                if (response.IsSuccess)
                {
                    var responseLog = await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                    {
                        ApplicationName      = Convert.ToString(Aplicacion.WebAppTh),
                        ExceptionTrace       = null,
                        Message              = "Se ha creado una configuración de viático",
                        UserName             = "******",
                        LogCategoryParametre = Convert.ToString(LogCategoryParameter.Create),
                        LogLevelShortName    = Convert.ToString(LogLevelParameter.ADV),
                        EntityID             = string.Format("{0} {1}", "Configuración Viático:", configuracionViatico.IdConfiguracionViatico),
                    });

                    return(RedirectToAction("Index"));
                }

                ViewData["Error"]       = response.Message;
                ViewData["IdRolPuesto"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(await apiServicio.Listar <RolPuesto>(new Uri(WebApp.BaseAddress), "api/RolesPuesto/ListarRolesPuesto"), "IdRolPuesto", "Nombre");
                //ViewData["IdDependencia"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(await apiServicio.Listar<Dependencia>(new Uri(WebApp.BaseAddress), "api/Dependencia/ListarDependencia"), "IdDependencia", "Nombre");
                return(View(configuracionViatico));
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.WebAppTh),
                    Message              = "Creando Configuración Viático",
                    ExceptionTrace       = ex.Message,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Create),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    UserName             = "******"
                });

                return(BadRequest());
            }
        }
        public async Task <Response> PostConfiguracionViatico([FromBody] ConfiguracionViatico ConfiguracionViatico)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = ""
                    });
                }

                var respuesta = Existe(ConfiguracionViatico);
                if (!respuesta.IsSuccess)
                {
                    db.ConfiguracionViatico.Add(ConfiguracionViatico);
                    await db.SaveChangesAsync();

                    return(new Response
                    {
                        IsSuccess = true,
                        Message = Mensaje.Satisfactorio
                    });
                }

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.ExisteRegistro
                });
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.SwTH),
                    ExceptionTrace       = ex,
                    Message              = Mensaje.Excepcion,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    UserName             = "",
                });

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error,
                });
            }
        }
        public async Task <IActionResult> Edit(string id, ConfiguracionViatico configuracionViatico)
        {
            Response response = new Response();

            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    response = await apiServicio.EditarAsync(id, configuracionViatico, new Uri(WebApp.BaseAddress),
                                                             "api/ConfiguracionesViaticos");

                    if (response.IsSuccess)
                    {
                        await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                        {
                            ApplicationName      = Convert.ToString(Aplicacion.WebAppTh),
                            EntityID             = string.Format("{0} : {1}", "Configuración Viático", id),
                            LogCategoryParametre = Convert.ToString(LogCategoryParameter.Edit),
                            LogLevelShortName    = Convert.ToString(LogLevelParameter.ADV),
                            Message  = "Se ha actualizado una configuración de viático",
                            UserName = "******"
                        });

                        return(RedirectToAction("Index"));
                    }
                    ViewData["Error"]       = response.Message;
                    ViewData["IdRolPuesto"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(await apiServicio.Listar <RolPuesto>(new Uri(WebApp.BaseAddress), "api/RolesPuesto/ListarRolesPuesto"), "IdRolPuesto", "Nombre");
                    //ViewData["IdDependencia"] = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(await apiServicio.Listar<Dependencia>(new Uri(WebApp.BaseAddress), "api/Dependencia/ListarDependencia"), "IdDependencia", "Nombre");
                    return(View(configuracionViatico));
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.WebAppTh),
                    Message              = "Editando una configuración de viático",
                    ExceptionTrace       = ex.Message,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Edit),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    UserName             = "******"
                });

                return(BadRequest());
            }
        }
        private Response Existe(ConfiguracionViatico ConfiguracionViatico)
        {
            var ConfiguracionViaticorespuesta = db.ConfiguracionViatico.Where(p => p.IdDependencia == ConfiguracionViatico.IdDependencia &&
                                                                              p.PorCientoAJustificar == ConfiguracionViatico.PorCientoAJustificar &&
                                                                              p.ValorEntregadoPorDia == ConfiguracionViatico.ValorEntregadoPorDia).FirstOrDefault();

            if (ConfiguracionViaticorespuesta != null)
            {
                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.ExisteRegistro,
                    Resultado = ConfiguracionViaticorespuesta,
                });
            }

            return(new Response
            {
                IsSuccess = false,
                Resultado = ConfiguracionViaticorespuesta,
            });
        }
        public async Task <Response> PutConfiguracionViatico([FromRoute] int id, [FromBody] ConfiguracionViatico ConfiguracionViatico)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.ModeloInvalido
                    });
                }


                var existe = Existe(ConfiguracionViatico);
                var ConfiguracionViaticoActualizar = (ConfiguracionViatico)existe.Resultado;

                if (existe.IsSuccess)
                {
                    if (ConfiguracionViaticoActualizar.IdConfiguracionViatico == ConfiguracionViatico.IdConfiguracionViatico)
                    {
                        if (ConfiguracionViatico.IdDependencia == ConfiguracionViaticoActualizar.IdDependencia &&
                            ConfiguracionViatico.ValorEntregadoPorDia == ConfiguracionViaticoActualizar.ValorEntregadoPorDia &&
                            ConfiguracionViatico.PorCientoAJustificar == ConfiguracionViaticoActualizar.PorCientoAJustificar)
                        {
                            return(new Response
                            {
                                IsSuccess = true,
                            });
                        }

                        await Actualizar(ConfiguracionViatico);

                        return(new Response
                        {
                            IsSuccess = true,
                            Message = Mensaje.Satisfactorio,
                        });
                    }
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.ExisteRegistro,
                    });
                }

                await Actualizar(ConfiguracionViatico);

                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.Satisfactorio,
                });
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.SwTH),
                    ExceptionTrace       = ex,
                    Message              = Mensaje.Excepcion,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    UserName             = "",
                });

                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.Excepcion,
                });
            }
        }