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()); }
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()); }