/// <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; } }
/// <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); }