public override void FromCsv(string csv)
        {
            var props = csv.Split('|');

            if (props.Length != 3)
            {
                throw new ArgumentException("Incorrect number of values.", csv);
            }
            var keyword = new KeywordM(int.Parse(props[0]), props[1], null)
            {
                Csv = props
            };

            _model.All.Add(keyword);
            _model.AllDic.Add(keyword.Id, keyword);
        }
 public KeywordDeletedEventArgs(KeywordM keyword)
 {
     Keyword = keyword;
 }
 private static string ToCsv(KeywordM keyword) =>
 string.Join("|",
             keyword.Id.ToString(),
             keyword.Name,
             (keyword.Parent as KeywordM)?.Id.ToString());