예제 #1
0
        public async Task AddRetentionPolicyToFile(string retentionPolicyKey, string fileKey, string asUserKey = null, string bearerToken = null, bool logToConsole = true)
        {
            var addRetentionPolicyToFileRequest = new AddRetentionPolicyToFileRequest()
            {
                RetentionPolicyKey = retentionPolicyKey
            };

            await Put <AddRetentionPolicyToFileRequest, Empty>(addRetentionPolicyToFileRequest, $"files/{fileKey}/retentionpolicies", asUserKey, bearerToken);

            if (logToConsole)
            {
                Console.WriteLine($"Added retention policy to file: RetentionPolicy=\"{retentionPolicyKey}\", File=\"{fileKey}\"");
            }
            ;
        }
예제 #2
0
        public async Task <IActionResult> AddRetentionPolicyToFile(string fileKey, [FromBody] AddRetentionPolicyToFileRequest request)
        {
            try
            {
                var  userKey           = _contextAccessor.UserKeyFromContext();
                bool userCanAccessFile = await UserCanAccessFile(userKey, fileKey, _hiarcDatabase, AccessLevelGroup.CoOwner);

                if (userCanAccessFile)
                {
                    await _hiarcDatabase.AddRetentionPolicyToFile(fileKey, request);

                    return(Ok(new Empty()));
                }
                else
                {
                    return(StatusCode(StatusCodes.Status403Forbidden));
                }
            }
            catch (Exception ex)
            {
                return(BuildErrorResponse(ex, _logger));
            }
        }