Beispiel #1
0
 public FileAppService()
 {
     Uow            = new SexMoveContext();
     AzureContainer = new AzureContainer();
     FileRepository = new FileRepository(Uow);
     UserRepository = new UserRepository(Uow);
 }
Beispiel #2
0
        public static async Task <bool> DeleteContainerAsync(AzureContainer containerType)
        {
            // Deletes a container
            var container = GetContainer(containerType);

            return(await container.DeleteIfExistsAsync());
        }
        public static CloudBlobContainer GetContainer(AzureContainer containerType)
        {
            var account = CloudStorageAccount.Parse(Config.Constants.StorageConection);
            //Tener el vinvulo
            var client = account.CreateCloudBlobClient();

            return(client.GetContainerReference(containerType.ToString().ToLower()));
        }
Beispiel #4
0
        public static async Task <bool> DeleteFileAsync(AzureContainer containerType, string fileName)
        {
            // Deletes blob file from a container
            var container = GetContainer(containerType);
            var blob      = container.GetBlobReference(fileName);

            return(await blob.DeleteIfExistsAsync());
        }
Beispiel #5
0
        static CloudBlobContainer GetContainer(AzureContainer containerType)
        {
            // Get container according a string azure connection
            var account = CloudStorageAccount.Parse(Config.Constants.StorageConnection);
            var client  = account.CreateCloudBlobClient();

            return(client.GetContainerReference(containerType.ToString().ToLower()));
        }
        public static async Task <bool> DeleteFyleAsync(AzureContainer containerType, string name)
        {
            //Borra un archivo blob "name" de un contenedor
            var container = GetContainer(containerType);
            var blob      = container.GetBlockBlobReference(name);

            return(await blob.DeleteIfExistsAsync());
        }
Beispiel #7
0
    protected void UploadClick(object sender, EventArgs e)
    {
        if (!SelectedMovieId.HasValue)
        {
            lblSelectedMovie.Text = "Please select a movie";
            return;
        }

        if (!FileUpload1.HasFiles)
        {
            return;
        }

        var movie = Movies[SelectedMovieId.Value];

        AzureContainer azureContainer = new AzureContainer("StorageConnectionString");

        azureContainer.SetContainer(GetMovieContainerName(movie));

        bool isNewMoviePhotosAvailable = false;
        var  files = FileUpload1.PostedFiles;

        using (var dataContext = new ProjectManhattanEntities1())
        {
            foreach (var file in files)
            {
                var photoURL = azureContainer.StoreFile(file.FileName, file.InputStream);

                MoviePhoto moviePhoto = dataContext.MoviePhotoes
                                        .Where(m => m.MovieId == SelectedMovieId.Value).ToList()
                                        .FirstOrDefault(m =>
                                                        string.Equals(Path.GetFileName(m.MoviePhotoURL),
                                                                      Path.GetFileName(photoURL),
                                                                      StringComparison.CurrentCultureIgnoreCase));

                if (moviePhoto == null)
                {
                    moviePhoto = new MoviePhoto()
                    {
                        MovieId       = movie.MovieId,
                        MoviePhotoURL = photoURL,
                    };

                    dataContext.MoviePhotoes.AddObject(moviePhoto);
                    isNewMoviePhotosAvailable = true;
                }
            }

            if (isNewMoviePhotosAvailable)
            {
                dataContext.SaveChanges();
                RefreshPhotos();
            }
        }
    }
Beispiel #8
0
        public static async Task <string> UploadFileAsync(AzureContainer containerType, Stream stream)
        {
            var container = GetContainer(containerType);
            await container.CreateIfNotExistsAsync();

            // Guid is a unique global structure
            var name     = Guid.NewGuid().ToString();
            var fileBlob = container.GetBlockBlobReference(name);
            await fileBlob.UploadFromStreamAsync(stream);

            return(name);
        }
