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 });
        }