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);
        }
Exemple #2
0
 //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);
 }