Exemplo n.º 1
0
 internal static bool MatchByFunction(this IPermission me, IFunction function)
 {
     return(Printer.Indent($"{nameof(PermissionExtensions)}.{nameof(MatchByFunction)}:", () =>
     {
         Printer.Indent("Input parameters", () =>
         {
             Printer.WriteLine($"Permission:");
             new[] { me }.Print(PrintMode.Table);
             Printer.WriteLine($"Function: {function.Name}");
         });
         Printer.WriteLine($"Inclusiones: {me.Function.GetAllInclusions().Aggregate("", (a, s) => a + " - " + s.Id, a => a.Trim(' ','-'))}");
         Printer.WriteLine($"Exclusiones: {me.Function.GetAllExclusions().Aggregate("", (a, s) => a + " - " + s.Id, a => a.Trim(' ', '-'))}");
         var comparer = new FunctionEqualityComparer();
         if (comparer.Equals(me.Function, function))
         {
             Printer.WriteLine("Match with same function");
             return true;
         }
         if (me.Value && me.Function.GetAllInclusions().Contains(function, comparer))
         {
             Printer.WriteLine("Match by included function");
             return true;
         }
         if (!me.Value && me.Function.GetAllExclusions().Contains(function, comparer))
         {
             Printer.WriteLine("Match by excluded function");
             return true;
         }
         return false;
     }));
 }
Exemplo n.º 2
0
 internal static bool MatchByFunction(this IPermission me, IFunction function)
 {
     using (var res = Printer.CallResult <bool>())
     {
         using (Printer.Indent2("Input parameters"))
         {
             Printer.WriteLine($"Permission:");
             new[] { me }.Print(PrintMode.Table);
             Printer.WriteLine($"Function: {function.Name}");
         }
         Printer.WriteLine($"Inclusiones: {me.Function.GetAllInclusions().Aggregate("", (a, s) => a + " - " + s.Id, a => a.Trim(' ', '-'))}");
         Printer.WriteLine($"Exclusiones: {me.Function.GetAllExclusions().Aggregate("", (a, s) => a + " - " + s.Id, a => a.Trim(' ', '-'))}");
         var comparer = new FunctionEqualityComparer();
         if (comparer.Equals(me.Function, function))
         {
             Printer.WriteLine("Match with same function");
             return(res.Value = true);
         }
         else if (me.Value && me.Function.GetAllInclusions().Contains(function, comparer))
         {
             Printer.WriteLine("Match by included function");
             return(res.Value = true);
         }
         else if (!me.Value && me.Function.GetAllExclusions().Contains(function, comparer))
         {
             Printer.WriteLine("Match by excluded function");
             return(res.Value = true);
         }
         else
         {
             return(res.Value = false);
         }
     }
 }