Ejemplo n.º 1
0
        /// <summary>
        /// Get user validity with defined user_id & feature_id derived from url
        /// </summary>
        /// <returns></returns>
        public static bool get_user_validity()
        {
            gls_model _context = new gls_model(AppGlobal.get_db_option()); //simplifying context initializer by override

            bool   valid             = false;
            string path              = System.Web.HttpContext.Current.Request.Path;
            string url_feature       = get_url_from_path(path, "feature");
            string url_feature_group = get_url_from_path(path, "feature_group");
            int    feature_id        = 0;

            try
            {
                feature_id = _context.m_feature
                             .Include(e => e.m_feature_group)
                             .Where(e => e.feature_url == url_feature && e.m_feature_group.feature_group_name.ToLower().Replace(" ", "_") == url_feature_group)
                             .Single().m_feature_id;
            }
            catch (Exception e)
            {
                console_log("error feature_id", e.ToString());
            }

            int feature_count = _context.feature_map
                                .Where(e => e.m_feature_id == feature_id && e.m_user_group_id == get_user_group_login_id()).Count();

            valid = feature_count == 1 ? true : false;
            return(valid);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get session timout value from db
        /// </summary>
        /// <returns></returns>
        public static int get_session_timeout()
        {
            gls_model _context        = new gls_model(AppGlobal.get_db_option()); //simplifying context initializer by override
            int       session_timeout = 0;

            try
            {
                session_timeout = Convert.ToInt32(_context.m_parameter.Where(e => e.parameter_key == "Session Timeout").Single().parameter_value);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            return(session_timeout);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Post method bisa ditulis tanpa parameter catch
        /// parameter dibaca manual lewat Request.Query untuk QUERY STRING
        /// dan Request.Form untuk FORM BODY POST, termasuk file
        /// </summary>
        /// <returns></returns>
        public JsonResult OnPost()
        {
            gls_model          _context = new gls_model(AppGlobal.get_db_option()); //simplifying context initializer by override
            AppResponseMessage arm      = new AppResponseMessage();                 //inisialisasi ARM sebagai standarisasi respon balik

            //handle kiriman parameter sesuai f >> function, dihandle filternya di ScopePageModel
            if (Request.Query["f"] == "insert_handler")
            {
                string feature_name  = Request.Form["feature_name"];
                int    count_existed = _context.m_feature.Where(e => e.feature_name == feature_name).Count(); //gunakan e >> entity untuk select ef
                if (count_existed > 0)
                {                                                                                             //cek data duplikat
                    arm.fail();
                    arm.message = "Data sudah ada (duplikat)!";
                }
                else
                {
                    //construct object m_feature
                    m_feature m_feature_data = new m_feature {
                        m_feature_group_id = Convert.ToInt32(Request.Form["m_feature_group_id"]),
                        feature_name       = feature_name,
                        feature_sequence   = Convert.ToInt32(Request.Form["feature_sequence"]),
                        feature_url        = Request.Form["feature_url"],
                        feature_icon       = Request.Form["feature_icon"],
                        feature_private    = Convert.ToBoolean(Request.Form["feature_private"]),
                    };
                    _context.m_feature.Add(m_feature_data);    //insert m_feature yg diconstruct
                    arm.success();                             //set success status
                    arm.message = "Data berhasil ditambahkan"; //set success message
                }
            }
            else if (Request.Query["f"] == "edit_handler")
            {
                int    m_feature_id  = Convert.ToInt32(Request.Form["m_feature_id"]);
                string feature_name  = Request.Form["feature_name"];
                int    count_existed = _context.m_feature.Where(e => e.feature_name == feature_name && e.m_feature_id != m_feature_id).Count();
                if (count_existed > 0)
                { //cek data duplikat
                    arm.fail();
                    arm.message = "Data sudah ada (duplikat)!";
                }
                else
                {
                    //construct object m_feature
                    m_feature m_feature_data = new m_feature
                    {
                        m_feature_id       = Convert.ToInt32(Request.Form["m_feature_id"]),
                        m_feature_group_id = Convert.ToInt32(Request.Form["m_feature_group_id"]),
                        feature_name       = feature_name,
                        feature_sequence   = Convert.ToInt32(Request.Form["feature_sequence"]),
                        feature_url        = Request.Form["feature_url"],
                        feature_icon       = Request.Form["feature_icon"],
                        feature_private    = Convert.ToBoolean(Request.Form["feature_private"]),
                    };
                    _context.m_feature.Update(m_feature_data);  //update m_feature yg diconstruct
                    arm.success();                              //set success status
                    arm.message = "Data berhasil diperbaharui"; //set success message
                }
            }
            else if (Request.Query["f"] == "delete_handler")
            {
                int m_feature_id = Convert.ToInt32(Request.Query["id"]);
                var db_row       = _context.m_feature.AsNoTracking().SingleOrDefault(e => e.m_feature_id == m_feature_id);
                if (db_row == null)
                {
                    arm.fail();
                    arm.message = "Data tidak ditemukan!";
                }
                else
                {
                    _context.m_feature.Remove(db_row);
                    arm.success();                         //set success status
                    arm.message = "Data berhasil dihapus"; //set success message
                }
            }

            try
            {
                _context.SaveChanges(); //save changes to database
            }
            catch (Exception ex)
            {
                arm.fail();
                arm.message = ex.Message;
                AppGlobal.console_log("Error Save: ", ex.ToString());
            }
            return(new JsonResult(arm)); //return ARM dg method JsonResult untuk auto serialize ke format JSON
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Main method to populate database content
        /// </summary>
        public static void Initialize()
        {
            using (var _context = new gls_model(AppGlobal.get_db_option()))
            {
                //run primary migration method
                _context.Database.Migrate();

                // Look for any user or feature group
                if (_context.m_user.Any() || _context.m_feature_group.Any())
                {
                    return; // if DB has been seeded, exit the method;
                }

                //m_feature_group
                List <m_feature_group> m_feature_group = new List <m_feature_group> {
                    new m_feature_group {
                        feature_group_name = "Data"
                    },
                    new m_feature_group {
                        feature_group_name = "Akses"
                    },
                    new m_feature_group {
                        feature_group_name = "Master"
                    },
                };
                foreach (m_feature_group m_feature_group_data in m_feature_group)
                {
                    _context.m_feature_group.Add(m_feature_group_data);
                }
                _context.SaveChanges();

                //m_feature
                int m_feature_group_id      = 1;
                List <m_feature> m_feature1 = new List <m_feature> {
                    new m_feature {
                        feature_name = "Dashboard", feature_sequence = 1, feature_url = "dashboard", feature_icon = "fa fa-dashboard", feature_private = true, m_feature_group_id = m_feature_group_id
                    },
                };
                m_feature_group_id = 2;
                List <m_feature> m_feature2 = new List <m_feature> {
                    new m_feature {
                        feature_name = "Feature Group", feature_sequence = 1, feature_url = "m_feature_group", feature_icon = "fa fa-list-alt", feature_private = true, m_feature_group_id = m_feature_group_id
                    },
                    new m_feature {
                        feature_name = "Feature", feature_sequence = 2, feature_url = "m_feature", feature_icon = "fa fa-list", feature_private = true, m_feature_group_id = m_feature_group_id
                    },
                    new m_feature {
                        feature_name = "User Group", feature_sequence = 3, feature_url = "m_user_group", feature_icon = "fa fa-group", feature_private = false, m_feature_group_id = m_feature_group_id
                    },
                    new m_feature {
                        feature_name = "User", feature_sequence = 4, feature_url = "m_user", feature_icon = "fa fa-user", feature_private = false, m_feature_group_id = m_feature_group_id
                    },
                };
                m_feature_group_id = 3;
                List <m_feature> m_feature3 = new List <m_feature> {
                    new m_feature {
                        feature_name = "Dinas", feature_sequence = 1, feature_url = "m_dinas", feature_icon = "fa fa-building", feature_private = true, m_feature_group_id = m_feature_group_id
                    },
                    new m_feature {
                        feature_name = "Sekolah", feature_sequence = 1, feature_url = "m_sekolah", feature_icon = "fa fa-university", feature_private = true, m_feature_group_id = m_feature_group_id
                    },
                };

                List <m_feature> m_feature = m_feature1.Concat(m_feature2).Concat(m_feature3).ToList(); //add several list together
                foreach (m_feature m_feature_data in m_feature)
                {
                    _context.m_feature.Add(m_feature_data);
                }
                _context.SaveChanges();

                //m_user_group
                List <m_user_group> m_user_group = new List <m_user_group> {
                    new m_user_group {
                        user_group_name = "Administrator", user_group_default = true
                    },
                };
                foreach (m_user_group m_user_group_data in m_user_group)
                {
                    _context.m_user_group.Add(m_user_group_data);
                }
                _context.SaveChanges();

                //m_user
                List <m_user> m_user = new List <m_user> {
                    new m_user {
                        user_name = "Admin", user_password = PasswordStorage.CreateHash("Admin"), user_email = "*****@*****.**", user_active = true, m_user_group_id = 1
                    },
                };
                foreach (m_user m_user_data in m_user)
                {
                    _context.m_user.Add(m_user_data);
                }
                _context.SaveChanges();

                //feature_map
                List <feature_map> feature_map = new List <feature_map>();
                for (int i = 1; i <= 7; i++)
                {
                    feature_map.Add(new feature_map
                    {
                        m_user_group_id = 1,
                        m_feature_id    = i
                    });
                }
                foreach (feature_map feature_map_data in feature_map)
                {
                    _context.feature_map.Add(feature_map_data);
                }
                _context.SaveChanges();

                //m_parameter
                List <m_parameter> m_parameter = new List <m_parameter> {
                    new m_parameter {
                        parameter_group = "Base Setting", parameter_key = "Session Timeout", parameter_value = "30"
                    },
                    new m_parameter {
                        parameter_group = "Base Setting", parameter_key = "MaxArchiveFiles", parameter_value = "730"
                    },
                };
                foreach (m_parameter m_parameter_data in m_parameter)
                {
                    _context.m_parameter.Add(m_parameter_data);
                }
                _context.SaveChanges();
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Get id from current logged in user
        /// </summary>
        /// <returns></returns>
        public static int get_user_group_login_id()
        {
            gls_model _context = new gls_model(AppGlobal.get_db_option()); //simplifying context initializer by override

            return(_context.m_user.Include(e => e.m_user_group).Where(e => e.m_user_id == get_user_login_id()).Single().m_user_group_id);
        }