public async Task <ActionResult> PutRolesUsersMenus([FromBody] RoleUsersMenusDtoUpdate liEntity, Guid Id) { RoleUsersMenusDtoGetDelete aff = new RoleUsersMenusDtoGetDelete { UserId = liEntity.UserId, MenuId = liEntity.MenuId, RoleId = Id }; await DeleteUsersMenusList(aff); var role = await Work.Role.Get(x => x.RoleId == liEntity.RoleId); var menu = await Work.Menu.Get(x => x.MenuId == liEntity.MenuId); var user = await Work.Users.Get(x => x.UsersId == liEntity.UserId); if (role != null && menu != null && user != null) { AffRolesUsersMenus aff1 = new AffRolesUsersMenus { UsersId = user.UsersId, MenuId = menu.MenuId, RoleId = role.RoleId }; await Work.AffRoleUsersMenus.Add(aff1); } await Work.Complete(); return(Ok()); }
public async Task <ActionResult> DeleteUsersMenusList([FromQuery] RoleUsersMenusDtoGetDelete query) { var result = typeof(RoleUsersMenusDtoGetDelete).GetProperties() .Select(x => new { property = x.Name, value = x.GetValue(query) }) .Where(x => x.value != null) .ToList(); var predicate = PredicateBuilder.True <AffRolesUsersMenus>(); if (result.Count == 1) { string temp = result[0].property; Guid guid = new Guid(result[0].value.ToString()); if (temp == "UserId" && guid != Guid.Empty) { predicate = predicate.And(p => p.UsersId == guid); } else if (temp == "MenuId" && guid != Guid.Empty) { predicate = predicate.And(p => p.MenuId == guid); } else if (temp == "RoleId" && guid != Guid.Empty) { predicate = predicate.And(p => p.RoleId == guid); } } else if (result.Count > 1) { foreach (var keyword in result) { string temp = keyword.property; Guid guid = new Guid(keyword.value.ToString()); if (temp == "UserId" && guid != Guid.Empty) { predicate = predicate.And(p => p.UsersId == guid); } else if (temp == "MenuId" && guid != Guid.Empty) { predicate = predicate.And(p => p.MenuId == guid); } else if (temp == "RoleId" && guid != Guid.Empty) { predicate = predicate.And(p => p.RoleId == guid); } } } else { return(new JsonResult(new ErrorDetails { StatusCode = 404, Message = $"Veuillez entrez un paramétre aux choix pour votre requête." })); } var entitiesToDelete = await Work.AffRoleUsersMenus.GetList(predicate, includes : source => source.Include(x => x.Role) .Include(a => a.Menu).ThenInclude(q => q.FkMenu) .Include(a => a.Users).ThenInclude(z => z.FkUsers)); if (entitiesToDelete == null) { return(Ok()); } Work.AffRoleUsersMenus.RemoveRange(entitiesToDelete); await Work.Complete(); return(Ok()); }