public async Task <IActionResult> NewDateTime(int?id, [Bind("DateTime,EventTypeName,EventDescription")] CritterExEditViewModel model) { if (id == null) { throw new Exception("ID isn't being passed."); } using (var transact = await this._livestock.Database.BeginTransactionAsync()) { var dateTime = new CritterLifeEventDatetime { Comment = "N/A", DateTime = model.DateTime.DateTime, VersionNumber = 1 }; await this._livestock.AddAsync(dateTime); await this._livestock.SaveChangesAsync(); // We have to save here so dateTime gets an Id try { await this.AddNewEvent(id.Value, dateTime.CritterLifeEventGiveBirthId, model.EventTypeName, model.EventDescription); transact.Commit(); } catch (OnlyOneEventAllowedException) { transact.Rollback(); } } return(RedirectToAction(nameof(CritterExController.Edit), "CritterEx", new { id })); }
public async Task <IActionResult> Edit(int id, [Bind("CritterLifeEventGiveBirthId,Comment,DateTime,Timestamp,VersionNumber")] CritterLifeEventDatetime val) { if (val.CritterLifeEventGiveBirthId != id) { return(NotFound()); } this.FixNullFields(val); if (ModelState.IsValid) { try { _context.Update(val); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!Exists(val.CritterLifeEventGiveBirthId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(val)); }
private void FixNullFields(CritterLifeEventDatetime val) { if (String.IsNullOrWhiteSpace(val.Comment)) { val.Comment = "N/A"; } }
public async Task <IActionResult> Create([Bind("CritterLifeEventGiveBirthId,Comment,DateTime,Timestamp,VersionNumber")] CritterLifeEventDatetime val) { this.FixNullFields(val); if (ModelState.IsValid) { _context.Add(val); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(val)); }