Beispiel #9
0
    protected void btnCreateContainers_OnClick(object sender, EventArgs e)
    {
        AzureContainer azureContainer = new AzureContainer("StorageConnectionString");

        using (var dataContext = new ProjectManhattanEntities1())
        {
            var movies = dataContext.Movies.ToList();
            foreach (var movie in movies)
            {
                var containerName = GetMovieContainerName(movie);
                azureContainer.GetOrCreateContainer(containerName);
            }
        }
    }
Beispiel #10
0
    private void RefreshPhotos()
    {
        if (!SelectedMovieId.HasValue)
        {
            return;
        }

        var            movie          = Movies[SelectedMovieId.Value];
        var            containerName  = GetMovieContainerName(movie);
        AzureContainer azureContainer = new AzureContainer("StorageConnectionString");
        var            files          = azureContainer.GetListFiles(containerName);

        CheckBoxList1.DataSource = files.Select(f => System.IO.Path.GetFileName(f.OriginalString)).ToList();
        CheckBoxList1.DataBind();
    }
Beispiel #11
0
        public static async Task <byte[]> GetFileAsync(AzureContainer containerType, string fileName)
        {
            // Download blob file with the name "fileName" from container "containerType"
            var container = GetContainer(containerType);
            var blob      = container.GetBlobReference(fileName);

            if (await blob.ExistsAsync())
            {
                await blob.FetchAttributesAsync();

                byte[] blobBytes = new byte[blob.Properties.Length];
                await blob.DownloadToByteArrayAsync(blobBytes, 0);

                return(blobBytes);
            }
            return(null);
        }
Beispiel #12
0
        public static async Task <byte[]> GetFileAsync(AzureContainer containerType, string name)
        {
            //Descarga el archivo con el nombre name
            var container = GetContainer(containerType);
            var blob      = container.GetBlobReference(name);

            if (await blob.ExistsAsync())
            {
                await blob.FetchAttributesAsync();

                byte[] blobBytes = new byte[blob.Properties.Length];
                await blob.DownloadToByteArrayAsync(blobBytes, 0);

                return(blobBytes);
            }
            return(null);
        }
        static void Main(string[] args)
        {
            // args "bucket-name" "container-name" "storageaccount-name" "storageaccount-key"

            Console.WriteLine("Listing AWS");
            var awsListTask = AmazonS3.ListObjectsAsync(args[0]);

            Console.WriteLine("Listing Azure");
            var azureListTask = AzureContainer.ListAsync(args[1], args[2], args[3]);

            Console.WriteLine("Awaiting both");
            Task.WhenAll(awsListTask, azureListTask);
            Console.WriteLine("Comparing");
            Compare(awsListTask.Result, azureListTask.Result);
            File.AppendAllLines(AppDomain.CurrentDomain.BaseDirectory + "\\aws.txt", awsListTask.Result);
            File.AppendAllLines(AppDomain.CurrentDomain.BaseDirectory + "\\az.txt", azureListTask.Result);
            Console.WriteLine("Done");
        }
Beispiel #14
0
        //Nos lista todos los archivos de un contenedor
        public static async Task <IList <string> > GetFilesListAsync(AzureContainer containerType)
        {
            //Obtiene todos los archivos blob del contenedor especifico  en un containerType
            var container = GetContainer(containerType);
            var list      = new List <string>();
            BlobContinuationToken token = null;

            do
            {
                var result = await container.ListBlobsSegmentedAsync(token);

                if (result.Results.Count() > 0)
                {
                    var blobs = result.Results.Cast <CloudBlockBlob>().Select(b => b.Name);
                    list.AddRange(blobs);
                }
                token = result.ContinuationToken;
            } while (token != null);
            return(list);
        }
Beispiel #15
0
        public static async Task <List <string> > GetFilesListAsync(AzureContainer containerType)
        {
            // Get all blob files from the specific container
            var container = GetContainer(containerType);
            var list      = new List <string>();
            BlobContinuationToken token = null;

            do
            {
                var result = await container.ListBlobsSegmentedAsync(token);

                if (result.Results.Count() > 0)
                {
                    var blobs = result.Results.Cast <CloudBlockBlob>().Select(b => b.Name);
                    list.AddRange(blobs);
                }
                token = result.ContinuationToken;
            } while (token != null);

            return(list);
        }
