レッツ私はこの宣言辞書持っていると言う表現:クエリC#辞書
public class APIAccessControl
{
public APIControllerRoute ControllerRoute { get; set; }
public APIActionRoute ActionRoute { get; set; }
public bool IsAuthorized { get; set; }
}
私はチェックしようとしています:キーはroleIdを表し
private static Dictionary<int, List<Models.APIAccessControl>> _APIRights = GetAPIRights();
を、値がクラスを表しますユーザーがこのAPIにアクセスする権限を持っている場合。 私の考えでは、辞書を照会し、ロールのAPIAccessControlのすべてのリストを取得し、その後、彼は移動しようとしているAPIActionRouteためにそれらのAPIAccessControlリストを照会することです:
私は私が欲しいの役割のために、これらのリストが含まれている辞書の値を得ました
public static bool CanAccess(int[] roleIDs, APIActionRoute apiActionRoute)
{
bool canAccess = false;
var apiAccessList = _APIRights.Where(x => roleIDs.Contains(x.Key)).Select(x => new { x.Value}).ToList();
//Querying to get all List<Models.APIAccessControl> that has any matchig APIActionRoute
}
DictionaryのValuesプロパティを使用してリストを抽出できます。 –
あなたはキャスティングとクエリを実行するためのサンプルコードを提供できますか、私はエレガントでクリーンな方法でそれを書こうとしています。だから、もしあなたが何か考えを持っているなら、あなたのコードを共有してください。ありがとう – Coding
すべてのActionRoutesを取得してリストに追加するには、apiAccessListのループを使用する必要があります。代わりがあります。あなたができる唯一のことはLinqを使うことです。それが何かを明確にするかどうか私に教えてください –