private static void getClassifChildren(ProductDetailAggregate pd, VidalClassification parent,TreeNode node) { IEnumerable<VidalClassification> children = pd.vidalClassifications.Where<VidalClassification>(l => ((l.parentLink != null ? l.parentLink.ToString() : null) == parent.id)); foreach (VidalClassification child in children) { TreeNode childNode = new TreeNode(); childNode.Name = child.id; childNode.Text = child.name; node.Nodes.Add(childNode); getClassifChildren(pd, child, childNode); } }
public ProductDetailView(Uri uri) { InitializeComponent(); this.pd = (RestUtils.getProductDetail(uri)); productTextBox.Text = pd.product.Name; laboTextBox.Text = pd.product.CompanyName; foreach (Reco reco in pd.recos) { recosListBox.Items.Add(reco.Name); } TreeNode node = new TreeNode(); VidalClassification parent = pd.vidalClassifications.FirstOrDefault<VidalClassification>(l => (l.id == "vidal://vidal_classification/0")); node.Name = parent.id.ToString(); node.Text = parent.name; getClassifChildren(pd, parent,node); classifTreeView.Nodes.Add(node); classifTreeView.ExpandAll(); SyndicationFeed mono = RestUtils.getFeedByUri(pd.product.productDocumentOpt); monoWebBrowser.DocumentText =( (TextSyndicationContent)mono.Items.First().Content).Text; vigiTextBox.Text = pd.product.vigilance; nurseTextBox.Text = pd.product.midwife; String moleculeLabel = ""; foreach (Molecule molecule in pd.molecules) { moleculeLabel = moleculeLabel + molecule.name + ","; } eenTextBox.Text = moleculeLabel; if (pd.product.Liste != null) { prescriptionListBox.Items.Add(pd.product.Liste); } packDataGridView.DataSource = pd.packages; String genericLabel = ""; foreach(GenericGroup group in pd.GenericGroups){ genericLabel = genericLabel + group.name +","; } genGrpTextBox.Text = genericLabel; cngTextBox.Text = pd.product.vmp; }
private static ProductDetailAggregate getProductDetailByFeedItem(SyndicationFeed productFeed) { Product product = getProductByFeedItem(productFeed.Items.SingleOrDefault(l => (l.Categories[0].Name == "PRODUCT"))); IEnumerable<SyndicationItem> molecules = productFeed.Items.Where(l => (l.Categories[0].Name == "MOLECULE")); List<Molecule> moleculeList = new List<Molecule>(); foreach (SyndicationItem item in molecules) { String moleculeName = item.Title.Text; int id = item.ElementExtensions.ReadElementExtensions<int>("id", vidalNameSpace).FirstOrDefault(); Molecule molec = new Molecule(id,moleculeName); moleculeList.Add(molec); } IEnumerable<SyndicationItem> recos = productFeed.Items.Where(l => (l.Categories[0].Name == "RECO")); List<Reco> recoList = getRecosBySyndicationFeed(recos); IEnumerable<SyndicationItem> vidalClassifs = productFeed.Items.Where(l => (l.Categories[0].Name == "VIDAL_CLASSIFICATION")); List<VidalClassification> vidalList = new List<VidalClassification>(); foreach (SyndicationItem item in vidalClassifs) { String classifName = item.Title.Text; String id = item.Id; SyndicationLink parentLink = (item.Links.FirstOrDefault(l => (l.RelationshipType == "inline"))); Uri parentLinkUri = null; if (parentLink != null) { parentLinkUri = parentLink.Uri; } VidalClassification vidalClass = new VidalClassification(id, classifName, parentLinkUri, parentLinkUri); vidalList.Add(vidalClass); } IEnumerable<SyndicationItem> packages = productFeed.Items.Where(l => (l.Categories[0].Name == "PACKAGE")); List<Package> packList = getPackagesBySyndicationFeed(packages); IEnumerable<SyndicationItem> genGroups = productFeed.Items.Where(l => (l.Categories[0].Name == "GENERIC_GROUP")); List<GenericGroup> groups = new List<GenericGroup>(); foreach (SyndicationItem group in genGroups) { int id =group.ElementExtensions.ReadElementExtensions<int>("id", vidalNameSpace).FirstOrDefault(); String name =group.Title.Text ; String type = group.ElementExtensions.ReadElementExtensions<String>("genericType", vidalNameSpace).FirstOrDefault(); SyndicationLink productSyndicationLink = group.Links.FirstOrDefault(l => (l.Title == "GENERIC_GROUP")); Uri productLink = null; if (productSyndicationLink != null) { productLink = productSyndicationLink.Uri; } groups.Add(new GenericGroup(id, name, type, productLink)); } ProductDetailAggregate fullProduct = new ProductDetailAggregate(); fullProduct.product = product; fullProduct.recos = recoList; fullProduct.vidalClassifications = vidalList; fullProduct.packages = packList; fullProduct.molecules = moleculeList; fullProduct.GenericGroups = groups; return fullProduct; }