public async Task <IHttpActionResult> PostDefaultAsync(int id, CancellationToken cancellationToken)
        {
            var playlist = await _services.Media.FindByIdAsync(id, cancellationToken);

            if (playlist == null)
            {
                return(NotFound());
            }
            await _services.Media.SetDefaultAsync(playlist, cancellationToken);

            await _services.SaveAsync(cancellationToken);

            return(Ok());
        }
Example #2
0
        public async Task <HttpResponseMessage> PostAsync(int playlistId, [FromBody] PlaylistItemDto model, CancellationToken cancellationToken)
        {
            var playlist = await _services.Media.FindByIdAsync(playlistId, cancellationToken);

            if (playlist == null)
            {
                return(Request.CreateFaultResponse(HttpStatusCode.NotFound, "Playlist was not found."));
            }
            if (ProjectIdentity == null || ProjectIdentity.Id != playlist.ContactId)
            {
                return(Request.CreateFaultResponse(HttpStatusCode.Forbidden, "Playlist has already been taken."));
            }
            if (ModelState.IsValid)
            {
                var entity = new MediaPlaylistItem
                {
                    PlaylistId  = playlistId,
                    Name        = model.Name,
                    MediaType   = model.MediaType,
                    MediaId     = model.MediaId,
                    Duration    = model.Duration,
                    PublishDate = model.PublishDate
                };
                await _services.Media.AddItemAsync(entity, cancellationToken);

                await _services.SaveAsync(cancellationToken);

                var result = new MediaPlaylistItemResult
                {
                    Id          = entity.Id,
                    SortOrderId = entity.SortOrderId,
                    Name        = entity.Name,
                    MediaType   = entity.MediaType,
                    MediaId     = entity.MediaId,
                    Duration    = entity.Duration,
                    PublishDate = entity.PublishDate
                };
                return(Request.CreateResponse(HttpStatusCode.Created, result));
            }
            return(Request.CreateResponse(HttpStatusCode.BadRequest));
        }
        /// <summary>
        /// Adds a document to the database.
        /// </summary>
        /// <param name="file">The file to create.</param>
        /// <param name="ownerId">The unique user identifier from the data source for the user.</param>
        /// <param name="cancellationToken">A token to observe while waiting for the task to complete.</param>
        /// <returns>
        /// A task that represents the asynchronous operation.
        /// </returns>
        /// <exception cref="System.ArgumentNullException">file</exception>
        public virtual async Task <FileItem> CreateAsync(FileItem file, int ownerId, CancellationToken cancellationToken)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }
            if (file.ParentId != null)
            {
                await ExpectTypeAsync(file.ParentId.Value, FileType.Folder, cancellationToken);
            }

            file = await AddAsync(file, ownerId, cancellationToken);

            await _services.SaveAsync(cancellationToken);

            await _securityManager.SetAccessRuleAsync(AccessObjectType.File, file.Id, new AccessRuleItem { User = new AccountItem {
                                                                                                               Id = ownerId
                                                                                                           }, Permission = AccessPermission.IsOwner }, cancellationToken);

            return(file);
        }
        public async Task <IHttpActionResult> SetNameAsync(int id, [FromBody] string name, CancellationToken cancellationToken)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(BadRequest());
            }

            //SecurityHelper.Authorize(Services.User, AccessSource.File, id, AccessPermission.CanEdit);
            await _services.Drive.SetNameAsync(id, name, cancellationToken);

            await _services.SaveAsync(cancellationToken);

            return(Ok());
        }