Пример #1
0
        /// <summary>
        /// Update new value to database
        /// </summary>
        /// <param name="langKey"></param>
        /// <param name="textKey"></param>
        private SlideInHelpDictionaryItem UpdateDictionaryToDb(string langKey, string textKey)
        {
            var values = textKey.Split(new[] { FrameworkConstants.LocalizeResourceSeperator },
                                       StringSplitOptions.RemoveEmptyEntries);

            //Convert field to camel friendly text
            var defaultTitle = values.Last().CamelFriendly();

            var existedSlideInHelpIds = Fetch(l => l.TextKey.Equals(textKey)).Select(l => l.LanguageId).ToList();
            var languages             = _languageRepository.Fetch(l => !existedSlideInHelpIds.Contains(l.Id)).ToList();

            foreach (var language in languages)
            {
                var slideInHelp = new SlideInHelp
                {
                    TextKey          = textKey,
                    LanguageId       = language.Id,
                    HelpTitle        = defaultTitle,
                    LocalHelpContent = string.Empty,
                    Active           = false
                };
                Insert(slideInHelp);
            }

            RefreshDictionary();
            var returnSlideInHelp = FetchFirst(s => s.TextKey.Equals(textKey) && s.Language.Key.Equals(langKey));

            return(new SlideInHelpDictionaryItem(returnSlideInHelp));
        }
Пример #2
0
        public SlideInHelpManageModel(SlideInHelp slideInHelp)
            : this()
        {
            Id      = slideInHelp.Id;
            TextKey = slideInHelp.TextKey;
            Title   = slideInHelp.HelpTitle;
            Content = slideInHelp.LocalHelpContent;

            LanguageId = slideInHelp.LanguageId;
        }
Пример #3
0
 public SlideInHelpModel(SlideInHelp slideInHelp)
     : base(slideInHelp)
 {
     Id                = slideInHelp.Id;
     Language          = slideInHelp.Language.Key;
     TextKey           = slideInHelp.TextKey;
     HelpTitle         = slideInHelp.HelpTitle;
     MasterHelpContent = slideInHelp.MasterHelpContent;
     LocalHelpContent  = slideInHelp.LocalHelpContent;
     LocalVersion      = slideInHelp.LocalVersion;
     MasterVersion     = slideInHelp.MasterVersion;
 }
Пример #4
0
 public SlideInHelpDictionaryItem(SlideInHelp slideInHelp)
     : this()
 {
     Id                = slideInHelp.Id;
     Language          = slideInHelp.Language.Key;
     TextKey           = slideInHelp.TextKey;
     Key               = ServiceHelper.BuildKey(slideInHelp.Language.Key, slideInHelp.TextKey);
     HelpTitle         = slideInHelp.HelpTitle;
     MasterHelpContent = slideInHelp.MasterHelpContent;
     LocalHelpContent  = slideInHelp.LocalHelpContent;
     LocalVersion      = slideInHelp.LocalVersion;
     MasterVersion     = slideInHelp.MasterVersion;
     Active            = slideInHelp.Active;
     LastUpdate        = slideInHelp.LastUpdate ?? slideInHelp.Created;
 }
Пример #5
0
 public ResponseModel Update(SlideInHelp slideInHelp)
 {
     return(_slideInHelpRepository.Update(slideInHelp));
 }
Пример #6
0
 public ResponseModel Insert(SlideInHelp slideInHelp)
 {
     return(_slideInHelpRepository.Insert(slideInHelp));
 }
Пример #7
0
 internal ResponseModel Delete(SlideInHelp slideInHelp)
 {
     return(_slideInHelpRepository.Delete(slideInHelp));
 }
Пример #8
0
        public void Run(BackgroundTaskExecuteContext context)
        {
            var logger = HostContainer.GetInstance <ILogger>();

            if (Interlocked.CompareExchange(ref _hasActiveTask, 1, 0) == 0)
            {
                try
                {
                    logger.Info(string.Format("[{0}] Start slide in help updating task", EzCMSContants.SlideInHelpUpdatingTaskName));
                    var backgroundTaskService = HostContainer.GetInstance <IEzBackgroundTaskService>();
                    var task            = backgroundTaskService.GetByType(GetType());
                    var lastRunningTime = task.LastRunningTime;

                    // Update the background task last running time
                    backgroundTaskService.UpdateLastRunningTimeTask(GetType());

                    var languageService    = HostContainer.GetInstance <ILanguageService>();
                    var slideInHelpService = HostContainer.GetInstance <ISlideInHelpService>();
                    var siteSettingService = HostContainer.GetInstance <ISiteSettingService>();
                    var slideInHelpSetting = siteSettingService.LoadSetting <EzCMSHelpConfigurationSetting>();

                    if (!slideInHelpSetting.DisabledSlideInHelpService &&
                        !string.IsNullOrEmpty(slideInHelpSetting.HelpServiceUrl))
                    {
                        var languages    = languageService.GetAll().ToList();
                        var slideInHelps = WebUtilities.SendApiRequest <List <SlideInHelpResponseModel> >(
                            slideInHelpSetting.HelpServiceUrl, slideInHelpSetting.AuthorizeCode,
                            "api/Helps/LoadSlideInHelps",
                            HttpMethod.Get, new RouteValueDictionary(new
                        {
                            lastUpdatingTime = lastRunningTime
                        }));

                        if (slideInHelps.Any())
                        {
                            var currentSlideInHelps = slideInHelpService.GetAll().ToList();

                            foreach (var item in slideInHelps)
                            {
                                var slideInHelp =
                                    currentSlideInHelps.FirstOrDefault(
                                        s => s.Language.Key.Equals(item.Language) && s.TextKey.Equals(item.TextKey));

                                if (slideInHelp != null)
                                {
                                    slideInHelp.HelpTitle         = item.HelpTitle;
                                    slideInHelp.MasterHelpContent = item.HelpContent;
                                    slideInHelp.MasterVersion     = item.Version;

                                    slideInHelpService.Update(slideInHelp);
                                }
                                else
                                {
                                    var language = languages.FirstOrDefault(l => l.Key.Equals(item.Language));
                                    if (language != null)
                                    {
                                        slideInHelp = new SlideInHelp
                                        {
                                            TextKey           = item.TextKey,
                                            LanguageId        = language.Id,
                                            LocalHelpContent  = string.Empty,
                                            LocalVersion      = 0,
                                            HelpTitle         = item.HelpTitle,
                                            MasterHelpContent = item.HelpContent,
                                            MasterVersion     = item.Version,
                                        };

                                        slideInHelpService.Insert(slideInHelp);
                                    }
                                }
                            }

                            slideInHelpService.RefreshDictionary();
                        }
                    }
                }
                catch (Exception exception)
                {
                    logger.Error(string.Format("[{0}]", EzCMSContants.SlideInHelpUpdatingTaskName), exception);
                }
                logger.Info(string.Format("[{0}] End slide in help updating task", EzCMSContants.SlideInHelpUpdatingTaskName));
                Interlocked.Exchange(ref _hasActiveTask, 0);
            }
        }