public CreateCultureResponse CreateCulture(CreateCultureRequest request) { var response = new CreateCultureResponse(); if (request.Data != null) { var culture = CultureInfo.GetCultureInfo(request.Data.Code); var region = new RegionInfo(culture.LCID); //locate associted info var language = Uow.Languages.Get(o => o.Iso3.Equals(culture.ThreeLetterISOLanguageName), null, null).FirstOrDefault(); var country = Uow.Countries.Get(o => o.Iso3.Equals(region.ThreeLetterISORegionName), null, null).FirstOrDefault(); // insert culture Uow.Cultures.Add(new Culture { Id = request.Data.Id, ParentCultureId = request.Data.ParentCulture.Id, Code = request.Data.Code, Language = language ?? new Language { Id = culture.LCID, Iso2 = culture.TwoLetterISOLanguageName, Iso3 = culture.ThreeLetterISOLanguageName, Localizations = new Collection<LanguageLocalized> { new LanguageLocalized { LanguageId = culture.LCID, CultureId = CultureInfo.InvariantCulture.LCID, Name = culture.NativeName } } }, Country = country ?? new Country { Id = region.GeoId, Iso2 = region.TwoLetterISORegionName, Iso3 = region.ThreeLetterISORegionName, Localizations = new Collection<CountryLocalized> { new CountryLocalized { CountryId = region.GeoId, CultureId = CultureInfo.InvariantCulture.LCID, Name = region.NativeName } } }, _localizations = new List<CultureLocalized> { new CultureLocalized{ Id = request.Data.Id, CultureId = CultureInfo.InvariantCulture.LCID, Name = request.Data.Name} }, }); Uow.Commit(); } else { throw new Exception("Cannot create empty element"); } return response; }
public ActionResult Create(CreateCultureRequest request) { if (ModelState.IsValid) { var culture = CultureInfo.GetCultureInfo(request.Data.Code); request.Data.Id = culture.LCID; _globalizationSettings.CreateCulture(request); } return RedirectToAction("Index"); }