コード例 #1
0
        public async Task <ActionResult> Restore(int id)
        {
            usuario_permisos usuario_permisos = await db.usuario_permisos.FindAsync(id);

            //db.usuario_permisos.Remove(usuario_permisos);
            usuario_permisos.deleted_at = null;
            await db.SaveChangesAsync();

            return(RedirectToAction("Index", new { v = usuario_permisos.usuario_id }));
        }
コード例 #2
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            usuario_permisos usuario_permisos = await db.usuario_permisos.FindAsync(id);

            //db.usuario_permisos.Remove(usuario_permisos);
            usuario_permisos.deleted_at = DateTimeOffset.Now.DateTime;
            await db.SaveChangesAsync();

            return(RedirectToAction("Index", new { v = usuario_permisos.usuario_id }));
        }
コード例 #3
0
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            usuario_permisos usuario_permisos = await db.usuario_permisos.FindAsync(id);

            if (usuario_permisos == null)
            {
                return(HttpNotFound());
            }
            return(View(usuario_permisos));
        }
コード例 #4
0
        public bool IsInRole(string role)
        {
            _SGCModel db = new _SGCModel();

            /*var roles = role.Split(new char[] { ',' });//db.Formularios.ToList<Formularios>();
             * return roles.Any(r => this.usuario.usuario_permisos.Contains(r));*/

            int AccessId = db.permisos.Where(m => m.codigo_interno == role).Select(m => m.id).FirstOrDefault();
            usuario_permisos userAccess = db.usuario_permisos.Where(m => m.usuario_id == usuarioId && m.permiso_id == AccessId && m.deleted_at == null).FirstOrDefault();

            //usuario_permisos usuario_permiso = db.usuario_permisos.Where(up => up.usuarios.email == this.usuario.email && up.permiso_id == permiso_id).FirstOrDefault();

            return(userAccess != null);
        }
コード例 #5
0
        public async Task <ActionResult> Edit([Bind(Include = "id,usuario_id,permiso_id,created_at,updated_at,deleted_at")] usuario_permisos usuario_permisos)
        {
            if (ModelState.IsValid)
            {
                usuario_permisos.updated_at = DateTimeOffset.Now.DateTime;

                db.Entry(usuario_permisos).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index", new { v = usuario_permisos.usuario_id }));
            }
            ViewBag.permiso_id = new SelectList(db.permisos, "id", "nombre", usuario_permisos.permiso_id);
            ViewBag.usuario_id = new SelectList(db.usuarios, "id", "codigo", usuario_permisos.usuario_id);
            return(View(usuario_permisos));
        }
コード例 #6
0
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            usuario_permisos usuario_permisos = await db.usuario_permisos.FindAsync(id);

            if (usuario_permisos == null)
            {
                return(HttpNotFound());
            }
            ViewBag.permiso_id = new SelectList(db.permisos, "id", "nombre", usuario_permisos.permiso_id);
            ViewBag.usuario_id = new SelectList(db.usuarios, "id", "codigo", usuario_permisos.usuario_id);
            return(View(usuario_permisos));
        }
コード例 #7
0
        //[ValidateAntiForgeryToken]
        public async Task <ActionResult> Create(usuarios usuario,
                                                HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                DateTime today = CurrentDate.getNow();
                usuario.created_at = today;
                usuario.updated_at = today;
                usuario.activo     = true;

                if (file != null)
                {
                    byte[] bNonNull = new byte[file.ContentLength];

                    Image          img     = Image.FromStream(file.InputStream, true, true);
                    ImageCodecInfo pngInfo = ImageCodecInfo.GetImageEncoders().Where(codecInfo => codecInfo.MimeType == "image/png").First();

                    using (Stream s = new MemoryStream())
                    {
                        using (EncoderParameters encParams = new EncoderParameters(1))
                        {
                            encParams.Param[0] = new EncoderParameter(Encoder.Compression, (long)EncoderValue.CompressionLZW);
                            //quality should be in the range [0..100]
                            img.Save(s, pngInfo, encParams);
                        }
                        s.Position = 0;
                        s.Read(bNonNull, 0, (int)s.Length);
                    }
                    usuario.foto = Convert.ToBase64String(bNonNull);
                }

                usuario.deleted_at = null;

                db.usuarios.Add(usuario);
                int i = await db.SaveChangesAsync();

                if (i > 0)
                {
                    usuarios createdUser = db.usuarios.Where(u => u.codigo == usuario.codigo).FirstOrDefault();

                    usuario_permisos usrAccesses = new usuario_permisos();
                    usrAccesses.usuario_id = createdUser.id;
                    usrAccesses.created_at = today;
                    usrAccesses.updated_at = today;

                    switch (createdUser.tipo)
                    {
                    case UserProfiles.Default:
                        goto default;

                    case UserProfiles.Nutricionista:
                        usrAccesses.permiso_id = db.permisos.Where(p => p.codigo_interno == "nut_home").Select(p => p.id).FirstOrDefault();
                        break;

                    case UserProfiles.Vendedor:
                        usrAccesses.permiso_id = db.permisos.Where(p => p.codigo_interno == "sales_home").Select(p => p.id).FirstOrDefault();
                        break;

                    case UserProfiles.Entrenador:
                        usrAccesses.permiso_id = db.permisos.Where(p => p.codigo_interno == "training_home").Select(p => p.id).FirstOrDefault();
                        break;

                    case UserProfiles.Cajero:
                        goto default;

                    case UserProfiles.Sistemas:
                        usrAccesses.permiso_id = db.permisos.Where(p => p.codigo_interno == "sys_home").Select(p => p.id).FirstOrDefault();
                        break;

                    case UserProfiles.Pesos_y_Medidas:
                        usrAccesses.permiso_id = db.permisos.Where(p => p.codigo_interno == "pym_home").Select(p => p.id).FirstOrDefault();
                        break;

                    case UserProfiles.Cardiología:
                        goto default;

                    case UserProfiles.Marketing:
                        usrAccesses.permiso_id = db.permisos.Where(p => p.codigo_interno == "mkt_home").Select(p => p.id).FirstOrDefault();
                        break;

                    default:
                        break;
                    }

                    db.usuario_permisos.Add(usrAccesses);

                    i = await db.SaveChangesAsync();

                    if (i > 0)
                    {
                        List <string> mails = new List <string>();
                        mails.Add(usuario.email);
                        string url  = Request.UrlReferrer.Scheme + "://" + Request.UrlReferrer.Authority;
                        string body =
                            "Estimado " + usuario.nombres + " " + usuario.apellidos +
                            "\n \n" +
                            "Se le ha creado un usuario para el sistema SGC de Personal Training, sus credenciales son las siguientes: \n \n" +
                            "Usuario: " + usuario.email + "\n" +
                            "Clave:" + usuario.password + "\n \n" +
                            "Para ingresar al sistema, ingresar al siguiente enlace o copiarlo en su browser: " + url;
                        mails.Add("*****@*****.**");                         //solo para demo.
                        Mail.Send(
                            pTo: mails,
                            pSubject: "Se le ha asignado un usuario en SGC",
                            pBody: body);

                        return(RedirectToAction("Index"));
                    }
                }
                return(View(usuario));
            }
            else
            {
                return(View(usuario));
            }
        }