/// <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); }
/// <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); }
/// <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 }
/// <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(); } }
/// <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); }