how can I save data inside a table c #

0

How can I save data within a table according to the condition?

this in my code:

 List<USUARIO> usuarioList = new List<USUARIO>();  //instanciar la tabla usuario
            int numDía = 0;
            DateTime diaAnterior = DateTime.Now.AddDays(-1);  //resta un dia 
            numDía = (int)diaAnterior.DayOfWeek;
            string CantidadHorasRegistroString = System.Configuration.ConfigurationManager.AppSettings["CantidadHorasRegistro"].ToString();
            int CantidadHorasRegistro = Convert.ToInt32(CantidadHorasRegistroString);

            if (numDía == (int)DayOfWeek.Saturday)
            {
                diaAnterior = diaAnterior.AddDays(-1);  // si es sabado resta un dia
            }
            else if (numDía == (int)DayOfWeek.Sunday) 
            {
                diaAnterior = diaAnterior.AddDays(-2); //si es lunes resta dos dias
            }            

            using (var db = new Entities()) //conexion
            {

                usuarioList = db.USUARIOs.Where(rr => rr.INDICADOR_REGISTRO == true).ToList(); //todos los usuarios que tienen el indicador = 0

                foreach (var usuario in usuarioList) // repite instrucciones 
                {
                    List<PP_REGISTRO_ESFUERZO> registroEsfuerzo = new List<PP_REGISTRO_ESFUERZO>();
                    decimal horasRegistro = 0;

                    registroEsfuerzo = usuario.PP_REGISTRO_ESFUERZO.Where(rr => (rr.FECHA_HORA_REGISTRO.Day == diaAnterior.Day) && (rr.FECHA_HORA_REGISTRO.Month == diaAnterior.Month) && (rr.FECHA_HORA_REGISTRO.Year == diaAnterior.Year)).ToList();

                    if (registroEsfuerzo.Count() == 0)
                    {
                        // enviar correo



                    }

In the IF, I need to fulfill that condition to save the user's mail inside a table called PP_MAIL_SYSTEM

    
asked by user72356 22.01.2018 в 15:08
source

1 answer

1

solved This is the code you use in case someone needs it.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DAO;
using DAO.Helpers;
using System.Configuration;
using DAO.util;
using System.Data.Entity.Validation;

namespace jobAlertaRegistroEsfuerzo
{
    class alertaRegistroEsfuerzo
    {
        static void Main(string[] args)
        {

            List<USUARIO> usuarioList = new List<USUARIO>();  //instanciar la tabla usuario
            int numDía = 0;
            DateTime diaAnterior = DateTime.Now.AddDays(-1);  //resta un dia 
            numDía = (int)diaAnterior.DayOfWeek;
            string CantidadHorasRegistroString = System.Configuration.ConfigurationManager.AppSettings["CantidadHorasRegistro"].ToString();
            int CantidadHorasRegistro = Convert.ToInt32(CantidadHorasRegistroString);

            if (numDía == (int)DayOfWeek.Saturday)
            {
                diaAnterior = diaAnterior.AddDays(-1);  // si es sabado resta un dia
            }
            else if (numDía == (int)DayOfWeek.Sunday) 
            {
                diaAnterior = diaAnterior.AddDays(-2); //si es lunes resta dos dias
            }


            Encoding encoding = Encoding.GetEncoding("iso-8859-1");
            string mailWarning = String.Empty;
            string tagHora = ConfigurationManager.AppSettings["tagHora"].ToString();
            string tagDia = ConfigurationManager.AppSettings["tagDia"].ToString();

            string fileNameServiceDesk = ConfigurationManager.AppSettings["fileNameServiceDesk"].ToString();
            string dirLog = ConfigurationManager.AppSettings["dirLog"].ToString();
            string fileLog = ConfigurationManager.AppSettings["fileLog"].ToString();
            string fileData = String.Empty;
            string sHash = DateTime.Now.ToString("yyyyMMdd_HHmmss_");
            string line = String.Empty;
            string fileNameServiceDeskFullPath = System.IO.Path.GetFullPath(fileNameServiceDesk); 

            fileLog = dirLog + sHash + fileLog;
            fileData = dirLog + sHash + fileNameServiceDesk;  

            /*  Relative Path */
            string fileNameMailWarning = ConfigurationManager.AppSettings["fileNameMailWarning"].ToString();

            using (var db = new Entities()) //conexion
            {

                usuarioList = db.USUARIOs.Where(rr => rr.INDICADOR_REGISTRO == true).ToList(); //todos los usuarios que tienen el indicador = 1

                foreach (var usuario in usuarioList) // repite instrucciones 
                {
                    List<PP_REGISTRO_ESFUERZO> registroEsfuerzo = new List<PP_REGISTRO_ESFUERZO>();
                    decimal horasRegistro = 0;

                    registroEsfuerzo = usuario.PP_REGISTRO_ESFUERZO.Where(rr => (rr.FECHA_HORA_REGISTRO.Day == diaAnterior.Day) && (rr.FECHA_HORA_REGISTRO.Month == diaAnterior.Month) && (rr.FECHA_HORA_REGISTRO.Year == diaAnterior.Year)).ToList();

                    PP_MAIL_SISTEMA mailSistema = new PP_MAIL_SISTEMA();

                    try
                    {

                        mailWarning = System.IO.File.ReadAllText(fileNameMailWarning, encoding);

                    }
                    catch (Exception ex)
                    {
                        utilLog.writeLog(dirLog, fileLog, "Obteniendo templates", ex.Message, true);

                        return;
                    }

                    //To send mail
                    string mailBody = mailWarning;


                    mailBody = mailBody.Replace(tagHora, CantidadHorasRegistroString);
                    mailBody = mailBody.Replace(tagDia, diaAnterior.ToString("dd/MM/yyyy"));

                    if (registroEsfuerzo.Count() == 0)
                    {

                        mailSistema.ID_USUARIO = usuario.ID_USUARIO;
                        mailSistema.PARA_MAIL_SISTEMA = usuario.CORREO;
                        mailSistema.ASUNTO_MAIL_SISTEMA = null;
                        mailSistema.BODY_MAIL_SISTEMA = mailBody;
                        mailSistema.CC_MAIL_SISTEMA = null;
                        mailSistema.FECHA_ENVIO_MAIL_SISTEMA = null;
                        mailSistema.FECHA_REGISTRO_MAIL_SISTEMA = DateTime.Now;

                        db.PP_MAIL_SISTEMA.Add(mailSistema);
                        // enviar correo
                    }
                    else
                    {
                        horasRegistro = registroEsfuerzo.Sum(rr => rr.HORA_REGISTRO);

                        if (horasRegistro < CantidadHorasRegistro)
                        {

                            mailSistema.ID_USUARIO = usuario.ID_USUARIO;
                            mailSistema.PARA_MAIL_SISTEMA = usuario.CORREO;
                            mailSistema.ASUNTO_MAIL_SISTEMA = null;
                            mailSistema.BODY_MAIL_SISTEMA = mailBody;
                            mailSistema.CC_MAIL_SISTEMA = null;
                            mailSistema.FECHA_ENVIO_MAIL_SISTEMA = null;
                            mailSistema.FECHA_REGISTRO_MAIL_SISTEMA = DateTime.Now;

                            db.PP_MAIL_SISTEMA.Add(mailSistema);                          
                        }

                    }
                }

                string logError = string.Empty;

                try
                {
                    db.SaveChanges(); // guarda registro
                }
                catch (DbEntityValidationException ex)
                {
                    // Retrieve the error messages as a list of strings.

                    var errorMessages = ex.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage);

                    // Join the list to a single string.

                    var fullErrorMessage = string.Join("; ", errorMessages);
                    //isError = true;
                    // raise a new exception nesting  
                    // the current instance as InnerException  
                    logError += ex.Message + ",";
                    // Combine the original exception message with the new one.

                    var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                    // Throw a new DbEntityValidationException with the improved exception message.

                    throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
                }





            }

        }
    }
}
    
answered by 09.02.2018 / 19:06
source