public RelationConfig20(String name, ILinkConfig link) { ParamChecker.AssertParamNotNullOrEmpty(Name, "Name"); ParamChecker.AssertParamNotNull(Link, "Link"); this.Name = name; this.Link = link; }
private void Save(string configName, ILinkConfig linkConfig) { var blob = container.GetBlockBlobReference(configName + ".songs"); var tempFile = Path.GetTempFileName(); using (var stream = File.OpenWrite(tempFile)) using (var writer = new StreamWriter(stream)) using (var csvWriter = new CsvWriter(writer)) { csvWriter.Configuration.Delimiter = ";"; csvWriter.WriteRecords(linkConfig.Links); } blob.UploadFromFileAsync(tempFile).Wait(); File.Delete(tempFile); }
protected IRelationConfig ReadRelationConfig(XElement relationElement, IMap <String, ILinkConfig> nameToLinkMap) { String relationName = XmlConfigUtil.GetRequiredAttribute(relationElement, XmlConstants.NAME); String linkName = XmlConfigUtil.GetAttribute(relationElement, XmlConstants.LINK); ILinkConfig linkConfig = null; if (linkName.Length > 0) { linkConfig = nameToLinkMap.Get(linkName); } if (linkConfig == null) { if (Log.InfoEnabled) { if (linkName.Length > 0) { Log.Info("No LinkConfig found for name '" + linkName + "'. Creating one with default values."); } else { Log.Info("Unconfigured Link found for property '" + relationName + "'. Trying to resolve this later."); } } linkConfig = new LinkConfig(linkName); } try { RelationConfig20 relationConfig = new RelationConfig20(relationName, linkConfig); String entityIdentifierName = XmlConfigUtil.GetAttribute(relationElement, XmlConstants.THIS); if (entityIdentifierName.Length > 0) { EntityIdentifier entityIdentifier = (EntityIdentifier)Enum.Parse(typeof(EntityIdentifier), entityIdentifierName, true); relationConfig.EntityIdentifier = entityIdentifier; } return(relationConfig); } catch (Exception e) { throw new Exception("Error occured while processing relation '" + relationName + "'", e); } }
internal abstract void SaveInternal(string configName, ILinkConfig config);
internal override void SaveInternal(string configName, ILinkConfig link) { // do nothing }
internal override void SaveInternal(string configName, ILinkConfig linkConfig) { Save(configName, linkConfig); }
public ConfigModel(ILinkConfig linkConfig) { Config = linkConfig; Links = Config.Links.Select(x => new LinkModel(Name, x)).ToList(); }
public void LoadFromDocument(XDocument doc, ISet <IEntityConfig> localEntities, ISet <IEntityConfig> externalEntities) { ValidateDocument(doc); HashMap <String, ILinkConfig> nameToLinkMap = new HashMap <String, ILinkConfig>(); List <ILinkConfig> links = new List <ILinkConfig>(); IList <XElement> linkElements = GetDescendants(doc, XmlConstants.LINK); IList <XElement> eLinkElements = GetDescendants(doc, XmlConstants.EXTERNAL_LINK); IList <XElement> iLinkElements = GetDescendants(doc, XmlConstants.INDEPENDENT_LINK); for (int i = linkElements.Count; i-- > 0;) { XElement linkTag = linkElements[i]; ILinkConfig link = ReadLinkConfig(linkTag); links.Add(link); } for (int i = eLinkElements.Count; i-- > 0;) { XElement linkTag = eLinkElements[i]; ILinkConfig link = ReadExternalLinkConfig(linkTag); links.Add(link); } for (int i = iLinkElements.Count; i-- > 0;) { XElement linkTag = iLinkElements[i]; ILinkConfig link = ReadIndependentLinkConfig(linkTag); links.Add(link); } for (int i = links.Count; i-- > 0;) { ILinkConfig link = links[i]; if (link.Source != null) { if (nameToLinkMap.Put(link.Source, link) != null) { throw new Exception("Duplicate orm configuration for link '" + link.Source + "'"); } } if (link.Alias != null) { if (nameToLinkMap.Put(link.Alias, link) != null) { throw new Exception("Duplicate orm configuration for link '" + link.Alias + "'"); } } } List <XElement> entityElements = GetDescendants(doc, XmlConstants.ENTITY); IList <XElement> externalEntityElements = GetDescendants(doc, XmlConstants.EXTERNAL_ENTITY); entityElements.AddRange(externalEntityElements); for (int i = entityElements.Count; i-- > 0;) { XElement entityTag = entityElements[i]; EntityConfig entityConfig = ReadEntityConfig(entityTag, nameToLinkMap); if (localEntities.Contains(entityConfig) || externalEntities.Contains(entityConfig)) { throw new Exception("Duplicate orm configuration for entity '" + entityConfig.EntityType.FullName + "'"); } if (entityConfig.Local) { localEntities.Add(entityConfig); } else { externalEntities.Add(entityConfig); } } }