public async Task <IActionResult> AddNewPicture(AddNewPictureVM model)
        {
            var validImageTypes = new string[]
            {
                "image/gif",
                "image/jpeg",
                "image/pjpeg",
                "image/png"
            };

            if (ModelState.IsValid)
            {
                if (!validImageTypes.Contains(model.Picture.ContentType))
                {
                    ModelState.AddModelError("CustomError", "Please choose either a GIF, JPG or PNG image.");
                    model.Picture = null;
                    return(View(model));
                }
                else
                {
                    ApplicationUser applicationUser = await _userManager.GetUserAsync(HttpContext.User);

                    Guid currentUserId = new Guid(applicationUser.Id);
                    if (!await _repository.ContainsUserAsync(currentUserId))
                    {
                        return(RedirectToAction("MakeNewProfile", "Main"));
                    }
                    BinaryReader reader = new BinaryReader(model.Picture.OpenReadStream());
                    byte[]       data   = reader.ReadBytes((int)model.Picture.Length);
                    Album        album  = await _repository.GetAlbumAsync(model.AlbumId);

                    var     uploader = new AzureStorageUtility(_storageAccountName, _storageAccountKey);
                    Picture picture  = await uploader.Upload(_storageContainerName, data);

                    picture.UserId      = currentUserId;
                    picture.Description = model.Description;
                    picture.Album       = album;

                    await _repository.AddPictureAsync(picture, currentUserId);

                    return(RedirectToAction("Index", album.Id));
                }
            }
            return(View(model));
        }