// POST: api/Recordatorios
        //[ResponseType(typeof(Recordatorio))]
        //public IHttpActionResult PostRecordatorios(Recordatorio recordatorio)
        //{
        //    if (!ModelState.IsValid)
        //    {
        //        return BadRequest(ModelState);
        //    }
        //    recordatorio.Rcd_Enviado = (recordatorio.Rcd_Enviado == null) ? false : recordatorio.Rcd_Enviado;
        //    recordatorio.Rcd_Listado = (recordatorio.Rcd_Listado == null) ? false : recordatorio.Rcd_Listado;
        //    recordatorio.Rcd_Hora = 15;
        //    recordatorio.Rcd_Minuto = 0;
        //    db.Recordatorio.Add(recordatorio);
        //    db.SaveChanges();

        //    return CreatedAtRoute("DefaultApi", new { id = recordatorio.Rcd_Id }, recordatorio);
        //}

        //Construir el correo
        public async static Task CorreoRecordatorio(string title, string body, int recordarorio_id)
        {
            GestionsController gestionController = new GestionsController();

            SmtpClient client = new SmtpClient();

            client.UseDefaultCredentials = false;
            client.Credentials           = new NetworkCredential("*****@*****.**", "casasred123");
            client.Port      = 587;
            client.Host      = "smtp.gmail.com";
            client.EnableSsl = true;
            MailMessage mail = new MailMessage();

            mail.From = new MailAddress("*****@*****.**");
            mail.To.Add("*****@*****.**");
            mail.Subject    = "Casas Red Recordatorio - " + title;
            mail.IsBodyHtml = true;
            mail.Body       = body + "\n" + "<a href=\"https://www.casasredposventa.com\">Casas Red Posventa</a>";

            try
            {
                await client.SendMailAsync(mail);

                gestionController.UpdateCorreo(recordarorio_id);
            }
            catch (SmtpException x)
            {
                Console.Write(x.InnerException.Message);
            }
        }
        public IHttpActionResult PostCliente(Cliente cliente)
        {
            int    cliente_id, corretaje_id;
            string correo, telefono;

            //Objeto de Gestion
            var gestion_controller = new GestionsController();

            //Objeto Verificacion
            var verificacion_controller = new VerificacionsController();

            //Correo
            var correo_controller = new CorreoController();

            //SMS
            var sms_controller = new SmsController();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Cliente.Add(cliente);
            db.SaveChanges();

            //Tomar valores
            cliente_id   = cliente.Id;
            corretaje_id = cliente.Id_Corretaje.Value; //Preguntar si lo dejo así o corretaje_id = cliente.Id_Corretaje.HasValue ? cliente.Id_Corretaje.Value:0
            //telefono = cliente.Gral_Celular.ToString();
            //correo = cliente.Gral_Correo;

            //Funciones
            gestion_controller.CreateGestions(cliente_id, corretaje_id);
            verificacion_controller.CreateVerificacions(cliente_id);
            //sms_controller.SendSms(telefono); Estan comentadas porque cuestan dinero xd
            //correo_controller.sendmail(correo);

            return(CreatedAtRoute("DefaultApi", new { id = cliente.Id }, cliente));
        }
        public IHttpActionResult PostCliente(Cliente cliente)
        {
            int    cliente_id, corretaje_id;
            string correo, telefono;

            //Obtener los correos de los usuarios de hablitacion y contaduria
            var usuarios = (from usu in db.Usuario where usu.usu_tipo == "2" || usu.usu_tipo == "6" select new { usu.usu_correo }).ToArray();

            //Objeto de Gestion
            var gestion_controller = new GestionsController();

            //Objeto Verificacion
            var verificacion_controller = new VerificacionsController();

            //Correo
            var correo_controller = new CorreoController();

            //SMS
            var sms_controller = new SmsController();

            //Folio
            var foliogenerado = ValidarFolioDuplicado();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            cliente.Gral_Fechaalta = DateTime.Now;
            cliente.Grlal_Folio    = foliogenerado;

            db.Cliente.Add(cliente);
            db.SaveChanges();

            //Tomar valores
            cliente_id   = cliente.Id;
            corretaje_id = cliente.Id_Corretaje.Value; //Preguntar si lo dejo así o corretaje_id = cliente.Id_Corretaje.HasValue ? cliente.Id_Corretaje.Value:0
                                                       //telefono = cliente.Gral_Celular.ToString();
                                                       //correo = cliente.Gral_Correo;

            correo = cliente.Gral_Correo;

            //Actualizar status de la casa
            if (cliente.Id_Corretaje != null)
            {
                Corretaje cr = db.Corretaje.Find(cliente.Id_Corretaje);
                cr.Crt_Status = "Venta";
                db.SaveChanges();
            }

            //Funciones
            gestion_controller.CreateGestions(cliente_id, corretaje_id);
            verificacion_controller.CreateVerificacions(cliente_id);
            //sms_controller.SendSms(telefono); Estan comentadas porque cuestan dinero xd

            //Llamado de función para enviar correo
            if (cliente.Gral_Correo != null || cliente.Gral_Correo != "")
            {
                correo_controller.sendmail(correo);
            }

            //Enviar correo de alta de casa a los demás departamentos
            foreach (var item in usuarios)
            {
                if (item != null)
                {
                    correo_controller.sendMailGestion(item.usu_correo);
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = cliente.Id }, cliente));
        }