Beispiel #1
0
        bool AreEquals(object obj1, object obj2)
        {
            // If both are NULL, return TRUE
            if (Equals(obj1, null) && Equals(obj2, null))
            {
                return(true);
            }
            // If some of them is null, return FALSE
            if (Equals(obj1, null) || Equals(obj2, null))
            {
                return(false);
            }
            // If any of them are of other type, return FALSE
            if (!(obj1 is IPermission) || !(obj2 is IPermission))
            {
                return(false);
            }
            var per1 = (IPermission)obj1;
            var per2 = (IPermission)obj2;

            // Use 'Equals' to compare the ids
            return(funCom.Equals(per1.Function, per2.Function) &&
                   per1.Scopes.All(s => per2.Scopes.Any(s2 => scoCom.Equals(s, s2))) &&
                   per2.Scopes.All(s => per1.Scopes.Any(s2 => scoCom.Equals(s, s2))) &&
                   per1.Value == per2.Value);
        }
Beispiel #2
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;
     }));
 }
 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);
         }
     }
 }