Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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());
            }
        }
Beispiel #4
0
        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());
            }
        }