コード例 #1
0
ファイル: PigeonController.cs プロジェクト: techieshop/RP
        public ActionResult Add(PigeonAddViewModel viewModel)
        {
            int year;

            if (!int.TryParse(viewModel.Year, out year))
            {
                AddModelError(viewModel, m => m.Year, StyleContext.GetTranslation(Dom.Translation.Pigeon.IncorrectYear));
            }
            else
            {
                if (year < DateTime.Now.AddYears(-25).Year || year > DateTime.Now.Year)
                {
                    AddModelError(viewModel, m => m.Year, StyleContext.GetTranslation(Dom.Translation.Pigeon.IncorrectYear));
                }
            }

            if (ModelState.IsValid)
            {
                Pigeon pigeon = Pigeon.Empty();
                pigeon.MemberId = viewModel.OwnerId.Value;
                pigeon.SexId    = viewModel.SexId;
                pigeon.Year     = year;
                pigeon.Code     = viewModel.Code;
                pigeon.Number   = viewModel.Number;

                var member         = _memberRepository.Get <Member>(pigeon.MemberId);
                var organizationId = member.EntityInfo.EntityOrganizations.First().OrganizationId;
                EntityContext.AddEntityProgress(
                    pigeon.EntityInfo,
                    new EntityProgress
                {
                    OrganizationId     = organizationId,
                    EntityStateAfterId = Dom.EntityType.Pigeon.State.Created
                }
                    );
                EntityContext.AddEntityOrganization(
                    pigeon.EntityInfo,
                    organizationId,
                    Dom.EntityType.Pigeon.State.Created
                    );
                _pigeonRepository.AddOrUpdate(pigeon);
                _pigeonRepository.UnitOfWork.SaveChanges();

                return(RedirectToAction(Mvc.Controller.Pigeon.List, Mvc.Controller.Pigeon.Name));
            }

            ICollection <SelectListItemCount> owners = _memberRepository.GetMembers(
                UserContext.User.Id,
                UserContext.User.OrganizationId
                );

            viewModel.SexItems   = InitSexSelectListItems();
            viewModel.OwnerItems = Mapper.Map <ICollection <SelectListItem> >(owners);
            return(View(Mvc.View.Pigeon.Add, viewModel));
        }