public static EmpDocument Create(MondaiDocument mondaiDocument) { var result = new FishDocument(); var documentElement = new FishElement("document"); documentElement.Items.Add(new FishElement("id", mondaiDocument.Id)); documentElement.Items.Add(new FishElement("title", mondaiDocument.Name)); result.Items.Add(documentElement); documentElement.Items.AddRange ( mondaiDocument.Items.Select(daimon => { var daimonElement = new FishElement("daimon"); daimonElement.Items.Add(new FishElement("id", daimon.Id)); daimonElement.Items.Add(new FishElement("title", daimon.Name)); daimonElement.Items.AddRange ( daimon.Items.Select(chumon => { var chumonElement = new FishElement("chumon"); chumonElement.Items.Add(new FishElement("id", chumon.Id)); chumonElement.Items.Add(new FishElement("title", chumon.Name)); if (chumon.IsShuffled) { chumonElement.Items.Add(new FishElement("shuffle", "true")); } if (chumon.IsOptional) { chumonElement.Items.Add(new FishElement("optional", "true")); } chumonElement.Items.AddRange(chumon.HelpIds.Select(helpId => new FishElement("helpId", helpId))); chumonElement.Items.AddRange ( chumon.Items.Select(mondai => { var shomon = mondai as Shomon; if (null != shomon) { return Create(shomon); } var ankimon = mondai as Ankimon; if (null != ankimon) { return Create(ankimon); } throw new ApplicationException(); }) ); return chumonElement; }) ); return daimonElement; }) ); var emp = new EmpDocument(); emp._fishDocument = result; return emp; }
public static FishElement Create(Shomon shomon) { if (null == shomon) throw new ArgumentNullException(); var shomonElement = new FishElement("shomon"); shomonElement.Items.Add(new FishElement("id", shomon.Id)); shomonElement.Items.Add(new FishElement("mon", shomon.Mondaibun)); var list = new List<MondaiWord>(shomon.MondaiWords); shomonElement.Items.AddRange(shomon.CorrectAnswers.Select(seikai => { var mondaiWords = Shomon.正解探索(seikai, shomon.MondaiWords); foreach (var w in mondaiWords) { var index = list.IndexOf(w); if (-1 == index) { continue; } list.RemoveAt(index); } var result = MondaiWord.相互変換可能なテキスト形式を取得する(mondaiWords); return new FishElement("sei", result); })); shomonElement.Items.AddRange(list.Select(mondaiWord => new FishElement("word", mondaiWord.Text.Replace(" ", "+")))); return shomonElement; }
public static FishElement Create(Ankimon ankimon) { var ankimonElement = new FishElement("ankimon"); ankimonElement.Items.Add(new FishElement("id", ankimon.Id)); ankimonElement.Items.AddRange(ankimon.AnkimonItems.Select(ankimonItem => { var ankimonItemElement = new FishElement("item"); ankimonItemElement.Items.Add(new FishElement("name", ankimonItem.Name)); ankimonItemElement.Items.Add(new FishElement("split", MondaiWord.相互変換可能なテキスト形式を取得する(ankimonItem.MondaiWords))); // ankimonItemElement.Items.AddRange(ankimonItem.MondaiWords.Select(mondaiWord => new FishElement("word", mondaiWord.Text))); return ankimonItemElement; })); return ankimonElement; }