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); }
protected override AbstractSource DoCreateNewSource(string name, string url, List <MetaDataObject> templateAndValues) { string value; int tmp; MetaDataObject source = MetaDataObject.FindIn(templateAndValues, SmackProvider.META_SOURCE); value = source.GetValueAsString(); if (String.IsNullOrEmpty(value)) { throw new Exception("No source selected"); } AbstractSource s = new SmackSource(value); MetaDataObject pages = MetaDataObject.FindIn(templateAndValues, SmackProvider.META_PAGES); value = pages.GetValueAsString(); if (String.IsNullOrEmpty(value)) { tmp = DefaultPages; } else { int.TryParse(value, out tmp); } pages.SetValue(tmp); s.SetMetaData(templateAndValues); return(s); }