public async Task<IHttpActionResult> Post(Translation translation, [ValueProvider(typeof(CultureValueProviderFactory))] string culture = "en-US") { if (!ModelState.IsValid) { return BadRequest(ModelState); } var term = new Term { Id = translation.Id, Key = translation.Key, DictionryId = translation.NamespaceId, Translations = new List<TermTranslation> { new TermTranslation {TermId = translation.Id, Culture = culture, Value = translation.Value} } }; db.Terms.Add(term); await db.SaveChangesAsync(); translation.Id = term.Id; return Created(translation); }
public async Task<IHttpActionResult> Put([FromODataUri] int key, Translation translation, [ValueProvider(typeof(CultureValueProviderFactory))] string culture = "en-US") { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (key != translation.Id) { return BadRequest(); } var termTranslation = new TermTranslation {TermId = translation.Id, Culture = culture, Value = translation.Value}; var term = new Term { Id = key, Key = translation.Key, DictionryId = translation.NamespaceId, Translations = new List<TermTranslation> {termTranslation}}; db.Entry(termTranslation).State = EntityState.Modified; db.Entry(term).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TranslationExists(key)) { return NotFound(); } else { throw; } } return Updated(translation); }