public HttpResult Post(CreateDivision request) { var division = new Division().PopulateWith(request.SanitizeDtoHtml()); var newId = Db.Insert(division, selectIdentity: true); return new HttpResult(new DivisionResponse {Division = Get(new FetchDivision {Id = (int) newId}).Division}) { StatusCode = HttpStatusCode.Created, Headers = { {HttpHeaders.Location, Request.AbsoluteUri.CombineWith(newId)} } }; }
public ActionResult AddDivision(CreateDivision model) { if (ModelState.IsValid) { Division division = new Division { Name = model.Name, Head = model.Head, CompanyId = brioContext.CurrentUser.CompanyId }; try { divisionRepository.Insert(division); divisionRepository.SaveChanges(); } catch (Exception e) { TempData["IsSuccess"] = false; TempData["Message"] = "Сохранение отдела закончилось неудачей. Попробуйте повторить попвтку."; TempData["CreateDivision"] = model; return(RedirectToAction("Index")); } } else { TempData["IsSuccess"] = false; TempData["Message"] = "Пожалуйста проверьте введенные данные."; TempData["CreateDivision"] = model; return(RedirectToAction("Index")); } TempData["IsSuccess"] = true; TempData["Message"] = "Отдел успешно создан!"; return(RedirectToAction("Index")); }
// Batch Create Divisions public List<HttpResult> Post(CreateDivision[] requests) { // TODO: Can't wrap in transaction because CreateDivision uses one. This would cause nested transactions. var responses = requests.Map(Post); return responses; }
// Create Division public HttpResult Post(CreateDivision request) { var baseballYear = _adminSvc.Get(new GetSettings()).BaseballYear; // Mapping. var division = request.ConvertTo<Division>(); division.Year = baseballYear; request.PlayerIds.ForEach(playerId => division.Players.Add(new Player {Id = playerId})); var divisionPlayers = new List<DivisionalPlayer>(); using (IDbTransaction trans = Db.OpenTransaction()) { // Save the division Db.Save(division); // Create divisional player assignments. division.Players.ForEach( player => divisionPlayers.Add(new DivisionalPlayer { DivisionId = division.Id, PlayerId = player.Id })); // Save divisional player assignments if (divisionPlayers.Any()) Db.SaveAll(divisionPlayers); trans.Commit(); } return new HttpResult(Get(new GetDivision { Id = division.Id })) { StatusCode = HttpStatusCode.Created, Headers = { {HttpHeaders.Location, new GetPlayer {Id = division.Id}.ToGetUrl()} } }; }