public JsonResult ChangeValue(String part, String locale, String key, String value) { if(!_context.DebugMode) throw new Exception("Unauthorized!"); var qualifier = new Qualifier.Unique(Part.Parse(part), new Locale(locale), key); _context.Repository.Values.SetValue(qualifier, value); return Json(new { Success = true, Value = _context.Repository.Values.GetValue(qualifier) }, JsonRequestBehavior.AllowGet); }
public QualifiedValue GetQualifiedValue(Qualifier.Unique qualifier) { var testQualifier = qualifier; while (testQualifier.Part.Parent != null) { testQualifier = new Qualifier.Unique(testQualifier.Part.Parent, testQualifier.Locale, testQualifier.Key); QualifiedValue value; if (AllValues.TryGetValue(testQualifier, out value)) return value; } throw new ValueNotFoundException(qualifier); }
public JsonResult Create(String part, String locale, String key, String content) { var localization = Session.Get<ProviderPair>(ManualProviderPairName); if (localization == null) throw new Exception("Localization not loaded!"); var qualifier = new Qualifier.Unique(Part.Parse(part), new Locale(locale), key); var value = content; var qualifiedValue = new QualifiedValue(qualifier, value); localization.ValueManager.UpdateCreateValue(qualifiedValue); return Json(new {ok = true}); }
public IEnumerable<QualifiedValue> GetAllValuesQualified() { foreach (var localization in _localizedValues) { foreach (var keyBasedLocalization in localization.Value.GetAllKeyBasedLocales()) { foreach (var languageBasedLocalization in keyBasedLocalization.Value.GetAllLocaleBasedValues()) { var qualifier = new Qualifier.Unique(localization.Key, new Locale(languageBasedLocalization.Key), keyBasedLocalization.Key); yield return new QualifiedValue(qualifier, languageBasedLocalization.Value); } } } }
public QualifiedValue GetQualifiedValue(Qualifier.Unique qualifier, string defaultValue = null) { var testQualifier = qualifier; while (testQualifier.Part.Parent != null) { testQualifier = new Qualifier.Unique(testQualifier.Part.Parent, testQualifier.Locale, testQualifier.Key); QualifiedValue value; if (AllValues.TryGetValue(testQualifier, out value)) return value; } var qualifiedValue = new QualifiedValue(qualifier, defaultValue); AllValues.Add(qualifier, qualifiedValue); return qualifiedValue; }
/// <summary> /// Gets the current spec for a specified key, overriding the current part and locale /// </summary> /// <param name="qualifier">Qualifier to get specs for, should at least contain the key.</param> /// <param name="defaultValue">If the localization does not yet exist, create with default value</param> /// <returns></returns> public QualifiedValue GetQualified(Qualifier.WithKey qualifier, String defaultValue = null) { var locale = qualifier.Locale ?? Locales.GetCurrentLocale(); var part = qualifier.Part ?? Parts.GetCurrentPart(); var resultQualifier = new Qualifier.Unique(part, locale, qualifier.Key); try { var value = Values.GetQualifiedValue(resultQualifier, defaultValue); if (value == null) { throw new ValueNotFoundException(qualifier); } Logger.Log(value.Qualifier); return(value); } catch (ValueNotFoundException) { Notifier.NotifyMissing(resultQualifier); return(new QualifiedValue(resultQualifier, defaultValue ?? String.Format("[{0}]", qualifier.Key))); } }
/// <summary> /// Gets the current spec for a specified key, overriding the current part and locale /// </summary> /// <param name="qualifier">Qualifier to get specs for, should at least contain the key.</param> /// <param name="defaultValue">If the localization does not yet exist, create with default value</param> /// <returns></returns> public QualifiedValue GetQualified(Qualifier.WithKey qualifier, String defaultValue = null) { var locale = qualifier.Locale ?? Locales.GetCurrentLocale(); var part = qualifier.Part ?? Parts.GetCurrentPart(); var resultQualifier = new Qualifier.Unique(part, locale, qualifier.Key); try { var value = Values.GetQualifiedValue(resultQualifier, defaultValue); if (value == null) throw new ValueNotFoundException(qualifier); Logger.Log(value.Qualifier); return value; } catch (ValueNotFoundException) { Notifier.NotifyMissing(resultQualifier); return new QualifiedValue(resultQualifier, defaultValue ?? String.Format("[{0}]", qualifier.Key)); } }
private static KeyValuePair<Qualifier.Unique, QualifiedValue> CreateValuePair(Part part, string key, string value) { var qualifier = new Qualifier.Unique(part, Locale, key); var qualifiedValue = new QualifiedValue(qualifier, new Value(ContentType.Text, value)); return new KeyValuePair<Qualifier.Unique, QualifiedValue>(qualifier, qualifiedValue); }
public JsonResult SyncRemove(String side, String part, String locale, String key) { var localization = Session["synchronization" + side + "ProviderPair"] as ProviderPair; if (localization == null) throw new Exception("Localization not loaded!"); var qualifier = new Qualifier.Unique(Part.Parse(part), new Locale(locale), key); localization.ValueManager.DeleteValue(qualifier); return Json(new { ok = true }); }
public Log(Qualifier.Unique qualifier, DateTime date) { Qualifier = qualifier; Date = date; }
public JsonResult TransUpdate(String part, String locale, String key, String value) { var localization = Session["translationProviderPair"] as ProviderPair; if (localization == null) throw new Exception("Localization not loaded!"); var qualifier = new Qualifier.Unique(Part.Parse(part), new Locale(locale), key); localization.ValueManager.UpdateCreateValue(new QualifiedValue(qualifier, new Value(ContentType.Unspecified, value))); return Json(new { ok = true }); }
public QualifiedValue(Qualifier.Unique qualifier, String value) { Qualifier = qualifier; Value = value; }
public JsonResult SyncDuplicate(String side, String part, String locale, String key) { var localizationFrom = Session["synchronization" + side + "ProviderPair"] as ProviderPair; var localizationTo = Session["synchronization" + (side == "Right" ? "Left" : "Right") + "ProviderPair"] as ProviderPair; if (localizationFrom == null || localizationTo == null) throw new Exception("Localization not loaded!"); var qualifier = new Qualifier.Unique(Part.Parse(part), new Locale(locale), key); localizationTo.ValueManager.UpdateCreateValue(localizationFrom.ValueManager.GetQualifiedValue(qualifier)); return Json(new { ok = true }); }
public JsonResult SyncRemove(SynchronizationItem[] items) { foreach (var item in items) { var localization = Session.Get<ProviderPair>(String.Format(SynchronizationProviderPairNameBase, item.Side)); if (localization == null) throw new Exception("Localization not loaded!"); var qualifier = new Qualifier.Unique(Part.Parse(item.Part), new Locale(item.Locale), item.Key); localization.ValueManager.DeleteValue(qualifier); } return Json(new { ok = true }); }
public JsonResult SyncDuplicate(SynchronizationItem[] items) { foreach (var item in items) { var localizationFrom = Session.Get<ProviderPair>(String.Format(SynchronizationProviderPairNameBase, item.Side)); var localizationTo = Session.Get<ProviderPair>(String.Format(SynchronizationProviderPairNameBase, (item.Side == "Right" ? "Left" : "Right"))); if (localizationFrom == null || localizationTo == null) throw new Exception("Localization not loaded!"); var qualifier = new Qualifier.Unique(Part.Parse(item.Part), new Locale(item.Locale), item.Key); localizationTo.ValueManager.UpdateCreateValue(localizationFrom.ValueManager.GetQualifiedValue(qualifier)); } return Json(new { ok = true }); }
public JsonResult Remove(String part, String locale, String key) { var localization = Session.Get<ProviderPair>(ManualProviderPairName); if (localization == null) throw new Exception("Localization not loaded!"); var qualifier = new Qualifier.Unique(Part.Parse(part), new Locale(locale), key); localization.ValueManager.DeleteValue(qualifier); return Json(new { ok = true }); }
public ActionResult Import(String providerConfigName, String locale, HttpPostedFileBase postedFile) { var providerPair = ProviderPairFactory.CreateProviderPair(providerConfigName); var allValues = providerPair.ValueManager.GetAllValuesQualified().ToArray(); var selectedLocale = new Locale(locale); var valuesByPartKey = allValues .Where(value => value.Qualifier.Locale.Equals(selectedLocale)) .ToDictionary(v => new Qualifier.Unique(v.Qualifier.Part, selectedLocale, v.Qualifier.Key)); var extention = postedFile.FileName.Split('.').Last(); var records = new List<ImportExportRecord>(); switch (extention) { case "csv": using (var reader = new CsvReader(new StreamReader(postedFile.InputStream))) { reader.Configuration.Delimiter = ";"; records.AddRange(reader.GetRecords<ImportExportRecord>()); } break; case "xml": // ReSharper disable PossibleNullReferenceException var document = XDocument.Load(postedFile.InputStream); records.AddRange(document.Root.Descendants("Localization").Select( xel => new ImportExportRecord(xel.Element("Part").Value, xel.Element("Key").Value, xel.Element("Value").Value) { DeleteOnImport = xel.Element("DeleteOnImport").Value.Trim().ToLowerInvariant() != "false" } )); // ReSharper restore PossibleNullReferenceException break; } var inserts = new List<QualifiedValue>(); var updates = new List<Tuple<QualifiedValue, ImportExportRecord>>(); var deletes = new List<QualifiedValue>(); foreach (var record in records) { QualifiedValue correspondingValue; var recordQualfier = new Qualifier.Unique(Part.Parse(record.Part), selectedLocale, record.Key); if (valuesByPartKey.TryGetValue(recordQualfier, out correspondingValue)) { if(record.DeleteOnImport) deletes.Add(correspondingValue); else if(!record.Value.Equals(correspondingValue.Value)) updates.Add(Tuple.Create(correspondingValue, record)); } else if(!record.DeleteOnImport) inserts.Add(new QualifiedValue(recordQualfier, record.Value)); } return View(new ImportReportData(providerConfigName, postedFile.FileName, selectedLocale, inserts, updates, deletes)); }