internal static Party LoadParty(PartyInfo info, StringBuilder sb) { var party = Env.Current.StaticData.GetPartyByCode(info.Code) ?? Env.Current.StaticData.GetPartyByProperty(Party.CounterParty, PartyMlpCode, info.Code); if (party == null) { party = new Party { Code = info.Code, RoleList = info.RoleList, Name = info.Name }; party.SetProperty(PartyCode2, info.Code2); party.SetProperty(PartyLabel, info.Label); party.SetProperty(PartyDisplay, info.Display); party.SetProperty(PartyMlpCode, info.Code); return party; } { var display = party.GetProperty(PartyDisplay); var code2 = party.GetProperty(PartyCode2); var label = party.GetProperty(PartyLabel); var mlpCode = party.GetProperty(PartyMlpCode); var name = party.Name; var changed = false; if (info.Code != null && (mlpCode == null || !mlpCode.Equals(info.Code))) { party.SetProperty(PartyMlpCode, info.Code); changed = true; } if (info.Name != null && (name == null || !name.Equals(info.Name))) { party.Name = info.Name; changed = true; } if (info.Display != null && (display == null || !display.Equals(info.Display))) { party.SetProperty(PartyDisplay, info.Display); changed = true; } if (info.Code2 != null && (code2 == null || !code2.Equals(info.Code2))) { party.SetProperty(PartyCode2, info.Code2); changed = true; } if (info.Label != null && (label == null || !label.Equals(info.Label))) { party.SetProperty(PartyLabel, info.Label); changed = true; } foreach (var r in info.RoleList) { if (!party.RoleList.Contains(r)) { party.RoleList = info.RoleList; changed = true; break; } } if (changed) { party.Action = UpdateAction; return party; } } return null; }
internal static IList<PartyInfo> ReadPartyData(FilterData filterData, StringBuilder sb) { var fileName = filterData.FileName; if (!File.Exists(fileName)) { if (sb != null) sb.Append("File " + fileName + " not found\n"); return new List<PartyInfo>(); } var list = new List<PartyInfo>(); using (var stream = File.OpenRead(fileName)) { using (var reader = new StreamReader(stream)) { string line; var header = reader.ReadLine(); if (string.IsNullOrEmpty(header)) { Logger.Error("[Error Read File] Empty Headers ... "); return new List<PartyInfo>(); } var headers = new Dictionary<string, int>(); using (var csvParser = new TextFieldParser(new StringReader(header))) { csvParser.SetDelimiters(new[] { "," }); var hss = csvParser.ReadFields(); int idx = 0; foreach (var s in hss) { headers[s.Trim()] = idx++; } } while ((line = reader.ReadLine()) != null) { //Parse Line here if (string.IsNullOrEmpty(line)) break; //we are at end var pinfo = new PartyInfo(line, headers); list.Add(pinfo); } } } return list; }