Beispiel #16
0
        /// <summary>
        /// Creates a data source that can be used client-side.
        /// </summary>
        public ClientDataSource()
        {
            var connectionString = Settings.Default.DataConnectionString;
            var storageAccount = CloudStorageAccount.Parse(connectionString);

            var blobEndpointUri = storageAccount.BlobEndpoint.AbsoluteUri;
            var tableEndpointUri = storageAccount.TableEndpoint.AbsoluteUri;
            var credentials = storageAccount.Credentials;

            var filesContainerName = Settings.Default.FilesContainerName;
            _files = AzureContainer.Connect(filesContainerName, blobEndpointUri, credentials);

            var outputsContainerName = Settings.Default.OutputsContainerName;
            _outputs = AzureContainer.Connect(outputsContainerName, blobEndpointUri, credentials);

            var procDllsContainerName = Settings.Default.ProcDllsContainerName;
            _procDlls = AzureContainer.Connect(procDllsContainerName, blobEndpointUri, credentials);

            _entries = AzureTable<Entry>.Connect(tableEndpointUri, credentials);
            _users = AzureTable<User>.Connect(tableEndpointUri, credentials);
        }
Beispiel #17
0
    protected void btnSyncMoviePhotos_OnClick(object sender, EventArgs e)
    {
        AzureContainer azureContainer = new AzureContainer("StorageConnectionString");

        using (var dataContext = new ProjectManhattanEntities1())
        {
            var movies = dataContext.Movies
                         .Include("MoviePhotoes")
                         .ToList();
            bool isNewMoviePhotosAvailable = false;
            foreach (var movie in movies)
            {
                var containerName      = GetMovieContainerName(movie);
                var existingPhotosInDB = new HashSet <string>(movie.MoviePhotoes.Select(m => m.MoviePhotoURL));

                foreach (var uri in azureContainer.GetListFiles(containerName))
                {
                    var photoURL = uri.OriginalString;
                    if (!existingPhotosInDB.Contains(photoURL))
                    {
                        //Insert the missing movie photo
                        MoviePhoto moviePhoto = new MoviePhoto()
                        {
                            MovieId       = movie.MovieId,
                            MoviePhotoURL = photoURL,
                        };
                        dataContext.MoviePhotoes.AddObject(moviePhoto);
                        isNewMoviePhotosAvailable = true;
                    }
                }
            }
            if (isNewMoviePhotosAvailable)
            {
                dataContext.SaveChanges();
            }
        }
    }
Beispiel #18
0
    protected void btnDeleteSelectedFiles_OnClick(object sender, EventArgs e)
    {
        if (!SelectedMovieId.HasValue)
        {
            lblSelectedMovie.Text = "Please select a movie";
            return;
        }

        var            movie          = Movies[SelectedMovieId.Value];
        AzureContainer azureContainer = new AzureContainer("StorageConnectionString");

        azureContainer.SetContainer(GetMovieContainerName(movie));

        var items = CheckBoxList1.Items;

        using (var dataContext = new ProjectManhattanEntities1())
        {
            foreach (ListItem item in items)
            {
                if (item.Selected)
                {
                    azureContainer.DeleteFile(item.Text);

                    var moviePhoto = dataContext.MoviePhotoes
                                     .Where(m => m.MovieId == SelectedMovieId.Value).ToList()
                                     .FirstOrDefault(m =>
                                                     string.Equals(Path.GetFileName(m.MoviePhotoURL),
                                                                   item.Text,
                                                                   StringComparison.CurrentCultureIgnoreCase));

                    dataContext.MoviePhotoes.DeleteObject(moviePhoto);
                    dataContext.SaveChanges();
                }
            }
            RefreshPhotos();
        }
    }