示例#1
0
        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()}
                    }
                };
        }