Example #1
0
        public static async Task <AlbumSummary> CreateAlbumAsync(
            ApplicationDbContext dbContext,
            UserInfo user,
            AlbumDefinition createRequest)
        {
            var entity = new MediaAlbum
            {
                User        = user,
                Title       = createRequest.Title,
                Description = createRequest.Description
            };

            dbContext.MediaAlbums.Add(entity);
            await dbContext.SaveChangesAsync();

            await SearchOperations.IndexAlbumAsync(entity);

            return(new AlbumSummary
            {
                Id = entity.MediaAlbumId,
                UserId = user.UserInfoId,
                Title = entity.Title,
                Description = entity.Description,
                SampleMediaUrls = new string[0]
            });
        }
Example #2
0
        public static async Task <HttpStatusCode> ChangeAlbumAsync(
            ApplicationDbContext dbContext,
            UserInfo user,
            int albumId,
            AlbumDefinition modifyRequest)
        {
            MediaAlbum entity = await dbContext.MediaAlbums.SingleOrDefaultAsync(
                a => a.MediaAlbumId == albumId);

            if (entity == null)
            {
                return(HttpStatusCode.NotFound);
            }

            if (entity.UserId != user.UserInfoId)
            {
                return(HttpStatusCode.Forbidden);
            }

            entity.Title       = modifyRequest.Title;
            entity.Description = modifyRequest.Description;

            await dbContext.SaveChangesAsync();

            await SearchOperations.IndexAlbumAsync(entity);

            return(HttpStatusCode.OK);
        }
