Exemplo n.º 1
0
        public virtual void InitializeFrom(ApiPermissionType permission)
        {
            Permissions = new List <PermissionType>();

            //Dictionary<string, string> map = new Dictionary<string, string>
            //{
            //    { "DelegatedWork", "Delegated (work or school account)" },
            //    { "DelegatedPersonal", "Delegated (personal Microsoft account)" },
            //    { "Application", "Application" }
            //};

            PermissionType p = ConvertFromPerm("Delegated (work or school account)", permission.DelegatedWork, permission.DelegatedWorkRestrictedProperties);

            if (p != null)
            {
                Permissions.Add(p);
            }

            p = ConvertFromPerm("Delegated (personal Microsoft account)", permission.DelegatedPersonal, permission.DelegatedPersonalRestrictedProperties);
            if (p != null)
            {
                Permissions.Add(p);
            }

            p = ConvertFromPerm("Application", permission.Application, permission.ApplicationRestrictedProperties);
            if (p != null)
            {
                Permissions.Add(p);
            }
        }
Exemplo n.º 2
0
        public static PermissionsRecord ConvertToRecord(PathKind pathKind, ApiPermissionType perm)
        {
            PermissionsRecord record = null;

            switch (perm.HttpVerb)
            {
            case "GET":
                record = CreateGetPermissionRecord(pathKind);
                break;

            case "PATCH":
                record = CreatePatchPermissionRecord(pathKind);
                break;

            case "POST":
                record = CreatePostPermissionRecord(pathKind);
                break;

            case "DELETE":
                record = CreateDeletePermissionRecord(pathKind);
                break;

            default:
                throw new Exception($"Unknown http verb {perm.HttpVerb}");
            }

            if (record == null)
            {
                throw new Exception($"Invalid HttpVerb {perm.HttpVerb} in {pathKind} path");
            }

            ReadRestrictionsType read = record as ReadRestrictionsType;

            if (read != null && read.ReadByKeyRestrictions != null)
            {
                read.ReadByKeyRestrictions.InitializeFrom(perm);
                return(read);
            }

            record.InitializeFrom(perm);
            return(record);
        }