Example #1
0
        public async Task <IActionResult> CreateFolder([FromForm] FolderUploadProfileViewModel formdata)
        {
            try
            {
                if (formdata.Directory == null)
                {
                    formdata.Directory = "";
                }

                // Find User
                var user = await _dbContext.Users.FindAsync(formdata.UserID);

                if (user == null)
                {
                    return(NotFound(new { message = "User Not Found" }));
                }

                // Find Project
                var project = await _dbContext.Projects.FindAsync(formdata.ProjectID);

                if (project == null)
                {
                    return(NotFound(new { message = "Project Not Found" }));
                }

                var        filePath   = formdata.Directory + "$$$.$$";
                BlobClient blobClient = await _blobService.CreateFolder(project.Name.ToLower(), filePath);

                BlobProperties properties = blobClient.GetProperties();

                // Create BlobFile
                var newBlobFile = new BlobFile
                {
                    Container    = blobClient.BlobContainerName,
                    Directory    = formdata.Directory,
                    Name         = "$$$",
                    Extension    = ".$$",
                    Size         = (int)properties.ContentLength,
                    Uri          = blobClient.Uri.ToString(),
                    DateCreated  = properties.CreatedOn.UtcDateTime,
                    LastModified = properties.LastModified.UtcDateTime,
                    UserID       = formdata.UserID,
                    ProjectID    = formdata.ProjectID
                };

                // Update Database with entry
                await _dbContext.BlobFiles.AddAsync(newBlobFile);

                await _dbContext.SaveChangesAsync();

                // Return Ok Status
                return(Ok(new
                {
                    result = newBlobFile,
                    message = "File Successfully Uploaded"
                }));
            }
            catch (Exception e)
            {
                // Return Bad Request If There Is Any Error
                return(BadRequest(new
                {
                    error = e
                }));
            }
        }