public static void CreateBook(string parent, string bookName, string strategy, string portfolio) { try { var exist = Env.Current.StaticData.GetPartyByCode(bookName); if (exist != null) { throw new Exception(String.Format("Book {0} already exists!", bookName)); } else { var entity = Env.Current.StaticData.GetPartyByCode(parent); if (entity == null) { throw new Exception("Cannot find entity" + entity); } var newStrategy = new Party { Code = bookName, Name = bookName, ParentId = entity.Id, Role = Party.Book, Description = "Legacy strategy" }; newStrategy.SetProperty("Portfolio", portfolio); newStrategy.SetProperty("Strategy", strategy); Env.Current.StaticData.SaveParty(newStrategy); ScriptBase.Logger.InfoFormat("Created book {0} in pfolio {1}.", bookName, portfolio); } } catch (Exception ex) { ScriptBase.Logger.Error(ex); } }
internal static void SetBookPortfolio(Party book, string portfolio) { if (book.GetProperty(BookProp2) != null || portfolio == null) return; var temp = Env.Current.StaticData.GetDomain(BookPortfolio); var portfolios = temp != null ? temp.Values : null; book.SetProperty(BookProp2, portfolio); if (portfolios == null || !portfolios.Contains(portfolio)) Logger.Warn("Trade Import book portfolio " + portfolio +" not recgonized"); book.Action = UpdateAction; Env.Current.StaticData.SaveAndLoadParty(book); }
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; }
private void SetBookProperties(Party book) { foreach (var p in BookProperties) { book.SetProperty(p.Name, p.Value); } }