/// <summary>
        /// Writes localizable value.
        /// </summary>
        /// <param name="key">Translation key.</param>
        /// <param name="value">Value.</param>
        /// <param name="cultureIndex">Culture index.</param>
        /// <param name="modifiedOn">Modification date.</param>
        private void WriteLocalizableValue(string key, string value, int cultureIndex, DateTime modifiedOn)
        {
            ISysCultureInfo  sysCultureInfo = SysCultureInfoProvider.Read(cultureIndex);
            ILocalizableItem item           = new LocalizableItem(key, value, sysCultureInfo.Id, modifiedOn, false);
            IActionResult    result         = ResourceProvider.WriteLocalizableValue(item);

            CollectErroneousRecords(item, result);
            ProcessWriteLocalizableValueResult(result);
        }
        private void SetIsChanged(Entity translation, int cultureIndex)
        {
            ISysCultureInfo sysCultureInfo = SysCultureInfoProvider.Read(cultureIndex);

            if (sysCultureInfo != null)
            {
                translation.SetColumnValue(sysCultureInfo.IsChangedColumnName, true);
            }
        }
        /// <summary>
        /// Actualizes localizable values.
        /// </summary>
        public void ActualizeLocalizableValues()
        {
            OnLocalizableValuesActualizationStart();
            List <ISysCultureInfo> sysCulturesInfo = SysCultureInfoProvider.Read();

            TranslationErrorHandler?.ResetErrors();
            TranslationProvider.ReadChangedTranslations(sysCulturesInfo, WriteLocalizableValue);
            TranslationErrorHandler?.SaveErrors(_erroneousRecords);
            TranslationProvider.ResetChangedTranslationsState(sysCulturesInfo);
            ResourceProvider.Actualize();
            OnLocalizableValuesActualizationEnd();
        }
        /// <summary>
        /// Saves translation.
        /// </summary>
        private void WriteTranslation(ILocalizableItem item)
        {
            ISysCultureInfo sysCultureInfo = SysCultureInfoProvider.Read(item.CultureId);

            TranslationProvider.WriteTranslation(item.Key, sysCultureInfo.TranslationColumnName, item.Value);
        }