예제 #1
0
        //Eliminacion del archivo fisico y en la BD
        public static File delete_file(string id)
        {
            rekursosEntities db     = new rekursosEntities();
            File             result = new File();

            result.status = true;
            try
            {
                var file_result = db.files.Where(w => w.id == id).SingleOrDefault();

                if (file_result != null)
                {
                    _unlink_file(file_result);
                    db.files.Remove(file_result);
                    db.SaveChanges();

                    result.message = file_result.name + " ha sido eliminado";
                    result.status  = true;
                }
            }
            catch (Exception ex)
            {
                result.status  = false;
                result.message = ex.Message.ToString();
            }

            return(result);
        }
예제 #2
0
        public static File SaveCamera(string image, int folder_id)
        {
            File result = new File();

            result.status = false;
            if (image != null)
            {
                rekursosEntities db     = new rekursosEntities();
                files            insert = new files();

                image = image.Replace("data:image/png;base64,", "");
                byte[] data = Convert.FromBase64String(image);

                MD5 md5 = MD5.Create();
                insert.filename = GetMd5Hash(md5, GetUniqID()) + ".png";
                insert.name     = "camera_" + insert.filename;
                var destinationImgPath = Path.Combine(HttpContext.Current.Server.MapPath("~/Uploads"), insert.filename);

                System.IO.File.WriteAllBytes(destinationImgPath, data);

                if (System.IO.File.Exists(destinationImgPath))
                {
                    DateTime now  = DateTime.Now;
                    var      info = new System.IO.FileInfo(destinationImgPath);
                    // var dto = new DateTimeOffset(DateTime.Now);



                    insert.filesize   = (int)info.Length;
                    insert.mimetype   = "image/png";
                    insert.folder_id  = folder_id;
                    insert.extension  = ".png";
                    insert.type       = "i";
                    insert.date_added = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;

                    System.Drawing.Image myImage = System.Drawing.Image.FromFile(destinationImgPath);


                    insert.width  = myImage.Width;
                    insert.height = myImage.Height;

                    string id = GetMd5Hash(md5, insert.filename);



                    insert.id = id.Substring(0, 15);

                    db.files.Add(insert);
                    db.SaveChanges();


                    result.status  = true;
                    result.message = "El archivo se ha subido correctamente";
                    result.data    = insert;
                }
            }

            return(result);
        }
예제 #3
0
        public static void SetLastLogin(int id)
        {
            rekursosEntities db   = new rekursosEntities();
            users            user = db.users.Find(id);

            user.last_login = DateTime.Now;

            db.Entry(user).State = EntityState.Modified;
            db.SaveChanges();
        }
예제 #4
0
        public static int GetSequence(string table = "")
        {
            rekursosEntities db = new rekursosEntities();

            try
            {
                var result = db.Database.SqlQuery <int>("SELECT NEXT VALUE FOR " + table + "_sequence");
                return(result.SingleOrDefault());
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                SetSequence(table);
                return(1);
            }
        }
예제 #5
0
        public static void Add(string to, string from, string subject, string body, int priority = 1)
        {
            rekursosEntities db = new rekursosEntities();

            notifications notification = new notifications();

            notification.from       = from;
            notification.to         = to;
            notification.subject    = subject;
            notification.body       = body;
            notification.created_on = DateTime.Now;
            notification.priority   = priority;
            db.notifications.Add(notification);
            db.SaveChanges();
        }
예제 #6
0
        public static users GetUser(string username, bool group = true)
        {
            rekursosEntities db = new rekursosEntities();

            if (username != null)
            {
                users user = db.users.Where(w => w.username == username).FirstOrDefault();

                if (group)
                {
                    user.groups = db.groups.Find(user.group_id);
                }

                return(user);
            }
            return(null);
        }
예제 #7
0
        public static string Get(string slug)
        {
            rekursosEntities db = new rekursosEntities();

            var settings = db.settings.Where(w => w.slug == slug).SingleOrDefault();

            if (settings != null)
            {
                string value = settings.@default;

                if (settings.value != null)
                {
                    value = settings.value;
                }
                return(value);
            }
            return("");
        }
예제 #8
0
        public static bool Login(string username = "", string password = "")
        {
            rekursosEntities db = new rekursosEntities();
            var result_user     = db.users.Where(w => w.username == username || w.email == username)
                                  .Join(db.groups, u => u.group_id, g => g.id, (u, g) => new { u, g }).SingleOrDefault();


            if (result_user != null)
            {
                if (result_user.u.password == Sha1.SHA1HashStringForUTF8String(password))
                {
                    SetLastLogin(result_user.u.id);
                    return(true);
                }

                return(false);
            }
            return(false);
        }
예제 #9
0
        public static Dictionary <string, string[]> GetGroup(int group_id)
        {
            rekursosEntities db = new rekursosEntities();
            Dictionary <string, string[]> permissions = new Dictionary <string, string[]>();


            var result = db.permissions.Where(w => w.group_id == group_id)
                         .ToList();

            if (result != null)
            {
                foreach (var permission in result)
                {
                    var roles = permission.roles == null ? new string[] { } : JsonConvert.DeserializeObject <string[]>(permission.roles);
                    permissions.Add(permission.module, roles);
                }
            }

            return(permissions);
        }
예제 #10
0
        public static File get_file(string id)
        {
            File             file = new File();
            rekursosEntities db   = new rekursosEntities();
            var file_result       = db.files.Where(w => w.id == id).SingleOrDefault();

            if (file_result == null)
            {
                file.status  = false;
                file.message = "El archivo no existe";
            }
            else
            {
                file.status = true;

                file.data = file_result;
            }

            return(file);
        }
