Пример #1
0
 /// <summary>
 /// Notifica si el usuario cerrò sesiòn desde el dispositivo
 /// </summary>
 /// <param name="UsuarioId">Usuario</param>
 /// <param name="Logged">Estatus de login</param>
 public static mUsuarios PostSession(int UsuarioId, bool Logged)
 {
     try
     {
         var _usr = new mUsuarios();
         using (var db = new SaptraEntities())
         {
             var user = (from usr in db.mUsuarios
                         where usr.cEstatus1.NombreEstatus == Globals.EST_ACTIVO &&
                         usr.UsuarioId == UsuarioId &&
                         Globals.CAT_TIPO_FIGURA.Contains(usr.cTipoFiguras1.DescripcionTipoFigura)
                         select usr).FirstOrDefault();
             if (user != null)
             {
                 user.LoggedUsuario = Logged;
                 db.SaveChanges();
                 _usr = user;
                 db.Configuration.LazyLoadingEnabled   = false;
                 db.Configuration.ProxyCreationEnabled = false;
             }
         }
         return(_usr);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #2
0
        /// <summary>
        /// Post de CheckIns recibidos desde el móvil
        /// </summary>
        /// <param name="checks">Lista de checkins a sincronizar</param>
        /// <returns>Lista de checkins sincronizados</returns>
        public static List <LecturaCertificado> PostCheckIns(List <LecturaCertificado> checks)
        {
            try
            {
                if (checks.Count() > 0)
                {
                    using (var db = new SaptraEntities())
                    {
                        foreach (var obj in checks)
                        {
                            //Validar si checkin ya ha sido enviado anteriormente
                            var existe_checkin = db.mCheckIn.Where(x => x.UsuarioCreacionId == obj.CheckIn.UsuarioCreacionId &&
                                                                   x.DetallePlanId == obj.CheckIn.dDetallePlanSemanal.DetallePlanId &&
                                                                   x.UUID.Equals(obj.CheckIn.UUID)).FirstOrDefault();
                            if (existe_checkin != null)
                            {
                                obj.CheckIn.State     = "S";
                                obj.CheckIn.ImageData = "";
                                obj.CheckIn.CheckInId = existe_checkin.CheckInId.ToString();
                                obj.State             = "S";
                                var Certificado = db.mLecturaCertificados.Where(x => x.CheckInId == existe_checkin.CheckInId).FirstOrDefault();
                                obj.LecturaCertificadoId = Certificado != null ? Certificado.LecturaCertificadoId : 0;
                                continue;
                            }

                            var new_check = new mCheckIn()
                            {
                                FechaCreacion     = DateTime.Parse(obj.CheckIn.FechaCreacion),
                                UsuarioCreacionId = obj.CheckIn.UsuarioCreacionId,
                                Coordenadas       = obj.CheckIn.Coordenadas,
                                DetallePlanId     = obj.CheckIn.dDetallePlanSemanal.DetallePlanId,
                                Incidencias       = obj.CheckIn.Incidencias,
                                FotoIncidencia    = Globals.PathImage(obj.CheckIn.ImageData),
                                UUID = obj.CheckIn.UUID
                            };
                            db.mCheckIn.Add(new_check);
                            db.SaveChanges();
                            if (new_check.CheckInId > 0)
                            {
                                obj.CheckIn.ImageData = "";
                                obj.CheckIn.State     = "S";
                                obj.CheckIn.CheckInId = new_check.CheckInId.ToString();
                                if (obj.UUID.ToString().Equals(obj.CheckIn.UUID))
                                {
                                    var new_certificado = new mLecturaCertificados()
                                    {
                                        FechaCreacion     = DateTime.Parse(obj.FechaCreacion),
                                        UsuarioCreacionId = obj.UsuarioCreacionId,
                                        FolioCertificado  = obj.FolioCertificado,
                                        CheckInId         = new_check.CheckInId,
                                        EstatusId         = 5,
                                        UUID = obj.UUID
                                    };
                                    db.mLecturaCertificados.Add(new_certificado);
                                    db.SaveChanges();
                                    if (new_certificado.LecturaCertificadoId > 0)
                                    {
                                        obj.State = "S";
                                        obj.LecturaCertificadoId = new_certificado.LecturaCertificadoId;

                                        //Insertar en mysql
                                        var user = db.mUsuarios.Where(u => u.UsuarioId == new_certificado.UsuarioCreacionId).FirstOrDefault();
                                        if (user != null)
                                        {
                                            //Se insenta insertar en Mysql, el resultado del intento se actualiza en la entidad
                                            bool _insert      = MySQLDB.PostCheckIn(new_certificado.FolioCertificado, user.RFCUsuario);
                                            var  _certificado = db.mLecturaCertificados.Where(s => s.LecturaCertificadoId == new_certificado.LecturaCertificadoId).FirstOrDefault();
                                            _certificado.SincronizadoMySQL = _insert;
                                            db.SaveChanges();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(checks);
        }