public void RegistrarIngresoVisitante(Permiso permiso, string observaciones) { var visitante = _personaDal.ObtenerVisitantes().FirstOrDefault(v => v.IdPersona == permiso.IdVisitante); if (visitante == null) { return; } using (var transaccion = new TransactionScope()) { var permisoAModificar = ObtenerPermisoPorId(permiso.IdPermiso); permisoAModificar.Estado = "A"; permisoAModificar.Accesos.Add(new Acceso { FechaAcceso = DateTime.Now.ToUniversalTime().AddHours(-5), IdPermiso = permiso.IdPermiso, Observaciones = observaciones }); _dal.ActualizarPermiso(permisoAModificar); _notificacionDal.CrearNotificacion(new Notificacion { Fecha = DateTime.Now.ToUniversalTime().AddHours(-5), IdResidente = permisoAModificar.IdResidente, Tipo = "I", Mensaje = string.Format("Acaba de ingresar {0} a las {1}", visitante.NombreCompleto, DateTime.Now.ToUniversalTime().AddHours(-5).ToString("T")) }); transaccion.Complete(); } var dispositivos = _drvDal.ObtenerDrvsConDispositivos().Where(drv => drv.IdResidente == permiso.IdResidente && drv.Estado == "A").Select(drv => drv.Dispositivo).Distinct(); foreach (var dispositivo in dispositivos) { EnviarNotificacion(dispositivo.Token, string.Format("Acaba de ingresar {0} a las {1}", visitante.NombreCompleto, DateTime.Now.ToUniversalTime().AddHours(-5).ToString("T")), "Visitante Ingresó"); } }
public void RegistrarIngresoVisitanteManual(PermisoManual permisoManual) { using (var transaccion = new TransactionScope()) { permisoManual.FechaIngreso = DateTime.Now.ToUniversalTime().AddHours(-5); _dal.CrearPermisoManual(permisoManual); _notificacionDal.CrearNotificacion(new Notificacion { Fecha = DateTime.Now.ToUniversalTime().AddHours(-5), IdResidente = permisoManual.IdResidente, Tipo = "I", Mensaje = string.Format("Acaba de ingresar {0} a las {1}", permisoManual.NombreVisitante, permisoManual.FechaIngreso.ToString("T")) }); transaccion.Complete(); } var dispositivos = _drvDal.ObtenerDrvsConDispositivos().Where(drv => drv.IdResidente == permisoManual.IdResidente && drv.Estado == "A").Select(drv => drv.Dispositivo).Distinct(); foreach (var dispositivo in dispositivos) EnviarNotificacion(dispositivo.Token,string.Format("Acaba de ingresar {0} a las {1}",permisoManual.NombreVisitante,permisoManual.FechaIngreso.ToString("T")),"Visitante Ingresó"); }
public void EnviarNotificacionesMasivas(string texto, int idCiudadela) { var drvs = _dal.ObtenerDrvsConDispositivosYViviendas().Where(drv => drv.Vivienda.IdCiudadela == idCiudadela); var idResidentesEnviados = new List <int>(); foreach (var drv in drvs) { if (!idResidentesEnviados.Contains(drv.IdResidente)) { _notificacionDal.CrearNotificacion(new Notificacion { Fecha = DateTime.Now.ToUniversalTime().AddHours(-5), IdResidente = drv.IdResidente, Tipo = "M", Mensaje = string.Format("{0}", texto) }); idResidentesEnviados.Add(drv.IdResidente); } EnviarNotificacion(drv.Dispositivo.Token, string.Format("{0}", texto), "Aviso Masivo"); } }