Example #1
0
        public ActionResult Add(PointAddViewModel viewModel)
        {
            if (string.IsNullOrWhiteSpace(viewModel.Address?.FormattedAddress))
            {
                AddModelError(viewModel, m => m.Address.City, StyleContext.GetTranslation(Dom.Translation.Validation.Required));
            }
            if (ModelState.IsValid)
            {
                Point point = Point.Empty();
                point.Name = viewModel.Name;

                if (!string.IsNullOrWhiteSpace(viewModel.Address?.FormattedAddress))
                {
                    point.Address = new Address
                    {
                        CountryId        = Dom.Country.Ukraine,
                        City             = viewModel.Address.City,
                        PostalCode       = viewModel.Address.PostalCode,
                        Street           = viewModel.Address.Street,
                        Number           = viewModel.Address.Number,
                        Latitude         = double.Parse(viewModel.Address.Latitude.Replace(".", ",")),
                        Longitude        = double.Parse(viewModel.Address.Longitude.Replace(".", ",")),
                        FormattedAddress = viewModel.Address.FormattedAddress
                    };
                }

                EntityContext.AddEntityProgress(
                    point.EntityInfo,
                    new EntityProgress
                {
                    OrganizationId     = viewModel.OrganizationId,
                    EntityStateAfterId = Dom.EntityType.Point.State.Created
                }
                    );
                EntityContext.AddEntityOrganization(
                    point.EntityInfo,
                    viewModel.OrganizationId,
                    Dom.EntityType.Point.State.Created
                    );
                _pointRepository.AddOrUpdate(point);
                _pointRepository.UnitOfWork.SaveChanges();

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

            ICollection <SelectListItemCount> organizationItems = _organizationRepository.GetOrganizations(
                UserContext.User.Id,
                UserContext.User.OrganizationId,
                new List <int> {
                Dom.OrganizationType.Club
            }
                );

            viewModel.OrganizationItems = Mapper.Map <ICollection <SelectListItem> >(organizationItems);
            return(View(Mvc.View.Point.Add, viewModel));
        }