/// <summary> /// サイト定義形式に変換 /// </summary> /// <param name="src"></param> /// <returns></returns> public IEnumerable <InterfaceDefinition> Convert(ExportJsonDefinition.Rootobject src) { IEnumerable <InterfaceDefinition> r = src.Sites.Select(x => { if (null == x.SiteSettings) { return(null); } if (null == x.SiteSettings.Columns) { return(null); } return(x.SiteSettings.Columns.Select(e => { return new InterfaceDefinition { SiteId = x.SiteId, Title = x.Title, ColumnName = e.ColumnName, LabelText = e.LabelText, Description = e.Description, ValidateRequired = e.ValidateRequired, ChoicesText = e.ChoicesText }; })); }) .Where(e => null != e) .SelectMany(e => e) .Where(e => null != e); // ChoicesTextに関しては、 // CSV形式ではないデータが入っている。 // そこで、一度CSV形式として変換可能な形式に変換する // データフォーマット変更時に準拠した形に変換する r = ChoicesTextAdjustment(r); // データの区切が分かりにくいので、 // 区切り部分で空文字の行を入れる { var x = r.GroupBy(e => e.SiteId).OrderBy(x => x.Key); var rl = new List <InterfaceDefinition>(); foreach (var e in x) { rl.AddRange(e.OrderBy(w => w.ColumnName)); rl.Add(new InterfaceDefinition()); } return(rl); } }
/// <summary> /// サイト定義形式に変換 /// </summary> /// <param name="src"></param> /// <returns></returns> public IEnumerable <SiteDefinition> Convert(ExportJsonDefinition.Rootobject src) { return(src.Sites.Select(x => { return new SiteDefinition { SiteId = x.SiteId, Title = x.Title }; }) .GroupBy(e => e.SiteId) .Select(e => e.FirstOrDefault()) .Where(e => e != null) .OrderBy(e => e.SiteId)); }