Example #3
0
        public async Task Put(
            int id,
            AlbumDefinition modifyRequest)
        {
            MediaAlbum album = await DbContext.MediaAlbums.SingleOrDefaultAsync(
                a => a.MediaAlbumId == id);
            if (album == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            if (album.UserId != UserId)
            {
                throw new HttpResponseException(HttpStatusCode.Forbidden);
            }

            UserInfo user = await GetUserInfoAsync();
            HttpStatusCode result = await AlbumOperations.ChangeAlbumAsync(
                DbContext,
                user,
                id,
                modifyRequest);

            if (result != HttpStatusCode.OK)
            {
                throw new HttpResponseException(result);
            }
        }
Example #4
0
        public async Task Put(
            int id,
            AlbumDefinition modifyRequest)
        {
            MediaAlbum album = await DbContext.MediaAlbums.SingleOrDefaultAsync(
                a => a.MediaAlbumId == id);

            if (album == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            if (album.UserId != UserId)
            {
                throw new HttpResponseException(HttpStatusCode.Forbidden);
            }

            UserInfo user = await GetUserInfoAsync();

            HttpStatusCode result = await AlbumOperations.ChangeAlbumAsync(
                DbContext,
                user,
                id,
                modifyRequest);

            if (result != HttpStatusCode.OK)
            {
                throw new HttpResponseException(result);
            }
        }
Example #5
0
 /// <param name='operations'>
 /// Reference to the Rg.ClientApp.IAlbums.
 /// </param>
 /// <param name='createRequest'>
 /// Required.
 /// </param>
 public static AlbumSummary PostByCreaterequest(this IAlbums operations, AlbumDefinition createRequest)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((IAlbums)s).PostByCreaterequestAsync(createRequest);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
Example #6
0
        public async Task<AlbumSummary> Post(
            AlbumDefinition createRequest)
        {
            UserInfo user = await GetUserInfoAsync();
            AlbumSummary result = await AlbumOperations.CreateAlbumAsync(
                DbContext, user, createRequest);
            if (result == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            return result;
        }
Example #7
0
        public async Task <AlbumSummary> Post(
            AlbumDefinition createRequest)
        {
            UserInfo user = await GetUserInfoAsync();

            AlbumSummary result = await AlbumOperations.CreateAlbumAsync(
                DbContext, user, createRequest);

            if (result == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            return(result);
        }
Example #8
0
        public static async Task<HttpStatusCode> ChangeAlbumAsync(
            ApplicationDbContext dbContext,
            UserInfo user,
            int albumId,
            AlbumDefinition modifyRequest)
        {
            MediaAlbum entity = await dbContext.MediaAlbums.SingleOrDefaultAsync(
                a => a.MediaAlbumId == albumId);
            if (entity == null)
            {
                return HttpStatusCode.NotFound;
            }

            if (entity.UserId != user.UserInfoId)
            {
                return HttpStatusCode.Forbidden;
            }

            entity.Title = modifyRequest.Title;
            entity.Description = modifyRequest.Description;

            await dbContext.SaveChangesAsync();
            await SearchOperations.IndexAlbumAsync(entity);

            return HttpStatusCode.OK;
        }
Example #9
0
        public static async Task<AlbumSummary> CreateAlbumAsync(
            ApplicationDbContext dbContext,
            UserInfo user,
            AlbumDefinition createRequest)
        {
            var entity = new MediaAlbum
            {
                User = user,
                Title = createRequest.Title,
                Description = createRequest.Description
            };
            dbContext.MediaAlbums.Add(entity);
            await dbContext.SaveChangesAsync();
            await SearchOperations.IndexAlbumAsync(entity);

            return new AlbumSummary
            {
                Id = entity.MediaAlbumId,
                UserId = user.UserInfoId,
                Title = entity.Title,
                Description = entity.Description,
                SampleMediaUrls = new string[0]
            };
        }
Example #10
0
        /// <param name='operations'>
        /// Reference to the Rg.ClientApp.IAlbums.
        /// </param>
        /// <param name='id'>
        /// Required.
        /// </param>
        /// <param name='modifyRequest'>
        /// Required.
        /// </param>
        /// <param name='cancellationToken'>
        /// Cancellation token.
        /// </param>
        public static async Task <object> PutByIdAndModifyrequestAsync(this IAlbums operations, int id, AlbumDefinition modifyRequest, CancellationToken cancellationToken = default(System.Threading.CancellationToken))
        {
            Microsoft.Rest.HttpOperationResponse <object> result = await operations.PutByIdAndModifyrequestWithOperationResponseAsync(id, modifyRequest, cancellationToken).ConfigureAwait(false);

            return(result.Body);
        }
Example #11
0
 /// <param name='operations'>
 /// Reference to the Rg.ClientApp.IAlbums.
 /// </param>
 /// <param name='id'>
 /// Required.
 /// </param>
 /// <param name='modifyRequest'>
 /// Required.
 /// </param>
 public static object PutByIdAndModifyrequest(this IAlbums operations, int id, AlbumDefinition modifyRequest)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((IAlbums)s).PutByIdAndModifyrequestAsync(id, modifyRequest);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
Example #12
0
        /// <param name='operations'>
        /// Reference to the Rg.ClientApp.IAlbums.
        /// </param>
        /// <param name='createRequest'>
        /// Required.
        /// </param>
        /// <param name='cancellationToken'>
        /// Cancellation token.
        /// </param>
        public static async Task <AlbumSummary> PostByCreaterequestAsync(this IAlbums operations, AlbumDefinition createRequest, CancellationToken cancellationToken = default(System.Threading.CancellationToken))
        {
            Microsoft.Rest.HttpOperationResponse <Rg.ClientApp.Models.AlbumSummary> result = await operations.PostByCreaterequestWithOperationResponseAsync(createRequest, cancellationToken).ConfigureAwait(false);

            return(result.Body);
        }
Example #13
0
        /// <param name='id'>
        /// Required.
        /// </param>
        /// <param name='modifyRequest'>
        /// Required.
        /// </param>
        /// <param name='cancellationToken'>
        /// Cancellation token.
        /// </param>
        public async Task <HttpOperationResponse <object> > PutByIdAndModifyrequestWithOperationResponseAsync(int id, AlbumDefinition modifyRequest, CancellationToken cancellationToken = default(System.Threading.CancellationToken))
        {
            // Validate
            if (modifyRequest == null)
            {
                throw new ArgumentNullException("modifyRequest");
            }

            // Tracing
            bool   shouldTrace  = ServiceClientTracing.IsEnabled;
            string invocationId = null;

            if (shouldTrace)
            {
                invocationId = ServiceClientTracing.NextInvocationId.ToString();
                Dictionary <string, object> tracingParameters = new Dictionary <string, object>();
                tracingParameters.Add("id", id);
                tracingParameters.Add("modifyRequest", modifyRequest);
                ServiceClientTracing.Enter(invocationId, this, "PutByIdAndModifyrequestAsync", tracingParameters);
            }

            // Construct URL
            string url = "";

            url = url + "/api/Albums/";
            url = url + Uri.EscapeDataString(id.ToString());
            string baseUrl = this.Client.BaseUri.AbsoluteUri;

            // Trim '/' character from the end of baseUrl and beginning of url.
            if (baseUrl[baseUrl.Length - 1] == '/')
            {
                baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
            }
            if (url[0] == '/')
            {
                url = url.Substring(1);
            }
            url = baseUrl + "/" + url;
            url = url.Replace(" ", "%20");

            // Create HTTP transport objects
            HttpRequestMessage httpRequest = new HttpRequestMessage();

            httpRequest.Method     = HttpMethod.Put;
            httpRequest.RequestUri = new Uri(url);

            // Set Headers

            // Set Credentials
            if (this.Client.Credentials != null)
            {
                cancellationToken.ThrowIfCancellationRequested();
                await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
            }

            // Serialize Request
            string requestContent = null;
            JToken requestDoc     = modifyRequest.SerializeJson(null);

            requestContent      = requestDoc.ToString(Newtonsoft.Json.Formatting.Indented);
            httpRequest.Content = new StringContent(requestContent, Encoding.UTF8);
            httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");

            // Send Request
            if (shouldTrace)
            {
                ServiceClientTracing.SendRequest(invocationId, httpRequest);
            }
            cancellationToken.ThrowIfCancellationRequested();
            HttpResponseMessage httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);

            if (shouldTrace)
            {
                ServiceClientTracing.ReceiveResponse(invocationId, httpResponse);
            }
            HttpStatusCode statusCode = httpResponse.StatusCode;

            cancellationToken.ThrowIfCancellationRequested();
            string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);

            if (statusCode != HttpStatusCode.NoContent)
            {
                HttpOperationException <object> ex = new HttpOperationException <object>();
                ex.Request  = httpRequest;
                ex.Response = httpResponse;
                ex.Body     = null;
                if (shouldTrace)
                {
                    ServiceClientTracing.Error(invocationId, ex);
                }
                throw ex;
            }

            // Create Result
            HttpOperationResponse <object> result = new HttpOperationResponse <object>();

            result.Request  = httpRequest;
            result.Response = httpResponse;

            // Deserialize Response
            object resultModel = default(object);

            result.Body = resultModel;

            if (shouldTrace)
            {
                ServiceClientTracing.Exit(invocationId, result);
            }
            return(result);
        }