public async Task <IActionResult> UploadFile(string partId) { // get part Part part; try { part = await CosmosRepo.GetDocument <Part>(ConstantNames.PARTS, partId); } catch (DocumentClientException) { return(ItemNotFoundResult(partId)); } // read contents string contents; using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { contents = await reader.ReadToEndAsync(); } // upload blob string container = ConstantNames.XMLCONTAINER; string blobId = await BlobRepo.UploadBlob(container, contents); string uri = BlobRepo.GetBlobUri(container, blobId); // change part part.Path = blobId; await CosmosRepo.ReplaceDocument <Part>(ConstantNames.PARTS, partId, part); return(Created(uri, contents)); }
public override async Task <IActionResult> Post([FromBody] Event docIn) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // check required properties if (docIn.Name == null) { return(MissingPropertyResult("name")); } if (docIn.Band == null) { return(MissingPropertyResult("band")); } // remove unused properties docIn.Songs = new List <string>(); docIn.Users = new List <string>(); docIn.CurrentSong = null; // get band if it exists string bandId = docIn.Band; string bandCollection = CollectionNames.BANDS; Band band = null; try { band = await CosmosRepo.GetDocument <Band>(bandCollection, bandId); } catch (DocumentClientException) { return(ItemNotFoundResult(bandId, bandCollection)); } // create event Event created = await CosmosRepo.CreateDocument(CollectionName, docIn); string eventId = created.Id; // update band if (!band.Events.Contains(eventId)) { List <string> events = band.Events.ToList(); events.Add(eventId); band.Events = events; await CosmosRepo.ReplaceDocument(bandCollection, bandId, band); } return(Created(GetGetUri(eventId), created)); }
public async Task <IActionResult> RemoveEvent(string bandid, string eventid) { if (!ModelState.IsValid) { return(BadRequest()); } // GET band Band band = await CosmosRepo.GetDocument <Band>(ConstantNames.BANDS, bandid); if (band == null) { return(ItemNotFoundResult(bandid)); } // GET event Event ev = await CosmosRepo.GetDocument <Event>(ConstantNames.EVENTS, eventid); if (ev == null) { return(ItemNotFoundResult(eventid)); } // remove event from band List <string> events = band.Events.ToList(); events.Remove(eventid); band.Events = events; Band result = await CosmosRepo.ReplaceDocument(ConstantNames.BANDS, bandid, band); // remove event ID from each user foreach (string userid in ev.Users) { Player player = await CosmosRepo.GetDocument <Player>(ConstantNames.PLAYERS, userid); if (player != null) { List <string> userEvents = player.Events.ToList(); userEvents.Remove(eventid); player.Events = userEvents; await CosmosRepo.ReplaceDocument(ConstantNames.PLAYERS, userid, player); } } return(Ok(result)); }
public override async Task <IActionResult> Post([FromBody] Part docIn) { // make sure required fields are included if (docIn.Instrument == null) { return(MissingPropertyResult("instrument")); } if (docIn.Song == null) { return(MissingPropertyResult("song")); } docIn.Path = null; // make sure song exists string songsCollection = ConstantNames.SONGS; string songId = docIn.Song; Song song; try { song = await CosmosRepo.GetDocument <Song>(songsCollection, songId); } catch (DocumentClientException) { return(ItemNotFoundResult(songId, songsCollection)); } // create part Part newDoc = await CosmosRepo.CreateDocument(CollectionName, docIn); string partId = newDoc.Id; // update song if (!song.Parts.Contains(partId)) { List <string> parts = song.Parts.ToList(); parts.Add(partId); song.Parts = parts; await CosmosRepo.ReplaceDocument(songsCollection, songId, song); } return(Created(GetGetUri(newDoc.Id), newDoc)); }