示例#1
0
        public ActionResult Update(int?id, int?relatedEntityId)
        {
            var           idValue       = id.GetValueOrDefault();
            CityViewModel cityViewModel = new CityViewModel();

            var cityCulture = _culturedBaseService.CulturedEntities.Include(x => x.City)
                              .FirstOrDefault(x => x.Id == idValue);

            if (relatedEntityId != null)
            {
                var selectedEntity = _culturedBaseService.CulturedEntities.Include(x => x.City)
                                     .FirstOrDefault(x => x.Id == relatedEntityId);
                var city = selectedEntity?.City;
                Mapper.Map(city, cityViewModel);
                Mapper.Map(cityCulture, cityViewModel);

                var customRoute = _customRouteService.GetCustomRoute(PredefinedPage.City, cityViewModel.Id);
                var config      = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap <CustomRoute, CityViewModel>()
                    .ForMember(dest => dest.Id, opt => opt.Ignore());
                });

                var mapper = config.CreateMapper();
                mapper.Map(customRoute, cityViewModel);

                cityViewModel.RelatedEntityId        = relatedEntityId.GetValueOrDefault();
                cityViewModel.BaseEntityId           = (city?.Id).GetValueOrDefault();
                cityViewModel.CulturedCitySelectList = GetCulturedCityList();

                return(View("CreateOrUpdate", cityViewModel));
            }

            var model = _culturedBaseService.Map(cityCulture?.City, PredefinedPage.City);

            Mapper.Map(model, cityViewModel);
            cityViewModel.CulturedCitySelectList = GetCulturedCityList();

            return(View("CreateOrUpdate", cityViewModel));
        }