コード例 #1
0
ファイル: MonsterProvider.cs プロジェクト: allanx2000/Watcher
        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);
        }
コード例 #2
0
        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);
        }