mirror of
https://github.com/LorisYounger/VPet.ModMaker.git
synced 2024-08-30 18:22:21 +00:00
优化更新
This commit is contained in:
parent
8462b1aab6
commit
7ffc9fcd7d
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
@ -204,6 +205,40 @@ public static class Extensions
|
||||
return $"{cultureInfo.DisplayName} [{cultureInfo.Name}]";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 尝试使用索引获取值
|
||||
/// </summary>
|
||||
/// <typeparam name="T">值类型</typeparam>
|
||||
/// <param name="list">列表</param>
|
||||
/// <param name="index">索引</param>
|
||||
/// <param name="value">值</param>
|
||||
/// <returns>成功为 <see langword="true"/> 失败为 <see langword="false"/></returns>
|
||||
public static bool TryGetValue<T>(this IList<T> list, int index, out T value)
|
||||
{
|
||||
value = default;
|
||||
if (index < 0 || index >= list.Count)
|
||||
return false;
|
||||
value = list[index];
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 尝试使用索引获取值
|
||||
/// </summary>
|
||||
/// <typeparam name="T">值类型</typeparam>
|
||||
/// <param name="list">列表</param>
|
||||
/// <param name="index">索引</param>
|
||||
/// <param name="value">值</param>
|
||||
/// <returns>成功为 <see langword="true"/> 失败为 <see langword="false"/></returns>
|
||||
public static bool TryGetValue<T>(this IList list, int index, out object value)
|
||||
{
|
||||
value = default;
|
||||
if (index < 0 || index >= list.Count)
|
||||
return false;
|
||||
value = list[index];
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取目标
|
||||
/// </summary>
|
||||
|
@ -62,6 +62,7 @@ public class ObservableValue<T>
|
||||
/// <inheritdoc/>
|
||||
/// <param name="value">初始值</param>
|
||||
public ObservableValue(T value)
|
||||
: this()
|
||||
{
|
||||
_value = value;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ public class ObservableValueGroup<T> : IEnumerable<ObservableValue<T>?>
|
||||
/// 在添加的时候改变值 (如果分组中存在值)
|
||||
/// </summary>
|
||||
[DefaultValue(false)]
|
||||
public bool ChangeOnAdd { get; set; } = false;
|
||||
public bool ChangeOnAdd { get; set; } = true;
|
||||
|
||||
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
|
||||
private readonly Dictionary<Guid, WeakReference<ObservableValue<T>>> _bindingValues = new();
|
||||
|
@ -193,16 +193,11 @@ public class AnimePageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowAnimes.Value.Count == Animes.Count)
|
||||
{
|
||||
Animes[Animes.IndexOf(animeTypeModel)] = newAnime;
|
||||
}
|
||||
else
|
||||
{
|
||||
Animes[Animes.IndexOf(animeTypeModel)] = newAnime;
|
||||
if (ShowAnimes.Value.Count != Animes.Count)
|
||||
ShowAnimes.Value[ShowAnimes.Value.IndexOf(animeTypeModel)] = newAnime;
|
||||
}
|
||||
}
|
||||
else if (model is FoodAnimeTypeModel foodAnimeTypeModel)
|
||||
{
|
||||
var window = new FoodAnimeEditWindow();
|
||||
@ -214,17 +209,11 @@ public class AnimePageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowAnimes.Value.Count == FoodAnimes.Count)
|
||||
{
|
||||
FoodAnimes[FoodAnimes.IndexOf(foodAnimeTypeModel)] = newAnime;
|
||||
}
|
||||
else
|
||||
{
|
||||
FoodAnimes[FoodAnimes.IndexOf(foodAnimeTypeModel)] = newAnime;
|
||||
if (ShowAnimes.Value.Count != FoodAnimes.Count)
|
||||
ShowAnimes.Value[ShowAnimes.Value.IndexOf(foodAnimeTypeModel)] = newAnime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除动画
|
||||
|
@ -98,16 +98,10 @@ public class ClickTextPageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowClickTexts.Value.Count == ClickTexts.Count)
|
||||
{
|
||||
ClickTexts[ClickTexts.IndexOf(model)] = newLowTest;
|
||||
}
|
||||
else
|
||||
{
|
||||
ClickTexts[ClickTexts.IndexOf(model)] = newLowTest;
|
||||
if (ShowClickTexts.Value.Count != ClickTexts.Count)
|
||||
ShowClickTexts.Value[ShowClickTexts.Value.IndexOf(model)] = newLowTest;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除点击文本
|
||||
|
@ -71,15 +71,9 @@ public class FoodPageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowFoods.Value.Count == Foods.Count)
|
||||
{
|
||||
Foods[Foods.IndexOf(food)] = newFood;
|
||||
}
|
||||
else
|
||||
{
|
||||
Foods[Foods.IndexOf(food)] = newFood;
|
||||
if (ShowFoods.Value.Count != Foods.Count)
|
||||
ShowFoods.Value[ShowFoods.Value.IndexOf(food)] = newFood;
|
||||
}
|
||||
food.Close();
|
||||
}
|
||||
|
||||
|
@ -72,16 +72,10 @@ public class LowTextPageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowLowTexts.Value.Count == LowTexts.Count)
|
||||
{
|
||||
LowTexts[LowTexts.IndexOf(model)] = newLowTest;
|
||||
}
|
||||
else
|
||||
{
|
||||
LowTexts[LowTexts.IndexOf(model)] = newLowTest;
|
||||
if (ShowLowTexts.Value.Count != LowTexts.Count)
|
||||
ShowLowTexts.Value[ShowLowTexts.Value.IndexOf(model)] = newLowTest;
|
||||
}
|
||||
}
|
||||
|
||||
private void Remove(LowTextModel model)
|
||||
{
|
||||
|
@ -82,16 +82,10 @@ public class MovePageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowMoves.Value.Count == Moves.Count)
|
||||
{
|
||||
Moves[Moves.IndexOf(model)] = newMove;
|
||||
}
|
||||
else
|
||||
{
|
||||
Moves[Moves.IndexOf(model)] = newMove;
|
||||
if (ShowMoves.Value.Count != Moves.Count)
|
||||
ShowMoves.Value[ShowMoves.Value.IndexOf(model)] = newMove;
|
||||
}
|
||||
}
|
||||
|
||||
private void Remove(MoveModel model)
|
||||
{
|
||||
|
@ -74,15 +74,9 @@ public class PetPageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowPets.Value.Count == Pets.Count)
|
||||
{
|
||||
Pets[Pets.IndexOf(model)] = newPet;
|
||||
}
|
||||
else
|
||||
{
|
||||
Pets[Pets.IndexOf(model)] = newPet;
|
||||
if (ShowPets.Value.Count != Pets.Count)
|
||||
ShowPets.Value[ShowPets.Value.IndexOf(model)] = newPet;
|
||||
}
|
||||
model.Close();
|
||||
}
|
||||
|
||||
|
@ -69,16 +69,10 @@ public class SelectTextPageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowSelectTexts.Value.Count == SelectTexts.Count)
|
||||
{
|
||||
SelectTexts[SelectTexts.IndexOf(model)] = newLowTest;
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectTexts[SelectTexts.IndexOf(model)] = newLowTest;
|
||||
if (ShowSelectTexts.Value.Count != SelectTexts.Count)
|
||||
ShowSelectTexts.Value[ShowSelectTexts.Value.IndexOf(model)] = newLowTest;
|
||||
}
|
||||
}
|
||||
|
||||
private void Remove(SelectTextModel model)
|
||||
{
|
||||
|
@ -80,16 +80,10 @@ public class WorkPageVM
|
||||
window.ShowDialog();
|
||||
if (window.IsCancel)
|
||||
return;
|
||||
if (ShowWorks.Value.Count == Works.Count)
|
||||
{
|
||||
Works[Works.IndexOf(model)] = newWork;
|
||||
}
|
||||
else
|
||||
{
|
||||
Works[Works.IndexOf(model)] = newWork;
|
||||
if (ShowWorks.Value.Count != Works.Count)
|
||||
ShowWorks.Value[ShowWorks.Value.IndexOf(model)] = newWork;
|
||||
}
|
||||
}
|
||||
|
||||
private void Remove(WorkModel model)
|
||||
{
|
||||
|
@ -113,21 +113,10 @@ public class ModMakerWindowVM
|
||||
Directory.CreateDirectory(nameof(ModMaker));
|
||||
if (File.Exists(ModMakerInfo.HistoryFile) is false)
|
||||
File.Create(ModMakerInfo.HistoryFile).Close();
|
||||
|
||||
var lps = new LPS();
|
||||
foreach (var history in Histories)
|
||||
{
|
||||
lps.Add(
|
||||
new Line(nameof(history))
|
||||
{
|
||||
new Sub(nameof(ModMakeHistory.Id), history.Id),
|
||||
new Sub(nameof(ModMakeHistory.SourcePath), history.SourcePath),
|
||||
new Sub(
|
||||
nameof(ModMakeHistory.LastTime),
|
||||
history.LastTime.ToString("yyyy/MM/dd HH:mm")
|
||||
)
|
||||
}
|
||||
);
|
||||
}
|
||||
lps.Add(LPSConvert.SerializeObjectToLine<Line>(history, nameof(history)));
|
||||
File.WriteAllText(ModMakerInfo.HistoryFile, lps.ToString());
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,7 @@
|
||||
<ComboBox
|
||||
Grid.Column="1"
|
||||
ItemsSource="{Binding SearchTargets}"
|
||||
SelectedIndex="0"
|
||||
SelectedItem="{Binding SearchTarget.Value}" />
|
||||
</Grid>
|
||||
<DataGrid
|
||||
|
@ -3,6 +3,7 @@ using Panuon.WPF.UI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Collections.Specialized;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
@ -89,88 +90,146 @@ public partial class I18nEditWindow : WindowX
|
||||
LoadPets(model);
|
||||
}
|
||||
|
||||
private void LoadFood(ModInfoModel model)
|
||||
private void AddData<T>(
|
||||
ObservableValue<string> id,
|
||||
I18nModel<T> i18nModel,
|
||||
Func<T, ObservableValue<string>> i18nValue
|
||||
)
|
||||
where T : class, new()
|
||||
{
|
||||
foreach (var food in model.Foods)
|
||||
{
|
||||
if (AllData.TryGetValue(food.Id.Value, out var outData))
|
||||
if (AllData.TryGetValue(id.Value, out var outData))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData.Datas[culture.Index]
|
||||
};
|
||||
var group = new ObservableValueGroup<string>() { outData.Datas[culture.Index] };
|
||||
}
|
||||
outData.Datas[culture.Index].Group!.Add(food.I18nDatas[culture.Value].Name);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = food.Id.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(food.I18nDatas[culture].Name);
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(food.Id.Value, data);
|
||||
}
|
||||
if (AllData.TryGetValue(food.DescriptionId.Value, out var outData1))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData1.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData1.Datas[culture.Index]
|
||||
};
|
||||
}
|
||||
outData1.Datas[culture.Index].Group!.Add(
|
||||
food.I18nDatas[culture.Value].Description
|
||||
outData.Datas[culture.Index].Group!.Add(
|
||||
i18nValue(i18nModel.I18nDatas[culture.Value])
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = food.DescriptionId.Value;
|
||||
data.Id.Value = id.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(food.I18nDatas[culture].Description);
|
||||
data.Datas.Add(i18nValue(i18nModel.I18nDatas[culture]));
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(food.DescriptionId.Value, data);
|
||||
AllData.Add(id.Value, data);
|
||||
//id.ValueChanged += IdChange;
|
||||
}
|
||||
}
|
||||
|
||||
private void IdChange(string oldValue, string newValue)
|
||||
{
|
||||
var sourceData = AllData[oldValue];
|
||||
sourceData.Id.Group?.Remove(sourceData.Id);
|
||||
if (AllData.TryGetValue(oldValue, out var outData))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>() { outData.Datas[culture.Index] };
|
||||
}
|
||||
outData.Datas[culture.Index].Group!.Add(sourceData.Datas[culture.Index]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceData.Id.Value = newValue;
|
||||
AllData.Remove(oldValue);
|
||||
AllData.Add(newValue, sourceData);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveData<T>(
|
||||
ObservableValue<string> id,
|
||||
I18nModel<T> i18nModel,
|
||||
Func<T, ObservableValue<string>> i18nValue
|
||||
)
|
||||
where T : class, new()
|
||||
{
|
||||
var data = AllData[id.Value];
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (data.Datas[culture.Index].Group is ObservableValueGroup<string> group)
|
||||
{
|
||||
group.Remove(i18nValue(i18nModel.I18nDatas[culture.Value]));
|
||||
if (group.Count == 1)
|
||||
{
|
||||
group.Clear();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
I18nDatas.Remove(data);
|
||||
AllData.Remove(id.Value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ReplaceData<T>(
|
||||
ObservableValue<string> id,
|
||||
I18nModel<T> i18nModel,
|
||||
Func<T, ObservableValue<string>> i18nValue
|
||||
)
|
||||
where T : class, new()
|
||||
{
|
||||
var data = AllData[id.Value];
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
var oldValue = data.Datas[culture.Index];
|
||||
var newValue = i18nValue(i18nModel.I18nDatas[culture.Value]);
|
||||
if (oldValue.Group is ObservableValueGroup<string> group)
|
||||
{
|
||||
group.Add(newValue);
|
||||
group.Remove(oldValue);
|
||||
}
|
||||
data.Datas[culture.Index] = newValue;
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadFood(ModInfoModel model)
|
||||
{
|
||||
foreach (var food in model.Foods)
|
||||
{
|
||||
AddData(food.Id, food, (m) => m.Name);
|
||||
AddData(food.DescriptionId, food, (m) => m.Description);
|
||||
}
|
||||
model.Foods.CollectionChanged += (s, e) =>
|
||||
{
|
||||
if (e.Action is NotifyCollectionChangedAction.Add)
|
||||
{
|
||||
var newFood = (FoodModel)e.NewItems[0];
|
||||
AddData(newFood.Id, newFood, (m) => m.Name);
|
||||
AddData(newFood.DescriptionId, newFood, (m) => m.Description);
|
||||
}
|
||||
else if (e.Action is NotifyCollectionChangedAction.Remove)
|
||||
{
|
||||
var oldFood = (FoodModel)e.OldItems[0];
|
||||
RemoveData(oldFood.Id, oldFood, (m) => m.Name);
|
||||
RemoveData(oldFood.DescriptionId, oldFood, (m) => m.Description);
|
||||
}
|
||||
else if (e.Action is NotifyCollectionChangedAction.Replace)
|
||||
{
|
||||
var newFood = (FoodModel)e.NewItems[0];
|
||||
var oldFood = (FoodModel)e.OldItems[0];
|
||||
ReplaceData(newFood.Id, newFood, (m) => m.Name);
|
||||
ReplaceData(newFood.DescriptionId, newFood, (m) => m.Description);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void LoadClickText(ModInfoModel model)
|
||||
{
|
||||
foreach (var text in model.ClickTexts)
|
||||
{
|
||||
if (AllData.TryGetValue(text.Id.Value, out var outData))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData.Datas[culture.Index]
|
||||
};
|
||||
}
|
||||
outData.Datas[culture.Index].Group!.Add(text.I18nDatas[culture.Value].Text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = text.Id.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(text.I18nDatas[culture].Text);
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(text.Id.Value, data);
|
||||
}
|
||||
AddData(text.Id, text, (m) => m.Text);
|
||||
}
|
||||
}
|
||||
|
||||
@ -178,29 +237,7 @@ public partial class I18nEditWindow : WindowX
|
||||
{
|
||||
foreach (var text in model.LowTexts)
|
||||
{
|
||||
if (AllData.TryGetValue(text.Id.Value, out var outData))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData.Datas[culture.Index]
|
||||
};
|
||||
}
|
||||
outData.Datas[culture.Index].Group!.Add(text.I18nDatas[culture.Value].Text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = text.Id.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(text.I18nDatas[culture].Text);
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(text.Id.Value, data);
|
||||
}
|
||||
AddData(text.Id, text, (m) => m.Text);
|
||||
}
|
||||
}
|
||||
|
||||
@ -208,52 +245,8 @@ public partial class I18nEditWindow : WindowX
|
||||
{
|
||||
foreach (var text in model.SelectTexts)
|
||||
{
|
||||
if (AllData.TryGetValue(text.Id.Value, out var outData))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData.Datas[culture.Index]
|
||||
};
|
||||
}
|
||||
outData.Datas[culture.Index].Group!.Add(text.I18nDatas[culture.Value].Text);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = text.Id.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(text.I18nDatas[culture].Text);
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(text.Id.Value, data);
|
||||
}
|
||||
if (AllData.TryGetValue(text.ChooseId.Value, out var outData1))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData1.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData1.Datas[culture.Index]
|
||||
};
|
||||
}
|
||||
outData1.Datas[culture.Index].Group!.Add(text.I18nDatas[culture.Value].Choose);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = text.ChooseId.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(text.I18nDatas[culture].Choose);
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(text.ChooseId.Value, data);
|
||||
}
|
||||
AddData(text.Id, text, (m) => m.Text);
|
||||
AddData(text.ChooseId, text, (m) => m.Choose);
|
||||
}
|
||||
}
|
||||
|
||||
@ -263,92 +256,9 @@ public partial class I18nEditWindow : WindowX
|
||||
{
|
||||
if (pet.IsSimplePetModel)
|
||||
continue;
|
||||
if (AllData.TryGetValue(pet.Id.Value, out var outData))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData.Datas[culture.Index]
|
||||
};
|
||||
}
|
||||
outData.Datas[culture.Index].Group!.Add(pet.I18nDatas[culture.Value].Name);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = pet.Id.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(pet.I18nDatas[culture].Name);
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(pet.Id.Value, data);
|
||||
}
|
||||
if (AllData.TryGetValue(pet.PetNameId.Value, out var outData1))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData1.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData1.Datas[culture.Index]
|
||||
};
|
||||
}
|
||||
outData1.Datas[culture.Index].Group!.Add(pet.I18nDatas[culture.Value].PetName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = pet.PetNameId.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(pet.I18nDatas[culture].PetName);
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(pet.PetNameId.Value, data);
|
||||
}
|
||||
if (AllData.TryGetValue(pet.DescriptionId.Value, out var outData2))
|
||||
{
|
||||
foreach (var culture in I18nHelper.Current.CultureNames.Enumerate())
|
||||
{
|
||||
if (outData2.Datas[culture.Index].Group is null)
|
||||
{
|
||||
var group = new ObservableValueGroup<string>()
|
||||
{
|
||||
outData2.Datas[culture.Index]
|
||||
};
|
||||
}
|
||||
outData2.Datas[culture.Index].Group!.Add(
|
||||
pet.I18nDatas[culture.Value].Description
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = new I18nData();
|
||||
data.Id.Value = pet.DescriptionId.Value;
|
||||
foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
data.Datas.Add(pet.I18nDatas[culture].Description);
|
||||
I18nDatas.Add(data);
|
||||
AllData.Add(pet.DescriptionId.Value, data);
|
||||
}
|
||||
//var data = new I18nData();
|
||||
//var petNameData = new I18nData();
|
||||
//var descriptionData = new I18nData();
|
||||
//data.Id.Value = pet.Id.Value;
|
||||
//petNameData.Id.Value = pet.PetNameId.Value;
|
||||
//descriptionData.Id.Value = pet.DescriptionId.Value;
|
||||
//foreach (var culture in I18nHelper.Current.CultureNames)
|
||||
//{
|
||||
// data.Datas.Add(pet.I18nDatas[culture].Name);
|
||||
// petNameData.Datas.Add(pet.I18nDatas[culture].PetName);
|
||||
// descriptionData.Datas.Add(pet.I18nDatas[culture].Description);
|
||||
//}
|
||||
//I18nDatas.Add(data);
|
||||
//I18nDatas.Add(petNameData);
|
||||
//I18nDatas.Add(descriptionData);
|
||||
AddData(pet.Id, pet, (m) => m.Name);
|
||||
AddData(pet.PetNameId, pet, (m) => m.PetName);
|
||||
AddData(pet.DescriptionId, pet, (m) => m.Description);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user