コード例 #1
0
        private string Get(string key, Culture culture)
        {
            if (culture == null)
            {
                return null;
            }
            var ngmaDomainService = DependencyResolver.Current.GetService<IMaintDomainService>();
            var db = DependencyResolver.Current.GetService<IMaintDbRepository>();

            var cultureTexts = ngmaDomainService.GetCultureTexts();
            var cacheKey = "__languageLoader::cultureTexts";

            var item = cultureTexts.FirstOrDefault(x => string.Equals(x.Name, key, StringComparison.OrdinalIgnoreCase) && x.CultureId == culture.CultureId);
            if (item != null)
            {
                return item.Text;
            }
            item = new CultureText
            {
                Name = key,
                CultureId = culture.CultureId,
                Text = null
            };
            db.CultureTexts.Add(item);
            db.SaveChanges();
            ngmaDomainService.ClearCultureTextsCache();
            HttpContext.Current.Items[cacheKey] = null;
            return null;
        }
コード例 #2
0
ファイル: Culture.cs プロジェクト: yangwen27/moonlit
 public void Import(MaintDbContextMaintDbRepository repository, List<KeyValuePair<string, string>> cultureTexts, LanguageItemConverType languageItemConverType)
 {
     var culture = this;
     var originalCultureTexts =
         repository.CultureTexts.Where(x => x.CultureId == culture.CultureId).ToList();
     foreach (var cultureText in cultureTexts)
     {
         var text = (cultureText.Value ?? "").ToString();
         var key = cultureText.Key;
         var originalLanguageItem = originalCultureTexts.FirstOrDefault(x => string.Equals(x.Name, key, StringComparison.OrdinalIgnoreCase));
         if (originalLanguageItem == null)
         {
             originalLanguageItem = new CultureText()
             {
                 Text = text,
                 CultureId = culture.CultureId,
                 Name= key,
             };
             repository.CultureTexts.Add(originalLanguageItem);
         }
         else
         {
             if (originalLanguageItem.IsEdited)
             {
                 switch (languageItemConverType)
                 {
                     case LanguageItemConverType.ExcludeIsEdited:
                         break;
                     case LanguageItemConverType.All:
                         originalLanguageItem.Text = text;
                         originalLanguageItem.IsEdited = false;
                         break;
                     default:
                         throw new ArgumentOutOfRangeException();
                 }
             }
             else
             {
                 switch (languageItemConverType)
                 {
                     case LanguageItemConverType.ExcludeIsEdited:
                     case LanguageItemConverType.All:
                         originalLanguageItem.Text = text;
                         originalLanguageItem.IsEdited = false;
                         break;
                     default:
                         throw new ArgumentOutOfRangeException();
                 }
             }
         }
     }
 }
コード例 #3
0
ファイル: ModelGenerator1.cs プロジェクト: yangwen27/moonlit
partial         void OnToEntity(CultureText entity, ControllerContext controllerContext);
コード例 #4
0
ファイル: ModelGenerator1.cs プロジェクト: yangwen27/moonlit
partial         void OnFromEntity(CultureText entity, bool isPostback, ControllerContext controllerContext);
コード例 #5
0
ファイル: ModelGenerator1.cs プロジェクト: yangwen27/moonlit
 public void ToEntity(CultureText entity, ControllerContext controllerContext)
 {
     entity.Text = Text;
     OnToEntity(entity, controllerContext);
 }
コード例 #6
0
ファイル: ModelGenerator1.cs プロジェクト: yangwen27/moonlit
        public void FromEntity(CultureText entity, bool isPostback, ControllerContext controllerContext)
        {
            if(!isPostback){

                Text = entity.Text;
            }

            CultureId = entity.CultureId;

            Name = entity.Name;
            OnFromEntity(entity, isPostback, controllerContext);
        }
コード例 #7
0
ファイル: ModelGenerator1.cs プロジェクト: yangwen27/moonlit
 public void ToEntity(CultureText entity, ControllerContext controllerContext)
 {
     entity.CultureId = (int)CultureId;
     entity.Name = Name;
     entity.Text = Text;
     OnToEntity(entity, controllerContext);
 }
コード例 #8
0
        public async Task<ActionResult> Import(CultureTextImportModel model)
        {
            if (!ModelState.IsValid)
            {
                return Template(model.CreateTemplate(ControllerContext));
            }
            var db = MaintDbContext;


            var culture = db.Cultures.FirstOrDefault(x => x.IsEnabled && x.CultureId == (int?)model.Culture);
            var cultureTexts = db.CultureTexts.Where(x => x.CultureId == (int?)model.Culture).ToList();
            var newCultureTexts = JsonConvert.DeserializeObject(model.Content) as JObject;
            foreach (KeyValuePair<string, JToken> newCultureText in newCultureTexts)
            {
                var oldCultureText = cultureTexts.FirstOrDefault(x => string.Equals(x.Name, newCultureText.Key, StringComparison.OrdinalIgnoreCase));
                if (oldCultureText == null)
                {
                    oldCultureText = new CultureText
                    {
                        Text = newCultureText.Value.ToString(),
                        CultureId = culture.CultureId,
                        Name = newCultureText.Key,
                    };
                    db.CultureTexts.Add(oldCultureText);
                }
                else
                {
                    if (model.Overwrite)
                    {
                        oldCultureText.Text = newCultureText.Value.ToString();
                    }
                }
            }
            await db.SaveChangesAsync();
            _maintDomainService.ClearCultureTextsCache();
            await SetFlashAsync(new FlashMessage
            {
                Text = MaintCultureTextResources.SuccessToSave,
                MessageType = FlashMessageType.Success,
            });
            return Template(model.CreateTemplate(ControllerContext));
        }
コード例 #9
0
        public async Task<ActionResult> Create(CultureTextCreateModel model)
        {
            var db = MaintDbContext;
            CultureText cultureText= new CultureText();
            if (!TryUpdateModel(cultureText, model))
            {
                return Template(model.CreateTemplate(ControllerContext));
            }
            var name = model.Name;
            if (await db.CultureTexts.AnyAsync(x => x.Name == name))
            {
                var errorMessage = string.Format(MaintCultureTextResources.ValidationDumplicate,
                    MaintCultureTextResources.CultureTextName, name);

                ModelState.AddModelError("Name", string.Format(errorMessage, name));
                return Template(model.CreateTemplate(ControllerContext));
            }
            var culture = db.Cultures.FirstOrDefault(x => x.CultureId == model.CultureId && x.IsEnabled);
            if (culture == null)
            {
                return HttpNotFound();
            }

            db.CultureTexts.Add(cultureText);
            await db.SaveChangesAsync();
            await SetFlashAsync(new FlashMessage
            {
                Text = MaintCultureTextResources.SuccessToSave,
                MessageType = FlashMessageType.Success,
            });
            _maintDomainService.ClearCultureTextsCache();
            return Create( );
        }