public async Task <JsonResult> ContextUpdate([Bind(Include = "Key, Name")] DepartmentEditViewModel Department) { try { var Dep = await db.Departments.Include(x => x.Division.Plant.Organization).Where(x => x.Key == Department.Key).SingleOrDefaultAsync(); Dep.Name = Department.Name; if (Dep == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } db.Entry(Dep).State = EntityState.Modified; await db.SaveChangesAsync(); return(Json(new JDepartment(Dep), JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new JsonErrorViewModel { Message = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public async Task <JsonResult> ContextDelete(string ID) { try { var Dep = await db.Departments.Include(x => x.Division.Plant.Organization).Where(x => x.Key == ID).SingleOrDefaultAsync(); var Del = new JDepartment(Dep); if (Dep == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } db.Departments.Remove(Dep); await db.SaveChangesAsync(); return(Json(Del, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new JsonErrorViewModel { Message = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public async Task <JsonResult> UserDepartmentMenu(string id) { if (User.IsInRole(Roles.SysAdmin)) { var DepartmentUser = await db.DepartmentUsers.Include(x => x.Department).Where(x => x.User.Id == id).FirstOrDefaultAsync(); if (DepartmentUser == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } var DepartmentMenu = (await db.DepartmentMenus.Include(x => x.Department.Division.Plant.Organization).Include(x => x.Menu).Where(x => x.Department.Key == DepartmentUser.Department.Key).ToListAsync()).Select(x => new JDepartmentMenu(x)).ToList(); var DepartmentSelectedMenu = (await db.MenuAccess.Include(x => x.DepartmentMenu.Menu).Where(x => x.User.Id == id).ToListAsync()).Select(x => new JMenuAccess(x)).ToList(); return(await new JsonViewModel <Tuple <List <JDepartmentMenu>, List <JMenuAccess> > > { Value = new Tuple <List <JDepartmentMenu>, List <JMenuAccess> >(DepartmentMenu, DepartmentSelectedMenu) }.toJson()); } else { return(await JsonErrorViewModel.GetUserUnauhorizedError().toJson()); } }
public async Task <JsonResult> Exists(string id, string type) { switch (type.ToLower()) { case "username": { var Organization = Request.QueryString["ref"] != null ? await db.Organizations.FindAsync(Request.QueryString["ref"]) : null; var Name = id + "@" + Organization.Domain; if (Organization == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } var Invite = await db.Invites.SingleOrDefaultAsync(x => x.Username == Name); if (Invite == null) { // BUG: return await List(Roles.AppAdmin, (System.Data.Entity.DbSet<ApplicationUser>)db.Users, null, x => x.UserName == Name, (value) => // FIX: User name for Invite should be access by the Role Role.Inviter. 12/12/2014 return(await List(Roles.Inviter, (DbSet <ApplicationUser>) db.Users, null, x => x.UserName == Name, (value) => { return new JsonViewModel <bool>() { Value = value.Any() }; })); } return(await new JsonViewModel <bool>() { Value = true }.toJson()); } case "department": { return(await Format <Department, JsonListViewModel <JDepartment>, JDepartment>(Roles.SysAdmin, db.Departments, null, x => x.Division.Key == id && x.Access == Roles.SysAdmin, (value) => { return new JsonListViewModel <JDepartment>() { List = value }; }, x => x.Division)); } case "menus": { return(await List(Roles.SysAdmin, db.Menus, null, x => x.Access == Roles.AppUser, (value) => { return new JsonListViewModel <Menus>() { List = value.OrderBy(x => x.Name).ToList() }; })); } case "department-menu": { return(await List(Roles.SysAdmin, db.DepartmentMenus, null, x => x.Department.Division.Key == id, (value) => { return new JsonListViewModel <DepartmentMenu>() { List = value }; }, x => x.Department, x => x.Menu)); } case "add-department-menu": { var data = Request.QueryString["ref"] != null?Newtonsoft.Json.JsonConvert.DeserializeObject <EntityManupulateHelper>(Request.QueryString["ref"]) : null; if (data != null) { var Department = await db.Departments.FindAsync(data.Entity); if (Department != null) { var DepartmentMenu = db.DepartmentMenus; foreach (var item in data.Add) { var Menu = await db.Menus.FindAsync(item); if (Menu == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } DepartmentMenu.Add(new DepartmentMenu { Department = Department, Menu = Menu }); } foreach (var item in data.Remove) { var Menu = await db.DepartmentMenus.FindAsync(item); if (Menu == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } DepartmentMenu.Remove(Menu); } Exception Exception = null; try { await db.SaveChangesAsync(); return(await _DepartmentMenu(id)); } catch (Exception ex) { Exception = ex; } return(await JsonExceptionViewModel.Get(Exception).toJson()); } } return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } case "add-department-user": { var data = Request.QueryString["ref"] != null?Newtonsoft.Json.JsonConvert.DeserializeObject <EntityManupulateHelper>(Request.QueryString["ref"]) : null; if (data != null) { var Department = await db.Departments.FindAsync(data.Entity); if (Department != null) { var DepartmentUser = db.DepartmentUsers; foreach (var item in data.Add) { var User = await db.Users.Where(x => x.Id == item).FirstOrDefaultAsync(); if (User == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } DepartmentUser.Add(new DepartmentUser { Department = Department, User = User }); } foreach (var item in data.Remove) { var User = await db.DepartmentUsers.FindAsync(item); if (User == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } DepartmentUser.Remove(User); } Exception Exception = null; try { await db.SaveChangesAsync(); return(await _DepartmentUser(id)); } catch (Exception ex) { Exception = ex; } return(await JsonExceptionViewModel.Get(Exception).toJson()); } } return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } case "access-division": { var data = Request.QueryString["ref"] != null?Newtonsoft.Json.JsonConvert.DeserializeObject <EntityManupulateHelper>(Request.QueryString["ref"]) : null; if (data != null) { var User = db.Users.Find(data.Entity); if (User != null) { var AccessLevel = db.AccessLevels; foreach (var item in data.Add) { var Division = await db.Divisions.Where(x => x.Key == item).FirstOrDefaultAsync(); if (Division == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } AccessLevel.Add(new AccessLevel { Division = Division, User = User }); } foreach (var item in data.Remove) { var Access = await db.AccessLevels.FindAsync(item); if (Access == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } AccessLevel.Remove(Access); } Exception Exception = null; try { await db.SaveChangesAsync(); return(await _DivisionAccess(data.Entity)); } catch (Exception ex) { Exception = ex; } return(await JsonExceptionViewModel.Get(Exception).toJson()); } } return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } case "access-menu": { var data = Request.QueryString["ref"] != null?Newtonsoft.Json.JsonConvert.DeserializeObject <EntityManupulateHelper>(Request.QueryString["ref"]) : null; if (data != null) { var User = db.Users.Find(data.Entity); if (User != null) { var MenuAccess = db.MenuAccess; foreach (var item in data.Add) { var DepartmentMenu = await db.DepartmentMenus.Where(x => x.Department.Key == id && x.Menu.ID == item).FirstOrDefaultAsync(); if (DepartmentMenu == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } MenuAccess.Add(new MenuAccess { DepartmentMenu = DepartmentMenu, User = User }); } foreach (var item in data.Remove) { var Access = await db.MenuAccess.FindAsync(item); if (Access == null) { return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } MenuAccess.Remove(Access); } Exception Exception = null; try { await db.SaveChangesAsync(); return(await UserDepartmentMenu(data.Entity)); } catch (Exception ex) { Exception = ex; } return(await JsonExceptionViewModel.Get(Exception).toJson()); } } return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } default: return(await JsonErrorViewModel.GetResourceNotFoundError(Response).toJson()); } }