Exemplo n.º 1
0
        /// <summary>
                /// 角色格式定義
                /// </summary>
                /// <param name="Roles"></param>
                /// <param name="RolePermissions"></param>
                /// <returns></returns>
                public List <RolesResource> RolestViews(IEnumerable <RolesModels> Roles, IEnumerable <RolePermissionsModels> RolePermissions)
        {
            List <RolesResource> RolesView = new List <RolesResource>();

            PermissionsResource[] PermissionsView;

            foreach (var r in Roles)
            {
                var FunctionNamesCount = (from p in RolePermissions
                                          where (p.role_id == r.role_id)
                                          select new { p.permissions.function_names }
                                          ).Distinct().ToList();

                PermissionsView = new PermissionsResource[FunctionNamesCount.Count()];

                int count = 0;

                foreach (var f in FunctionNamesCount)
                {
                    PermissionsView[count]         = new PermissionsResource();
                    PermissionsView[count].actions = new List <ActionsResource>();

                    PermissionsView[count].function_names = new FunctionNamesResource();
                    PermissionsView[count].function_names.function_name_id      = f.function_names.function_name_id;
                    PermissionsView[count].function_names.function_name         = f.function_names.function_name;
                    PermissionsView[count].function_names.function_name_chinese = f.function_names.function_name_chinese;

                    var ActionsList = (from p in RolePermissions
                                       where (p.role_id == r.role_id && p.permissions.function_names.function_name == f.function_names.function_name.ToString())
                                       select new { p.permissions.actions }
                                       ).Distinct().ToList();

                    foreach (var a in ActionsList)
                    {
                        PermissionsView[count].actions.Add(new ActionsResource()
                        {
                            action_id = a.actions.action_id,
                            action    = a.actions.action
                        });
                    }

                    count++;
                }

                RolesView.Add(new RolesResource()
                {
                    role_id     = r.role_id,
                    role        = r.role,
                    Permissions = PermissionsView,
                    create_time = r.create_time,
                    update_time = r.update_time
                });
            }

            return(RolesView);
        }
Exemplo n.º 2
0
        public void CreateNewFile(string folderID, DriveService driveService, string filePath, string fileName)
        {
            var fileMetadata = new Google.Apis.Drive.v3.Data.File()
            {
                Name = fileName,

                //find Mimetype corresponding with type of file inside below link
                //https://developers.google.com/drive/v3/web/integrate-open#open_and_convert_google_docs_in_your_app
                MimeType = "application/pdf",

                //Choose what parent folder containt file
                //Earch file/folder inside google drive has identify id
                //Take that when reading all folder when start or after create new folder
                Parents = new List <string> {
                    folderID
                },
            };

            FilesResource.CreateMediaUpload request;

            using (var stream = new FileStream(filePath, FileMode.Open))
            {
                request        = driveService.Files.Create(fileMetadata, stream, "application/pdf");
                request.Fields = "id, webViewLink";
                request.Upload();
            }

            //After create folder, get back folder to take folderID
            var file = request.ResponseBody;

            file.Shared = true;

            //share link will has format like below
            //https://drive.google.com/file/d/FILE_ID/view?usp=sharing
            //Console.WriteLine($"File link: https://drive.google.com/file/d/{file.Id}/view?usp=sharing");

            Permission permission = new Permission();

            permission.Role = "reader";
            permission.Type = "anyone";

            PermissionsResource permissionsResource = new PermissionsResource(driveService);

            permissionsResource.Create(permission, file.Id).Execute();
            WebViewLink = file.WebViewLink;
        }