Example #1
0
        private Response Existe(ActivarPersonalTalentoHumano activarPersonalTalentoHumano)
        {
            var Respuesta = db.ActivarPersonalTalentoHumano.Where(p =>

                                                                  p.IdDependencia == activarPersonalTalentoHumano.IdDependencia &&
                                                                  p.Fecha.Year == activarPersonalTalentoHumano.Fecha.Year

                                                                  ).FirstOrDefault();

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

            return(new Response
            {
                IsSuccess = false,
                Resultado = Respuesta,
            });
        }
Example #2
0
        public async Task <Response> InsertarActivacionesPersonalTalentoHumano([FromBody] ListaActivarPersonalTalentoHumanoViewModel listaRecibida)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                List <Response> correoResponse = new List <Response>();

                try
                {
                    var resultadoMensaje = "";
                    var lista            = listaRecibida.listaAPTHVM;
                    var hoy    = DateTime.Now.ToString("dd/MM/yyyy");
                    int estado = 0;


                    if (!ModelState.IsValid)
                    {
                        return(new Response
                        {
                            IsSuccess = false,
                            Message = ""
                        });
                    }



                    for (int i = 0; i < lista.Count; i++)
                    {
                        if (lista.ElementAt(i).Nombre != null)
                        {
                            var activarPersonalTalentoHumano = new ActivarPersonalTalentoHumano();

                            activarPersonalTalentoHumano.IdDependencia = lista.ElementAt(i).IdDependencia;
                            activarPersonalTalentoHumano.Fecha         = DateTime.Parse(hoy);

                            if (lista.ElementAt(i).Estado == false)
                            {
                                estado = Convert.ToInt32(Constantes.ActivacionPersonalValorDesactivado);
                            }
                            else
                            {
                                estado = Convert.ToInt32(Constantes.ActivacionPersonalValorActivado);
                            }

                            activarPersonalTalentoHumano.Estado = estado;

                            Response response = Existe(activarPersonalTalentoHumano);



                            if (!response.IsSuccess && estado == Convert.ToInt32(Constantes.ActivacionPersonalValorActivado))
                            {
                                var empleado = await GetJefePorDependencia(activarPersonalTalentoHumano.IdDependencia);

                                if (empleado != null && empleado.IdEmpleado > 0)
                                {
                                    var correo = empleado.Persona.CorreoPrivado;
                                    correoResponse.Add(await EnviarMailDesdeCorreoTalentohumano(correo, empleado.Dependencia.Nombre));

                                    db.ActivarPersonalTalentoHumano.Add(activarPersonalTalentoHumano);
                                    await db.SaveChangesAsync();
                                }
                                else
                                {
                                    correoResponse.Add(new Response
                                    {
                                        IsSuccess = false,
                                        Message   = Mensaje.DependenciaSinJefe + " " + lista.ElementAt(i).Nombre
                                    }

                                                       );
                                }
                            }
                            else
                            {
                                var actualizar = await db.ActivarPersonalTalentoHumano
                                                 .Where(apt =>
                                                        apt.IdActivarPersonalTalentoHumano == Convert.ToInt32(response.Resultado)
                                                        ).FirstOrDefaultAsync();

                                if (
                                    response.IsSuccess &&
                                    actualizar.Estado == Convert.ToInt32(Constantes.ActivacionPersonalValorDesactivado) &&
                                    estado == Convert.ToInt32(Constantes.ActivacionPersonalValorActivado)
                                    )
                                {
                                    actualizar.Estado = Convert.ToInt32(Constantes.ActivacionPersonalValorActivado);

                                    var empleado = await GetJefePorDependencia(activarPersonalTalentoHumano.IdDependencia);


                                    if (empleado != null && empleado.IdEmpleado > 0)
                                    {
                                        var correo = empleado.Persona.CorreoPrivado;
                                        correoResponse.Add(await EnviarMailDesdeCorreoTalentohumano(correo, empleado.Dependencia.Nombre));

                                        db.ActivarPersonalTalentoHumano.Update(actualizar);
                                        await db.SaveChangesAsync();
                                    }
                                    else
                                    {
                                        correoResponse.Add(new Response
                                        {
                                            IsSuccess = false,
                                            Message   = Mensaje.DependenciaSinJefe + " " + lista.ElementAt(i).Nombre
                                        }

                                                           );
                                    }
                                }
                            }
                        }
                    }

                    for (int k = 0; k < correoResponse.Count; k++)
                    {
                        if (correoResponse.ElementAt(k).IsSuccess == false)
                        {
                            if (resultadoMensaje.Length < 1)
                            {
                                resultadoMensaje = Mensaje.ErrorCorreo + ", " + correoResponse.ElementAt(k).Message;
                            }
                            else
                            {
                                resultadoMensaje = resultadoMensaje + ", " + correoResponse.ElementAt(k).Message + "\n";
                            }
                        }
                    }


                    transaction.Commit();

                    return(new Response
                    {
                        IsSuccess = true,
                        Message = Mensaje.CorreoSatisfactorio,
                        Resultado = resultadoMensaje
                    });
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = correoResponse.Last().Message,
                    });
                }
            }
        }