예제 #1
0
        private void GeneraCorreo(int idTicket, int idGrupoUsuario, int idUsuario, string correoUsuario, bool antesVencimiento, string mensaje, ParametrosGenerales parametros)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                if (db.TicketNotificacion.Count(c => c.IdTicket == idTicket && c.IdGrupoUsuario == idGrupoUsuario && c.CorreoUsuario == correoUsuario) < parametros.MensajesNotificacion)
                {
                    TicketNotificacion lastNotificacion = db.TicketNotificacion.Where(w => w.IdTicket == idTicket && w.IdGrupoUsuario == idGrupoUsuario && w.CorreoUsuario == correoUsuario).ToList().LastOrDefault();
                    if (lastNotificacion != null)
                    {
                        if (DateTime.Now >= lastNotificacion.FechaNotificacion.AddMinutes(parametros.FrecuenciaNotificacionMinutos))
                        {
                            TicketNotificacion tn = new TicketNotificacion
                            {
                                IdTicket           = idTicket,
                                IdGrupoUsuario     = idGrupoUsuario,
                                IdUsuario          = idUsuario,
                                CorreoUsuario      = correoUsuario,
                                IdTipoNotificacion = (int)BusinessVariables.EnumeradoresKiiniNet.EnumTipoNotificacion.Correo,
                                FechaNotificacion  = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture)
                            };
                            db.TicketNotificacion.AddObject(tn);
                            db.SaveChanges();
                            BusinessCorreo.SendMail(correoUsuario,
                                                    string.Format("{0}", antesVencimiento ? "Ticket apunto de vencer" : "Ticket ha vencido"),
                                                    mensaje);
                        }
                    }
                    else
                    {
                        TicketNotificacion tn = new TicketNotificacion
                        {
                            IdTicket           = idTicket,
                            IdGrupoUsuario     = idGrupoUsuario,
                            IdUsuario          = idUsuario,
                            CorreoUsuario      = correoUsuario,
                            IdTipoNotificacion = (int)BusinessVariables.EnumeradoresKiiniNet.EnumTipoNotificacion.Correo,
                            FechaNotificacion  =
                                DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"),
                                                    "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture)
                        };
                        db.TicketNotificacion.AddObject(tn);
                        db.SaveChanges();
                        BusinessCorreo.SendMail(correoUsuario,
                                                string.Format("{0}", antesVencimiento ? "Ticket apunto de vencer" : "Ticket ha vencido"),
                                                mensaje);
                    }
                }
            }
            catch
            {
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #2
0
        public void Actualizar(int idPuesto, Puesto puesto)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.LazyLoadingEnabled = true;
                Puesto pto = db.Puesto.SingleOrDefault(s => s.Id == idPuesto);
                if (pto == null)
                {
                    return;
                }
                pto.Descripcion = puesto.Descripcion.Trim().ToUpper();

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #3
0
        public string ActualizaSla()
        {
            StringBuilder        result = new StringBuilder();
            DataBaseModelContext db     = new DataBaseModelContext();

            try
            {
                List <int> enumEstatusExcluidos = new List <int>();
                enumEstatusExcluidos.Add((int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusTicket.Cerrado);
                enumEstatusExcluidos.Add((int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusTicket.Cancelado);
                enumEstatusExcluidos.Add((int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusTicket.EnEspera);
                enumEstatusExcluidos.Add((int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusTicket.ReTipificado);
                var ticketDentroSla = db.Ticket.Where(w => w.DentroSla && w.FechaTermino == null && w.FechaHoraFinProceso != null && !enumEstatusExcluidos.Contains(w.IdEstatusTicket));
                result.AppendLine(string.Format("Procesando {0} tickets ", ticketDentroSla.Count()));
                foreach (Ticket ticket in ticketDentroSla)
                {
                    ticket.DentroSla = DateTime.Now <= ticket.FechaHoraFinProceso;
                    result.AppendLine(string.Format("Ticket {0} {1} ", ticket.Id, ticket.DentroSla ? "Dentro SLA" : "Fuera SLA"));
                }
                db.SaveChanges();
            }
            catch (Exception e)
            {
                result.AppendLine("Error: " + e.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(result.ToString().Trim());
        }
예제 #4
0
        public void Guardar(Puesto puesto)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                puesto.Habilitado  = true;
                puesto.Descripcion = puesto.Descripcion.Trim();
                if (db.Puesto.Any(a => a.Descripcion == puesto.Descripcion && a.IdTipoUsuario == puesto.IdTipoUsuario))
                {
                    throw new Exception("Este Puesto ya existe.");
                }
                if (puesto.Id == 0)
                {
                    db.Puesto.AddObject(puesto);
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #5
0
        public void GuardarAreaAndroid(Area descripcion)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                //TODO: Cambiar habilitado por el embebido
                Area area = new Area();
                area.Habilitado  = true;
                area.Descripcion = descripcion.Descripcion.Trim();
                area.FechaAlta   = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                if (area.Id == 0)
                {
                    db.Area.AddObject(area);
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #6
0
        public void ActualizarTelefono(int idUsuario, int idTelefono, string numero)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                TelefonoUsuario telefono =
                    db.TelefonoUsuario.Single(
                        s =>
                        s.Id == idTelefono && s.IdUsuario == idUsuario &&
                        s.IdTipoTelefono == (int)BusinessVariables.EnumTipoTelefono.Celular);
                if (telefono != null)
                {
                    telefono.Numero = numero;
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #7
0
        public string TerminaCodigoVerificacionSms(int idUsuario, int idTipoNotificacion, int idTelefono, string codigo)
        {
            string result           = string.Empty;
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                TelefonoUsuario   telefono = db.TelefonoUsuario.Single(s => s.Id == idTelefono);
                List <SmsService> sms      = db.SmsService.Where(a => a.IdUsuario == idUsuario && a.Habilitado).ToList();
                foreach (SmsService mensaje in sms)
                {
                    mensaje.Habilitado = false;
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(result);
        }
예제 #8
0
        public void Actualizar(int idArea, Area area)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                if (db.Area.Any(a => a.Descripcion == area.Descripcion && a.Id != idArea))
                {
                    throw new Exception("Esta Area ya existe.");
                }
                db.ContextOptions.LazyLoadingEnabled = true;
                Area areaUpdate = db.Area.SingleOrDefault(s => s.Id == idArea);

                if (areaUpdate == null)
                {
                    return;
                }
                areaUpdate.Descripcion       = area.Descripcion.Trim();
                areaUpdate.Imagen            = area.Imagen;
                areaUpdate.FechaModificacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                areaUpdate.IdUsuarioModifico = area.IdUsuarioModifico;
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #9
0
        public void GuardarJefatura(Jefatura entidad)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                entidad.Descripcion = entidad.Descripcion.ToUpper();
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                //TODO: Cambiar habilitado por el embebido
                entidad.Habilitado = true;
                if (entidad.Id == 0)
                {
                    db.Jefatura.AddObject(entidad);
                }
                else
                {
                    Jefatura tmpJefatura = db.Jefatura.SingleOrDefault(s => s.Id == entidad.Id);
                    if (tmpJefatura == null)
                    {
                        return;
                    }
                    tmpJefatura.Descripcion = entidad.Descripcion;
                    tmpJefatura.Habilitado  = entidad.Habilitado;
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #10
0
        public void HabilitarGrupo(int idGrupo, bool habilitado)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                if (db.GrupoUsuario.Single(s => s.Id == idGrupo).IdTipoGrupo == (int)BusinessVariables.EnumTiposGrupos.Administrador)
                {
                    if (db.GrupoUsuario.Count(w => w.IdTipoGrupo == (int)BusinessVariables.EnumTiposGrupos.Administrador && w.Habilitado && w.Id != idGrupo && w.UsuarioGrupo.Count(ug => ug.IdGrupoUsuario == w.Id) > 0) <= 0)
                    {
                        throw new Exception("Debe tener otro usuario activo para este tipo de grupo.");
                    }
                }
                GrupoUsuario grpo = db.GrupoUsuario.SingleOrDefault(w => w.Id == idGrupo);
                if (grpo != null)
                {
                    grpo.Habilitado = habilitado;
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #11
0
        public void AutoAsignarTicket(int idTicket, int idUsuario)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                Ticket ticket = db.Ticket.SingleOrDefault(t => t.Id == idTicket);
                if (ticket != null)
                {
                    ticket.IdEstatusAsignacion = (int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusAsignacion.Autoasignado;
                    ticket.TicketAsignacion    = new List <TicketAsignacion> {
                        new TicketAsignacion
                        {
                            FechaAsignacion     = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                            IdEstatusAsignacion = (int)BusinessVariables.EnumeradoresKiiniNet.EnumEstatusAsignacion.Autoasignado,
                            IdUsuarioAsignado   = idUsuario,
                            IdUsuarioAsigno     = idUsuario,
                            IdTicket            = idTicket
                        }
                    };
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #12
0
        public void CrearMascara(Mascara mascara)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                mascara.NoCampos = mascara.CampoMascara.Count;
                foreach (CampoMascara campoMascara in mascara.CampoMascara)
                {
                    campoMascara.Descripcion      = campoMascara.Descripcion.Trim().ToUpper();
                    campoMascara.NombreCampo      = campoMascara.Descripcion.Trim().ToUpper().Replace(" ", "");
                    campoMascara.SimboloMoneda    = campoMascara.SimboloMoneda == null ? null : campoMascara.SimboloMoneda.Trim().ToUpper();
                    campoMascara.TipoCampoMascara = null;
                }
                mascara.NombreTabla       = (BusinessVariables.ParametrosMascaraCaptura.PrefijoTabla + mascara.Descripcion).Replace(" ", string.Empty);
                mascara.ComandoInsertar   = (BusinessVariables.ParametrosMascaraCaptura.PrefijoComandoInsertar + mascara.Descripcion).Replace(" ", string.Empty);
                mascara.ComandoActualizar = (BusinessVariables.ParametrosMascaraCaptura.PrefijoComandoActualizar + mascara.Descripcion).Replace(" ", string.Empty);
                mascara.Habilitado        = true;

                ExisteMascara(mascara);
                CrearEstructuraMascaraBaseDatos(mascara);
                db.Mascara.AddObject(mascara);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #13
0
        public void GuardarGrupoUsuario(GrupoUsuario grupoUsuario)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                grupoUsuario.Descripcion = grupoUsuario.Descripcion.Trim();
                if (db.GrupoUsuario.Any(a => a.Descripcion == grupoUsuario.Descripcion && a.IdTipoGrupo == grupoUsuario.IdTipoGrupo && a.IdTipoUsuario == grupoUsuario.IdTipoUsuario))
                {
                    throw new Exception("Ya existe un Grupo con esta descripcion");
                }
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                //TODO: Cambiar habilitado por el que viene embebido
                grupoUsuario.Habilitado      = true;
                grupoUsuario.TieneSupervisor = grupoUsuario.SubGrupoUsuario.Any(a => a.IdSubRol == (int)BusinessVariables.EnumSubRoles.Supervisor);
                if (grupoUsuario.Id == 0)
                {
                    grupoUsuario.EstatusTicketSubRolGeneral     = GeneraEstatusGrupoDefault(grupoUsuario);
                    grupoUsuario.EstatusAsignacionSubRolGeneral = GeneraEstatusAsignacionGrupoDefault(grupoUsuario);
                    db.GrupoUsuario.AddObject(grupoUsuario);
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #14
0
        public RolTipoUsuario ObtenerRolTipoUsuario(int idTipoUsuario, int idRol)
        {
            RolTipoUsuario       result;
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                result = db.RolTipoUsuario.SingleOrDefault(w => w.IdTipoUsuario == idTipoUsuario && w.IdRol == idRol && w.Rol.Habilitado);
                if (result == null)
                {
                    result = new RolTipoUsuario {
                        IdRol = idRol, IdTipoUsuario = idTipoUsuario
                    };
                    db.RolTipoUsuario.AddObject(result);
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(result);
        }
예제 #15
0
            public void ChangePassword(int idUsuario, string contrasenaActual, string contrasenaNueva)
            {
                DataBaseModelContext db = new DataBaseModelContext();

                try
                {
                    string  hashedPdw = SecurityUtils.CreateShaHash(contrasenaActual);
                    Usuario user      = db.Usuario.SingleOrDefault(w => w.Id == idUsuario);
                    if (user != null)
                    {
                        if (user.Password != hashedPdw)
                        {
                            throw new Exception("Contraseña actual incorrecta");
                        }
                        user.Password = SecurityUtils.CreateShaHash(contrasenaNueva);
                        db.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    db.Dispose();
                }
            }
예제 #16
0
        public void Actualizar(int idPuesto, Puesto puesto)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                if (db.Puesto.Any(a => a.Descripcion == puesto.Descripcion && a.IdTipoUsuario == puesto.IdTipoUsuario && a.Id != idPuesto))
                {
                    throw new Exception("Este Puesto ya existe.");
                }
                db.ContextOptions.LazyLoadingEnabled = true;
                Puesto pto = db.Puesto.SingleOrDefault(s => s.Id == idPuesto);

                if (pto == null)
                {
                    return;
                }
                pto.Descripcion = puesto.Descripcion.Trim();

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #17
0
        public void CrearDiasFestivos(DiasFeriados item)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                item.Descripcion = item.Descripcion;
                if (db.DiasFeriados.Any(a => a.Descripcion == item.Descripcion))
                {
                    throw new Exception("Ya Existe un grupo de Dias Con este Nombre.");
                }
                item.FechaAlta   = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                item.Descripcion = item.Descripcion.Trim();
                item.Habilitado  = true;
                foreach (DiasFeriadosDetalle detalle in item.DiasFeriadosDetalle)
                {
                    detalle.Descripcion = detalle.Descripcion.Trim();
                    detalle.Habilitado  = true;
                }
                db.DiasFeriados.AddObject(item);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #18
0
        public void CrearCatalogo(string nombreCatalogo, bool esMascara)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                nombreCatalogo = nombreCatalogo.Trim().ToUpper();
                Catalogos catalogo = new Catalogos {
                    Descripcion = nombreCatalogo
                };
                catalogo.Tabla            = (BusinessVariables.ParametrosCatalogo.PrefijoTabla + nombreCatalogo).Replace(" ", string.Empty);
                catalogo.EsMascaraCaptura = esMascara;
                catalogo.Habilitado       = true;
                ExisteMascara(catalogo.Tabla);
                CreaEstructuraBaseDatos(catalogo.Tabla);
                db.Catalogos.AddObject(catalogo);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #19
0
        public void ActualizarHorario(Horario horario)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.LazyLoadingEnabled   = true;
                db.ContextOptions.ProxyCreationEnabled = true;
                Horario dbHorario = db.Horario.SingleOrDefault(s => s.Id == horario.Id);
                if (dbHorario != null)
                {
                    dbHorario.Descripcion       = horario.Descripcion.Trim();
                    dbHorario.FechaModificacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                    if (db.Horario.Any(a => a.Descripcion == horario.Descripcion && a.Id != horario.Id))
                    {
                        throw new Exception("Ya existe un horario con esta descripción");
                    }
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #20
0
        public void GuardarEncuesta(Encuesta encuesta)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                encuesta.Descripcion = encuesta.Descripcion.ToUpper();
                //TODO: Cambiar habilitado por el embebido
                encuesta.Habilitado = true;
                if (encuesta.Id == 0)
                {
                    db.Encuesta.AddObject(encuesta);
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #21
0
        public void CambiarAsignacionTicket(int idTicket, int idEstatusAsignacion, int idUsuarioAsignado, int idUsuarioAsigna, string comentario)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                Ticket ticket = db.Ticket.SingleOrDefault(t => t.Id == idTicket);
                if (ticket != null)
                {
                    ticket.IdEstatusAsignacion = idEstatusAsignacion;
                    ticket.TicketAsignacion    = new List <TicketAsignacion> {
                        new TicketAsignacion
                        {
                            FechaAsignacion     = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                            IdEstatusAsignacion = idEstatusAsignacion,
                            IdUsuarioAsignado   = idUsuarioAsignado,
                            IdUsuarioAsigno     = idUsuarioAsigna,
                            IdTicket            = idTicket,
                            Comentarios         = comentario.Trim().ToUpper()
                        }
                    };
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #22
0
        public void CrearHorario(Horario horario)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                horario.Descripcion = horario.Descripcion.Trim();
                horario.FechaAlta   = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                horario.Habilitado  = true;
                if (db.Horario.Any(a => a.Descripcion == horario.Descripcion))
                {
                    throw new Exception("Ya existe un horario con esta descripción");
                }
                db.Horario.AddObject(horario);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #23
0
        public void ActualizarDiasFestivos(DiasFeriados item)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                item.Descripcion = item.Descripcion;
                if (db.DiasFeriados.Any(a => a.Descripcion == item.Descripcion && a.Id != item.Id))
                {
                    throw new Exception("Ya Existe un grupo de Dias Con este Nombre.");
                }
                DiasFeriados diadb = db.DiasFeriados.SingleOrDefault(s => s.Id == item.Id);
                if (diadb != null)
                {
                    diadb.Descripcion       = item.Descripcion;
                    diadb.FechaModificacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);

                    List <DiasFeriadosDetalle> diasEliminar = db.DiasFeriadosDetalle.Where(w => w.IdDiasFeriados == diadb.Id).ToList();
                    foreach (DiasFeriadosDetalle detalle in diasEliminar)
                    {
                        db.DiasFeriadosDetalle.DeleteObject(detalle);
                    }
                    diadb.DiasFeriadosDetalle = item.DiasFeriadosDetalle;

                    List <int> subgpos = db.DiaFestivoSubGrupo.Where(w => w.IdDiasFeriados == diadb.Id).Select(s => s.IdSubGrupoUsuario).ToList();
                    List <int> gpos    = db.SubGrupoUsuario.Where(w => subgpos.Contains(w.Id)).Select(s => s.IdGrupoUsuario).Distinct().ToList();

                    List <DiaFestivoSubGrupo> diasSgpoEliminar = db.DiaFestivoSubGrupo.Where(w => w.IdDiasFeriados == diadb.Id).ToList();
                    foreach (DiaFestivoSubGrupo diaEliminar in diasSgpoEliminar)
                    {
                        db.DiaFestivoSubGrupo.DeleteObject(diaEliminar);
                    }

                    foreach (DiasFeriadosDetalle detalleFeriado in item.DiasFeriadosDetalle)
                    {
                        foreach (SubGrupoUsuario subGrupoUsuario in db.SubGrupoUsuario.Where(w => gpos.Contains(w.IdGrupoUsuario)))
                        {
                            DiaFestivoSubGrupo diasubgpo = new DiaFestivoSubGrupo
                            {
                                IdSubGrupoUsuario = subGrupoUsuario.Id,
                                IdDiasFeriados    = diadb.Id,
                                Fecha             = detalleFeriado.Dia,
                                Descripcion       = detalleFeriado.Descripcion
                            };
                            db.DiaFestivoSubGrupo.AddObject(diasubgpo);
                        }
                    }
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #24
0
        public void ActualizarInformacionConsulta(int idInformacionConsulta, InformacionConsulta informacion)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.LazyLoadingEnabled = true;
                InformacionConsulta info = db.InformacionConsulta.SingleOrDefault(s => s.Id == idInformacionConsulta);
                if (info == null)
                {
                    return;
                }
                info.Descripcion       = informacion.Descripcion.Trim().ToUpper();
                info.IdTipoInfConsulta = informacion.IdTipoInfConsulta;
                info.IdTipoDocumento   = informacion.IdTipoDocumento;
                //TODO: Cambiar habilitado por el embebido
                info.Habilitado = true;
                switch (informacion.IdTipoInfConsulta)
                {
                case (int)BusinessVariables.EnumTiposInformacionConsulta.EditorDeContenido:
                    for (int i = 0; i < info.InformacionConsultaDatos.Count; i++)
                    {
                        info.InformacionConsultaDatos[i].Descripcion = informacion.InformacionConsultaDatos[i].Descripcion;
                    }
                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.Documento:
                    for (int i = 0; i < info.InformacionConsultaDatos.Count; i++)
                    {
                        info.InformacionConsultaDatos[i].Descripcion = informacion.InformacionConsultaDatos[i].Descripcion;
                    }
                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.PaginaHtml:
                    for (int i = 0; i < info.InformacionConsultaDatos.Count; i++)
                    {
                        if (!informacion.InformacionConsultaDatos.First().Descripcion.StartsWith("http://"))
                        {
                            info.InformacionConsultaDatos.First().Descripcion = "http://" + informacion.InformacionConsultaDatos.First().Descripcion;
                        }
                    }
                    break;

                default:
                    throw new Exception("Seleccione un tipo de información");
                }

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #25
0
        public void AgregarDiaFeriado(DiaFeriado dia)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                dia.Descripcion = dia.Descripcion.Trim();
                dia.Habilitado  = true;
                if (dia.Id == 0)
                {
                    if (db.DiaFeriado.Any(a => a.Fecha == dia.Fecha))
                    {
                        throw new Exception("Esta fecha ya fue registrada anteriormente.");
                    }
                    if (db.DiaFeriado.Any(a => a.Descripcion == dia.Descripcion.Trim()))
                    {
                        throw new Exception("Esta Descripción ya fue registrada anteriormente.");
                    }
                    dia.FechaAlta = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                    db.DiaFeriado.AddObject(dia);
                }
                else
                {
                    if (db.DiaFeriado.Any(a => a.Fecha == dia.Fecha && a.Id != dia.Id))
                    {
                        throw new Exception("Esta fecha ya fue registrada anteriormente.");
                    }
                    if (db.DiaFeriado.Any(a => a.Descripcion == dia.Descripcion.Trim() && a.Id != dia.Id))
                    {
                        throw new Exception("Esta Descripción ya fue registrada anteriormente.");
                    }
                    DiaFeriado diaF = db.DiaFeriado.SingleOrDefault(s => s.Id == dia.Id);
                    if (diaF != null)
                    {
                        diaF.FechaModificacion = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                        diaF.IdUsuarioModifico = dia.IdUsuarioAlta;
                        foreach (DiasFeriadosDetalle detalle in db.DiasFeriadosDetalle.Where(w => w.Dia == diaF.Fecha))
                        {
                            detalle.Descripcion = dia.Descripcion;
                            detalle.Dia         = dia.Fecha;
                        }
                        diaF.Descripcion = dia.Descripcion;
                        diaF.Fecha       = dia.Fecha;
                    }
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #26
0
        public InformacionConsulta GuardarInformacionConsulta(InformacionConsulta informacion, List <string> documentosDescarga)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                if (db.InformacionConsulta.Any(a => a.Descripcion == informacion.Descripcion))
                {
                    throw new Exception("Este Artículo ya existe.");
                }
                informacion.Descripcion = informacion.Descripcion.Trim();
                informacion.Habilitado  = true;
                informacion.FechaAlta   = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture);
                if (informacion.Id == 0)
                {
                    db.InformacionConsulta.AddObject(informacion);
                }
                db.SaveChanges();
                informacion = db.InformacionConsulta.Single(s => s.Id == informacion.Id);
                foreach (string s in documentosDescarga)
                {
                    informacion.InformacionConsultaDocumentos.Add(new InformacionConsultaDocumentos
                    {
                        IdTipoDocumento = ObtenerTipoDocumento(s),
                        Archivo         = informacion.Id + s,
                        FechaAlta       = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                        IdUsuarioAlta   = informacion.IdUsuarioAlta,
                    });
                }
                db.SaveChanges();

                BusinessFile.MoverTemporales(BusinessVariables.Directorios.RepositorioTemporalInformacionConsulta, BusinessVariables.Directorios.RepositorioInformacionConsulta, documentosDescarga);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                db.Dispose();
            }
            return(informacion);
        }
예제 #27
0
        public void InsertarMensaje(int idUsuario, int idTipoLink, int idTelefono, string mensaje)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                if (!db.Usuario.Any(a => a.Id == idUsuario) && !
                    db.TelefonoUsuario.Any(a => a.Id == idTelefono && a.IdUsuario == idUsuario))
                {
                    return;
                }
                List <SmsService> smsHabilitados = db.SmsService.Where(a => a.IdUsuario == idUsuario && a.IdTipoLink == idTipoLink && a.Habilitado).ToList();
                foreach (SmsService mensajeHabillitados in smsHabilitados)
                {
                    mensajeHabillitados.Habilitado = false;
                    db.SaveChanges();
                }
                SmsService sms = new SmsService
                {
                    IdUsuario  = idUsuario,
                    IdTipoLink = idTipoLink,
                    Numero     = db.TelefonoUsuario.Single(s => s.Id == idTelefono).Numero,
                    Mensaje    = mensaje,
                    Enviado    = false,
                    Habilitado = true
                };
                db.SmsService.AddObject(sms);
                db.SaveChanges();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #28
0
        public void GuardarUsuario(Usuario usuario)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.LazyLoadingEnabled = true;
                string          tmpurl = usuario.Password;
                Guid            g      = Guid.NewGuid();
                ParametroCorreo correo = db.ParametroCorreo.SingleOrDefault(s => s.IdTipoCorreo == (int)BusinessVariables.EnumTipoCorreo.AltaUsuario && s.Habilitado);
                usuario.ApellidoPaterno = usuario.ApellidoPaterno.ToUpper();
                usuario.ApellidoMaterno = usuario.ApellidoMaterno.ToUpper();
                usuario.Nombre          = usuario.Nombre.ToUpper();
                usuario.Password        = ConfigurationManager.AppSettings["siteUrl"] + tmpurl + "?confirmacionalta=" +
                                          usuario.Id + "_" + g;
                usuario.UsuarioLinkPassword = new List <UsuarioLinkPassword>
                {
                    new UsuarioLinkPassword
                    {
                        Activo     = true,
                        Link       = g,
                        Fecha      = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                        IdTipoLink = (int)BusinessVariables.EnumTipoLink.Confirmacion
                    }
                };
                if (usuario.Id == 0)
                {
                    db.Usuario.AddObject(usuario);
                    db.SaveChanges();
                }
                usuario.Password = ConfigurationManager.AppSettings["siteUrl"] + tmpurl + "?confirmacionalta=" +
                                   usuario.Id + "_" + g;
                if (correo != null)
                {
                    String body = NamedFormat.Format(correo.Contenido, usuario);
                    foreach (CorreoUsuario correoUsuario in usuario.CorreoUsuario)
                    {
                        BusinessCorreo.SendMail(correoUsuario.Correo, correo.TipoCorreo.Descripcion, body);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #29
0
        public void GuardarInformacionConsulta(InformacionConsulta informacion)
        {
            DataBaseModelContext db = new DataBaseModelContext();

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                informacion.Descripcion = informacion.Descripcion.Trim().ToUpper();
                switch (informacion.IdTipoInfConsulta)
                {
                case (int)BusinessVariables.EnumTiposInformacionConsulta.EditorDeContenido:

                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.Documento:

                    break;

                case (int)BusinessVariables.EnumTiposInformacionConsulta.PaginaHtml:
                    if (!informacion.InformacionConsultaDatos.First().Descripcion.StartsWith("http://"))
                    {
                        informacion.InformacionConsultaDatos.First().Descripcion = "http://" + informacion.InformacionConsultaDatos.First().Descripcion;
                    }
                    break;

                default:
                    throw new Exception("Seleccione un tipo de información");
                }
                //TODO: Cambiar habilitado por el embebido
                informacion.Habilitado = true;
                if (informacion.Id == 0)
                {
                    db.InformacionConsulta.AddObject(informacion);
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
        }
예제 #30
0
        public string EnviaCodigoVerificacionCorreo(int idUsuario, int idTipoNotificacion, int idCorreo)
        {
            DataBaseModelContext db = new DataBaseModelContext();
            string result           = null;

            try
            {
                db.ContextOptions.ProxyCreationEnabled = _proxy;
                Random          generator = new Random();
                String          codigo    = generator.Next(0, 99999).ToString("D5");
                Guid            g         = Guid.NewGuid();
                ParametroCorreo correo    = db.ParametroCorreo.SingleOrDefault(s => s.IdTipoCorreo == (int)BusinessVariables.EnumTipoCorreo.RecuperarCuenta && s.Habilitado);
                if (correo != null)
                {
                    string to = db.CorreoUsuario.Single(s => s.Id == idCorreo).Correo;
                    db.LoadProperty(correo, "TipoCorreo");
                    Usuario usuario = db.Usuario.Single(u => u.Id == idUsuario);
                    db.LoadProperty(usuario, "CorreoUsuario");
                    String body = string.Format(correo.Contenido, usuario.NombreCompleto, ConfigurationManager.AppSettings["siteUrl"] + "/FrmRecuperar.aspx?confirmacionCodigo=" + BusinessQueryString.Encrypt(idUsuario + "_" + g) + "&correo=" + BusinessQueryString.Encrypt(idCorreo.ToString()) + "&code=" + BusinessQueryString.Encrypt(codigo), codigo);
                    BusinessCorreo.SendMail(to, correo.TipoCorreo.Descripcion, body);
                    usuario.UsuarioLinkPassword = new List <UsuarioLinkPassword>
                    {
                        new UsuarioLinkPassword
                        {
                            Activo     = true,
                            Link       = g,
                            Fecha      = DateTime.ParseExact(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), "yyyy-MM-dd HH:mm:ss:fff", CultureInfo.InvariantCulture),
                            IdTipoLink = (int)BusinessVariables.EnumTipoLink.Reset,
                            Codigo     = codigo
                        }
                    };
                    db.SaveChanges();
                    result = g.ToString();
                }
            }
            catch (Exception ex)
            {
                throw new Exception((ex.InnerException).Message);
            }
            finally
            {
                db.Dispose();
            }
            return(result);
        }