public async Task <ActionResult <CollectedFilm> > PostAddCollectedFilm(CollectedFilm film)
        {
            /* Validate Post */
            if (film == null | film.FilmId == 0 | film.UserId == null)
            {
                return(BadRequest());
            }

            /* Set Partition and Row Keys */
            film.PartitionKey = film.UserId;
            film.RowKey       = film.FilmId.ToString() + "-" + film.Format;

            /* Insert Row */
            TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(film);
            TableResult    result = await table.ExecuteAsync(insertOrMergeOperation);

            CollectedFilm insertedCollectedFilm = result.Result as CollectedFilm;

            return(Ok(insertedCollectedFilm));
        }
        public async Task <ActionResult <CollectedFilm> > PutUpdateCollectedFilm([FromRoute] string rowKey, [FromBody] CollectedFilm film)
        {
            /* Validate Put */
            if (rowKey != film.FilmId.ToString() + "-" + film.Format || film == null || film.UserId == null)
            {
                return(BadRequest());
            }

            /* Set Partition and Row Keys and ETag */
            film.PartitionKey = film.UserId;
            film.RowKey       = film.FilmId.ToString() + "-" + film.Format;
            film.ETag         = "*";

            /* Merge Row */
            TableOperation mergeOperation = TableOperation.Merge(film);
            TableResult    result         = await table.ExecuteAsync(mergeOperation);

            CollectedFilm mergedCollectedFilm = result.Result as CollectedFilm;

            return(Ok(mergedCollectedFilm));
        }
        public async Task <ActionResult <CollectedFilm> > DeleteCollectedFilm(string rowKey)
        {
            /* Validate Post */
            if (rowKey == null)
            {
                return(BadRequest());
            }

            var tableQueryResult = table.CreateQuery <CollectedFilm>().Where(row => row.RowKey == rowKey).FirstOrDefault();

            if (tableQueryResult == null)
            {
                return(NotFound());
            }

            TableOperation deleteOperation = TableOperation.Delete(tableQueryResult);
            TableResult    result          = await table.ExecuteAsync(deleteOperation);

            CollectedFilm deletedCollectedFilm = result.Result as CollectedFilm;

            return(Ok(deletedCollectedFilm));
        }