public static AbstractSource DoCreateNewSource(string name, List <IMetaDataObject> metaData) //URL is in meta { int tmp; //Set defaults IMetaDataObject mdo = MetaDataObject.FindIn(metaData, JobsProvider.META_PAGES); bool hasUrl = false; bool hasPages = false; foreach (var m in metaData) { switch (m.ID) { case JobsProvider.META_URL: hasUrl = true; break; case JobsProvider.META_PAGES: string value = m.GetValueAsString(); if (String.IsNullOrEmpty(value)) { mdo.SetValue(DefaultPages); } else if (int.TryParse(value, out tmp)) { mdo.SetValue(tmp); } else { throw new Exception("Not a valid number"); } hasPages = true; break; } } if (!hasUrl) { throw new Exception("Url must be provided."); } if (!hasPages) { mdo = JobsProvider.MetaPages.Create(); mdo.SetValue(DefaultPages); metaData.Add(mdo); } AbstractSource s = new JobsSource(name); s.SetMetaData(metaData); return(s); }
//TODO: Add to interface, Rename //TODO: Change to Add... /// <summary> /// Adds the MetaDataObject to MetaData, used for templating /// </summary> /// <param name="meta"></param> public void SetMetaData(IMetaDataObject meta) { MetaData.Add(meta.ID, meta); }