protected void CreateOrUpdateLocalizationsFor(object entity)
        {
            foreach (PropertyInfo propertyInfo in this.GetLocalizationSetPropertiesFromEntity(entity))
            {
                LocalizationSet localizationSet = this.GetOrCreateLocalizationSetForProperty(entity, propertyInfo);

                this.DeleteLocalizations(localizationSet);
                this.CreateLocalizations(propertyInfo, localizationSet);
            }
        }
예제 #2
0
        public Page()
        {
            MenuItems = new List <MenuItem>();

            Name    = new LocalizationSet();
            Content = new LocalizationSet();

            MetaTitle       = new LocalizationSet();
            MetaKeywords    = new LocalizationSet();
            MetaDescription = new LocalizationSet();
        }
        private void DeleteLocalizations(LocalizationSet localizationSet)
        {
            if (localizationSet.Localizations == null || localizationSet.Localizations.Count == 0)
            {
                return;
            }

            ILocalizationRepository localizationRepository = this.HttpContext.RequestServices.GetService <ILocalizationRepository>();
            Storage storage = this.HttpContext.RequestServices.GetService <Storage>();

            localizationRepository.Delete(localizationSet.Localizations);
            storage.SaveChanges();
        }
        private void CreateLocalizations(PropertyInfo propertyInfo, LocalizationSet localizationSet)
        {
            ICultureRepository      cultureRepository      = this.HttpContext.RequestServices.GetService <ICultureRepository>();
            ILocalizationRepository localizationRepository = this.HttpContext.RequestServices.GetService <ILocalizationRepository>();
            Storage storage = this.HttpContext.RequestServices.GetService <Storage>();

            foreach (Culture culture in cultureRepository.GetAll())
            {
                Localization localization = new Localization();

                localization.LocalizationSetId = localizationSet.Id;
                localization.CultureCode       = culture.Code;
                localization.Value             = this.Request.Form[propertyInfo.Name + culture.Code];
                localizationRepository.Create(localization);
            }

            storage.SaveChanges();
        }
        private LocalizationSet GetOrCreateLocalizationSetForProperty(object entity, PropertyInfo propertyInfo)
        {
            ILocalizationSetRepository localizationSetRepository = this.HttpContext.RequestServices.GetService <ILocalizationSetRepository>();
            Storage         storage = this.HttpContext.RequestServices.GetService <Storage>();
            PropertyInfo    localizationSetIdPropertyInfo = entity.GetType().GetProperty(propertyInfo.Name + "Id");
            int?            localizationSetId             = (int?)localizationSetIdPropertyInfo.GetValue(entity);
            LocalizationSet localizationSet = null;

            if (localizationSetId == null || localizationSetId == 0)
            {
                localizationSet = new LocalizationSet();
                localizationSetRepository.Create(localizationSet);
                storage.SaveChanges();
                localizationSetIdPropertyInfo.SetValue(entity, localizationSet.Id);
            }

            else
            {
                localizationSet = localizationSetRepository.GetById((int)localizationSetId);
            }

            return(localizationSet);
        }
예제 #6
0
 public void Create(LocalizationSet localizationSet)
 {
     this.storage.LocalizationSets.Add(localizationSet);
 }
        protected IEnumerable <ViewModels.Shared.Localization> CreateLocalizationsFor(LocalizationSet localizationSet)
        {
            ICultureRepository cultureRepository = this.HttpContext.RequestServices.GetService <ICultureRepository>();

            return(cultureRepository.GetAll()
                   .Select(c => new ViewModels.Shared.Localization()
            {
                CultureCode = c.Code, Value = localizationSet.Localizations.FirstOrDefault(l => l.CultureCode == c.Code)?.Value
            }));
        }
 public void Create(LocalizationSet localizationSet)
 {
     _dbContext.LocalizationSets.Add(localizationSet);
 }
예제 #9
0
 public MenuItem()
 {
     Name       = new LocalizationSet();
     Controller = "Page";
     Action     = "Index";
 }