public async Task <Talk> UpdateTalk(string id, UpdatedTalk talk, string version) { if (version == null) { throw new ArgumentNullException(nameof(version), "Must provide version during update"); } using (var session = this.store.OpenAsyncSession()) { // Load existing talk var existingTalk = await session.LoadAsync <Talk>(id); // Update properties existingTalk.Headline = talk.Headline; existingTalk.Description = talk.Description; existingTalk.Speaker = talk.Speaker; try { await session.StoreAsync(existingTalk, version, id); await session.SaveChangesAsync(); } catch (ConcurrencyException cex) { throw new ApplicationException( "Tried to update a talk but looks like someone else got there first! " + "Try refreshing the page. Detailed explanation: " + cex.Message, cex); } return(existingTalk); } }
public async Task <Talk> UpdateTalk(string id, UpdatedTalk talk, string version) { using (var session = this.store.OpenAsyncSession()) { //Load existing talk var existingTalk = await session.LoadAsync <Talk>(id); //update properties existingTalk.Headline = talk.Headline; existingTalk.Description = talk.Description; existingTalk.Speaker = talk.Speaker; try { await session.StoreAsync(existingTalk, version, id); await session.SaveChangesAsync(); } catch (ConcurrencyException cex) { throw new ApplicationException("Try refreshing the page: " + cex.Message + cex); } return(existingTalk); } }
public Task <Talk> UpdateTalk(string id, UpdatedTalk talk, string version) { var oldTalk = Talks.FirstOrDefault(t => t.Id == id); oldTalk.Headline = talk.Headline; oldTalk.Description = talk.Description; return(Task.FromResult(oldTalk)); }
public async Task <(UpdatedTalk Talk, string Version)> GetTalkForEditing(string id) { using (var session = this.store.OpenAsyncSession()) { var talk = await session.LoadAsync <Talk>(id); var updatedTalk = new UpdatedTalk() { Headline = talk.Headline, Description = talk.Description, Speaker = talk.Speaker }; return(Talk : updatedTalk, Version : null); } }
public async Task <Talk> UpdateTalk(string id, UpdatedTalk talk, string version) { using (var session = this.store.OpenAsyncSession()) { // Load existing talk var existingTalk = await session.LoadAsync <Talk>(id); // Update properties existingTalk.Headline = talk.Headline; existingTalk.Description = talk.Description; existingTalk.Speaker = talk.Speaker; await session.SaveChangesAsync(); return(existingTalk); } }
public async Task <Talk> UpdateTalk(string id, UpdatedTalk talk, string version) { throw new NotImplementedException("TODO: Implement UpdateTalk"); }