예제 #11
0
        public static File upload(HttpPostedFileBase file, int folder_id)
        {
            rekursosEntities db     = new rekursosEntities();
            files            insert = new files();
            File             result = new File();

            result.status = false;

            try
            {
                var file_name = Path.GetFileName(file.FileName);
                var extension = Path.GetExtension(file.FileName);

                //Extraemos mime,type y extension
                _check_ext(file);


                MD5      md5 = MD5.Create();
                DateTime now = DateTime.Now;
                // var dto = new DateTimeOffset(DateTime.Now);


                insert.filename   = GetMd5Hash(md5, GetUniqID()) + extension;
                insert.name       = file_name;
                insert.filesize   = file.ContentLength;
                insert.mimetype   = file.ContentType;
                insert.folder_id  = folder_id;
                insert.extension  = _ext;
                insert.type       = _type;
                insert.date_added = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
                insert.user_id    = null;
                insert.width      = null;
                insert.height     = null;
                if (System.Web.HttpContext.Current.User != null)
                {
                    /*var user = Cobacam.Security.Ion_Auth.GetUser(System.Web.HttpContext.Current.User.Identity.Name);
                     *
                     * if (user != null)
                     * {
                     *  file_m.user_id = user.id;
                     * }*/
                }
                string id = GetMd5Hash(md5, insert.filename);



                insert.id = id.Substring(0, 15);

                if (IsImage(file.ContentType))
                {
                    System.Drawing.Image myImage = System.Drawing.Image.FromStream(file.InputStream);


                    insert.width  = myImage.Width;
                    insert.height = myImage.Height;
                }

                db.files.Add(insert);
                db.SaveChanges();

                var path = Path.Combine(HttpContext.Current.Server.MapPath("~/Uploads"), insert.filename);
                file.SaveAs(path);
                result.status  = true;
                result.message = "El archivo se ha subido correctamente";
                result.data    = insert;
            }
            catch (Exception ex)
            {
                result.status  = false;
                result.message = ex.Message.ToString();
            }
            return(result);
        }
예제 #12
0
 public static void RestartSequence(string table = "", string restart = "1")
 {
     //alter SEQUENCE empleados_sequence restart with 1
     rekursosEntities db = new rekursosEntities();
     var result          = db.Database.ExecuteSqlCommand("alter SEQUENCE " + table + "_sequence restart with " + restart);
 }
예제 #13
0
 public static void SetSequence(string table = "")
 {
     rekursosEntities db = new rekursosEntities();
     var result          = db.Database.ExecuteSqlCommand("create SEQUENCE  " + table + "_sequence AS int start with 2 increment by 1 minvalue 0 no maxvalue");
 }
예제 #14
0
        //
        // GET: /Admin/


        public AdminController(string section = "", string icon = "")
        {
            rekursosEntities db = new rekursosEntities();

            System.Web.HttpContext HttpContext = System.Web.HttpContext.Current;
            var type = this.GetType();

            ViewBag.Type = type;
            Dictionary <string, List <Menu> > MenuItems = new Dictionary <string, List <Menu> >();

            if (HttpContext.User.Identity.IsAuthenticated)
            {
                var User = Ion_Auth.GetUser(HttpContext.User.Identity.Name);
                ViewBag.UserCurrent = User;
                Dictionary <string, string[]> ListPermissions = PermissionModel.GetGroup((int)User.group_id);

                foreach (var module in db.modules.Where(w => w.menu != "0" && w.is_backend == 1).Where(w => w.installed == 1).ToList())
                {
                    if (ListPermissions.ContainsKey(module.slug) || User.groups.name == "admin")
                    {
                        if (MenuItems.ContainsKey(module.menu) == false)
                        {
                            MenuItems.Add(module.menu, new List <Menu>());
                        }
                        MenuItems[module.menu].Add(new Menu {
                            slug = module.slug, name = module.name
                        });
                    }
                }
            }


            Module ModuleDetails = new Module()
            {
                icon = "", description = "", name = ""
            };

            if (section != "")
            {
                var module = db.modules.Where(w => w.slug == section).SingleOrDefault();

                if (module != null)
                {
                    //ModuleDetails.ShortCuts = new List<ShortCuts>();
                    switch (module.slug)
                    {
                    /*case "viaticos":
                     *  ModuleDetails.icon = "ion-card";
                     *  break;
                     * case "comisiones":
                     *  ModuleDetails.icon = "ion-android-list";
                     *  break;
                     *
                     * case "empleados":
                     *  ModuleDetails.icon = "ion-ios-people";
                     *  break;
                     * case "settings":
                     *  ModuleDetails.icon = "ion-gear-b";
                     *  break;
                     * case "liquidaciones":
                     *  ModuleDetails.icon = "ion-cash";
                     *  break;*/
                    default:
                        //ModuleDetails.icon = icon;
                        break;
                    }
                    ModuleDetails.name        = module.name;
                    ModuleDetails.description = module.description;



                    ///ModuleDetails.ShortCuts.Add(new ShortCuts { Name = "Agregar localidad", Class = "btn btn-success", Uri = "localidades/Create" });
                }
                else
                {
                    ModuleDetails.icon        = "ion-help";
                    ModuleDetails.name        = "NA";
                    ModuleDetails.description = "Sin descripción del módulo.";
                }
            }
            ViewBag.MenuItems = MenuItems;

            ViewBag.ModuleDetails = ModuleDetails;
        }