コード例 #1
0
ファイル: CrawlerPlugin.cs プロジェクト: eatonmi/Crawler
 /* Class methods */
 public CrawlerPlugin(Website website, IDatabaseAccessor db, int crawlID, Log l)
 {
     this.db = db;
     this.website = website;
     this.crawlID = crawlID;
     this.log = l;
 }
コード例 #2
0
 public AdoNetPasswordService(ILogger <AdoNetPasswordService> log, IDatabaseAccessor db, IImagePersister par_ImagePersister, IOptionsMonitor <PasswordsOptions> OpzioniPassword)
 {
     this.par_ImagePersister = par_ImagePersister;
     this.OpzioniPassword    = OpzioniPassword;
     this.log = log;
     this.db  = db;
 }
コード例 #3
0
        public void SaveDatabaseObject_ObjectInPopulated_ObjectIsSavedToDatabase()
        {
            const string json = @"{'someOtherObject': true}";

            IDatabaseAccessor mockDatabaseAccessor = CreateMockDatabaseAccessor(json);
            var sut = CreateDatabaseManager(mockDatabaseAccessor);
            var testDatabaseObject = new TestDatabaseObject
            {
                IntProperty = 5, StringProperty = "String", List = new[]
                {
                    true, false, true
                }
            };

            sut.SaveDatabaseObject("databaseObject", testDatabaseObject);
            Mock.Get(mockDatabaseAccessor).Verify(da => da.WriteToDatabase(It.IsAny <string>()), Times.Once());

            var savedJsonTree = JObject.Parse(_jsonWrittenToDatabase);

            savedJsonTree["someOtherObject"].ToObject <bool>().ShouldBe(true);
            var savedTestDatabaseObject = JsonConvert.DeserializeObject <TestDatabaseObject>(savedJsonTree["databaseObject"].ToString());

            savedTestDatabaseObject.StringProperty.ShouldBe(testDatabaseObject.StringProperty);
            savedTestDatabaseObject.IntProperty.ShouldBe(testDatabaseObject.IntProperty);
            savedTestDatabaseObject.List.ShouldMatch(testDatabaseObject.List.ToArray());
        }
コード例 #4
0
 protected JoinItem(IDatabaseAccessor accessor, string table, string alias, int flag, Clause clause, params string[] columns) : base(accessor, table, alias, clause, columns)
 {
     if (!FLAGS.Any(f => f.Equals(flag)))
     {
         throw new ApplicationException(string.Format("JoinItem(flag:{0}) is illegal!(0:INNER,1:LEFT,2:RIGHT)", flag));
     }
 }
コード例 #5
0
        public void SaveThenLoadDatabaseObject_ObjectIsSavedAndLoadedCorrectly()
        {
            const string json = @"{'someOtherObject': true}";

            IDatabaseAccessor mockDatabaseAccessor = CreateMockDatabaseAccessor(json);
            var sut = CreateDatabaseManager(mockDatabaseAccessor);
            var testDatabaseObject = new TestDatabaseObject
            {
                IntProperty    = 5,
                StringProperty = "String",
                List           = new[]
                {
                    true, false, true
                }
            };

            sut.SaveDatabaseObject("databaseObject", testDatabaseObject);

            var sut2 = CreateDatabaseManager(CreateMockDatabaseAccessor(_jsonWrittenToDatabase));

            var savedAndLoadedTestDatabaseObject = sut2.GetDatabaseObject <TestDatabaseObject>("databaseObject");

            savedAndLoadedTestDatabaseObject.StringProperty.ShouldBe(testDatabaseObject.StringProperty);
            savedAndLoadedTestDatabaseObject.IntProperty.ShouldBe(testDatabaseObject.IntProperty);
            savedAndLoadedTestDatabaseObject.List.ShouldMatch(testDatabaseObject.List.ToArray());
        }
コード例 #6
0
 public AdoNetCouseService(ILogger <AdoNetCouseService> logger, IDatabaseAccessor db, IMapper mapper, IOptionsMonitor <CoursesOptions> coursesOptions)
 {
     this.db             = db;
     this.mapper         = mapper;
     this.coursesOptions = coursesOptions;
     this.logger         = logger;
 }
コード例 #7
0
 public CalendarService(ICalendarInterface calendarInterface,
                        string filePath = "Constants\\CalendarEntries.json")
 {
     _context   = new DatabaseAccessor(filePath);
     _entries   = _context.FetchEntries();
     _interface = calendarInterface;
 }
コード例 #8
0
 public AdoNetCourseService(ILogger <AdoNetCourseService> logger, IDatabaseAccessor db, IImagePersister imagePersister, IOptionsMonitor <CoursesOptions> coursesOptions)
 {
     this.imagePersister = imagePersister;
     this.coursesOptions = coursesOptions;
     this.logger         = logger;
     this.db             = db;
 }
コード例 #9
0
        public void GetItemDefinition_Izanagi_ShouldReturnItemDefinitionWithCorrectValues()
        {
            IConfiguration    config           = Mock.Of <IConfiguration>(m => m["Emissary:ManifestPath"] == "data/dummy.manifest");
            uint              izanagiHash      = 3211806999;
            string            jsonResponse     = TestUtils.ReadFile("item-izanagi.json");
            IDatabaseAccessor databaseAccessor = Mock.Of <IDatabaseAccessor>();

            Mock.Get(databaseAccessor)
            .Setup(m => m.ExecuteCommand(
                       It.Is <string>(s => s.Contains(((int)izanagiHash).ToString())),
                       It.IsRegex(@".*\.manifest$")))
            .Returns(jsonResponse);

            ManifestItemDefinition expected = new ManifestItemDefinition("Izanagi's Burden", "Exotic",
                                                                         new List <uint>()
            {
                2, 1, 10
            });

            ManifestDao            manifestDao = new ManifestDao(config, databaseAccessor);
            ManifestItemDefinition actual      = manifestDao.GetItemDefinition(izanagiHash);

            Assert.AreEqual(expected.DisplayName, actual.DisplayName);
            Assert.AreEqual(expected.TierTypeName, actual.TierTypeName);
            Assert.IsTrue(expected.ItemCategoryHashes.SequenceEqual(actual.ItemCategoryHashes));
        }
コード例 #10
0
        public static void ExecuteNonQuery(this IDatabaseAccessor instance, string commandText, dynamic parameterValues)
        {
            using (SqlConnection connection = instance.CreateConnection())
            {
                string outputValue = null;
                connection.Open();
                SqlCommand command = instance.CreateCommand(connection, commandText, CommandType.StoredProcedure);
                IEnumerable <PropertyInfo> properties = ((Type)parameterValues.GetType()).GetProperties().Where(property => property.CanRead);
                properties.ForEach(property =>
                {
                    object value                 = property.GetValue(parameterValues, null);
                    SqlDbType?valType            = null;
                    ParameterDirection direction = ParameterDirection.Input;
                    string parameterName         = property.Name;
                    if (parameterName.StartsWith("_"))
                    {
                        direction     = ParameterDirection.InputOutput;
                        parameterName = parameterName.Substring(1);
                        outputValue   = parameterName;
                    }
                    if (!parameterName.Equals("IncludeDeleted", StringComparison.OrdinalIgnoreCase))
                    {
                        command.SetParameter(parameterName, value, direction, valType);
                    }
                    else
                    {
                        command.SetIncludeDeletedParameter((bool)value);
                    }
                });

                var reader = command.ExecuteNonQuery();
            }
        }
コード例 #11
0
ファイル: HttpHeaderPlugin.cs プロジェクト: eatonmi/Crawler
 public HttpHeaderPlugin(Website website, IDatabaseAccessor db, int crawlID, Log l)
     : base(website, db, crawlID, l)
 {
     this.website = website;
     this.db = db;
     this.crawlID = crawlID;
     this.logger = l;
 }
コード例 #12
0
ファイル: UpdateItem.cs プロジェクト: AyreYang/Workflow
 public UpdateItem(IDatabaseAccessor accessor, T entity = null) : base(
         accessor,
         (entity != null ? entity : (typeof(T).Assembly.CreateInstance(typeof(T).FullName) as TableEntity)).Schema.Name,
         null,
         (entity != null ? entity : (typeof(T).Assembly.CreateInstance(typeof(T).FullName) as TableEntity)).Schema.ColumnNames
         )
 {
 }
コード例 #13
0
 public DBContext(IDatabaseAccessor accessor)
 {
     if (accessor == null)
     {
         throw new ArgumentNullException("accessor");
     }
     Accessor = accessor;
 }
コード例 #14
0
ファイル: WorkFlowContext.cs プロジェクト: AyreYang/Workflow
 internal WorkFlowContext(IDatabaseAccessor accessor) : base()
 {
     if (accessor == null)
     {
         throw new ArgumentNullException("accessor", "Argument(accessor) is null!");
     }
     this.accessor = accessor;
 }
コード例 #15
0
 public FromItem(IDatabaseAccessor accessor, T entity = null, string alias = null) : base(
         accessor,
         (entity != null ? entity : (Activator.CreateInstance(typeof(T)) as TableEntity)).Schema.Name,
         alias,
         (entity != null ? entity : (Activator.CreateInstance(typeof(T)) as TableEntity)).Schema.ColumnNames
         )
 {
 }
コード例 #16
0
        public void SaveDatabaseObject_ObjectIsNull_ObjectIsRemovedFromJson()
        {
            const string      json = @"{'databaseObject': true}";
            IDatabaseAccessor mockDatabaseAccessor = CreateMockDatabaseAccessor(json);
            var sut = CreateDatabaseManager(mockDatabaseAccessor);

            sut.SaveDatabaseObject("databaseObject", null);
            Mock.Get(mockDatabaseAccessor).Verify(da => da.WriteToDatabase(@"{}"), Times.Once());
        }
コード例 #17
0
ファイル: SelectItem.cs プロジェクト: AyreYang/Workflow
 protected SelectItem(IDatabaseAccessor accessor, TableItem[] tables, bool distinct, Clause clause) : base(accessor, clause)
 {
     if (tables == null || tables.Count(t => t != null) <= 0)
     {
         throw new ArgumentNullException("table");
     }
     _tables  = new List <TableItem>(tables);
     Distinct = distinct;
 }
コード例 #18
0
 protected Model(IDatabaseAccessor accessor, Guid?wid)
 {
     if (accessor == null)
     {
         throw new ArgumentNullException("accessor");
     }
     Accessor   = accessor;
     WorkFlowId = wid;
 }
コード例 #19
0
 public AdoNetCourseService(ILogger <AdoNetCourseService> logger, IDatabaseAccessor db, IImagePersister imagePersister, IHttpContextAccessor httpContextAccessor, IEmailClient emailClient, IOptionsMonitor <CoursesOptions> coursesOptions)
 {
     this.imagePersister      = imagePersister;
     this.coursesOptions      = coursesOptions;
     this.logger              = logger;
     this.emailClient         = emailClient;
     this.httpContextAccessor = httpContextAccessor;
     this.db = db;
 }
コード例 #20
0
ファイル: TableItem.cs プロジェクト: AyreYang/Workflow
        protected TableItem(IDatabaseAccessor accessor, string table, string alias, Clause clause, params string[] columns) : base(accessor, clause)
        {
            CheckTableName(table);
            _table = table;

            CheckColumnNames(columns);
            _columns = new List <string>(columns.Select(c => c.ToUpper()).Distinct());

            Alias = alias;
        }
コード例 #21
0
        public SSLConfirmationPlugin(Website website, IDatabaseAccessor db, int crawlID, Log l)
            : base(website, db, crawlID, l)
        {
            result = new List<String>();
            logger = l;
            web = website;
            this.crawlID = crawlID;

            /* Ensure we're not doing the effective date stuff wrong */
        }
コード例 #22
0
ファイル: Bot.cs プロジェクト: eatonmi/Crawler
        public Bot(Website website, Log l, IDatabaseAccessor dba, IWebInteractor wi, IFileSystemInteractor fsi)
        {
            _baseurl = website.url;
            _website = website;
            _log = l;
            _dba = dba;
            _webinteractor = wi;
            _fsinteractor = fsi;

            ResultsList = new List<CrawlResult>();
        }
コード例 #23
0
        public void Delete(IDatabaseAccessor accessor)
        {
            if (accessor == null)
            {
                throw new ArgumentNullException("accessor");
            }
            var collection = new SQLScriptCollection(accessor);

            this.Schema.FillDeleteScriptCollection(collection);
            accessor.ExecuteSQLCommand(collection.ExportCommands());
        }
コード例 #24
0
ファイル: SQLContainer.cs プロジェクト: AyreYang/Workflow
        public SQLContainer(IDatabaseAccessor accessor, Counter pcounter = null, Counter tcounter = null)
        {
            if (accessor == null)
            {
                throw new ArgumentNullException("accessor");
            }
            this.accessor = accessor;

            _tCounter       = tcounter == null ? new Counter() : tcounter;
            _pCounter       = pcounter == null ? new Counter() : pcounter;
            SQLParamCreater = new SQLParamCreater(_pCounter);
        }
コード例 #25
0
ファイル: DBRefBase.cs プロジェクト: AyreYang/Workflow
        public void Delete(IDatabaseAccessor accessor)
        {
            ThrowNotReadyException();

            if (accessor == null)
            {
                throw new ArgumentNullException("accessor");
            }
            var collection = new SQLScriptCollection(accessor);

            Delete(collection);
            accessor.ExecuteSQLCommand(collection.ExportCommands());
        }
コード例 #26
0
        public void Save(IDatabaseAccessor accessor, bool fresh = false)
        {
            if (accessor == null)
            {
                throw new ArgumentNullException("accessor");
            }
            var collection = new SQLScriptCollection(accessor);

            this.Schema.FillSaveScriptCollection(collection);
            accessor.ExecuteSQLCommand(collection.ExportCommands());
            if (fresh)
            {
                this.Fresh(accessor);
            }
        }
コード例 #27
0
        public void LookupItem_DatabaseNotFound_ShouldThrowDataAccessException()
        {
            IConfiguration    config           = Mock.Of <IConfiguration>(m => m["Emissary:ManifestPath"] == "data/dummy.manifest");
            uint              izanagiHash      = 3211806999;
            IDatabaseAccessor databaseAccessor = Mock.Of <IDatabaseAccessor>();

            Mock.Get(databaseAccessor)
            .Setup(m => m.ExecuteCommand(
                       It.Is <string>(s => s.Contains(((int)izanagiHash).ToString())),
                       It.IsRegex(@".*\.manifest$")))
            .Throws(new DataAccessException("database file not found"));
            ManifestDao         manifestDao = new ManifestDao(config, databaseAccessor);
            DataAccessException exception   = Assert.ThrowsException <DataAccessException>(() => manifestDao.GetItemDefinition(izanagiHash));

            Assert.IsTrue(exception.Message.Contains("database file not found"));
        }
コード例 #28
0
        public void GetItemDefinition_ItemNotFound_ShouldReturnNull()
        {
            IConfiguration    config = Mock.Of <IConfiguration>(m => m["Emissary:ManifestPath"] == "data/dummy.manifest");
            uint              nonexistentItemHash = 0;
            IDatabaseAccessor databaseAccessor    = Mock.Of <IDatabaseAccessor>();

            Mock.Get(databaseAccessor)
            .Setup(m => m.ExecuteCommand(
                       It.Is <string>(s => s.Contains(((int)nonexistentItemHash).ToString())),
                       It.IsRegex(@".*\.manifest$")))
            .Returns("");
            ManifestDao            manifestDao = new ManifestDao(config, databaseAccessor);
            ManifestItemDefinition actual      = manifestDao.GetItemDefinition(nonexistentItemHash);

            Assert.IsNull(actual);
        }
コード例 #29
0
        public void LookupItemCategory_KineticWeapon_ShouldReturnItemDefinitionWithCorrectValues()
        {
            IConfiguration    config = Mock.Of <IConfiguration>(m => m["Emissary:ManifestPath"] == "data/dummy.manifest");
            uint              kineticWeaponCategoryHash = 2;
            string            jsonResponse     = TestUtils.ReadFile("category-kinetic-weapon.json");
            IDatabaseAccessor databaseAccessor = Mock.Of <IDatabaseAccessor>();

            Mock.Get(databaseAccessor)
            .Setup(m => m.ExecuteCommand(
                       It.Is <string>(s => s.Contains(((int)kineticWeaponCategoryHash).ToString())),
                       It.IsRegex(@".*\.manifest$")))
            .Returns(jsonResponse);
            ManifestItemCategoryDefinition expected = new ManifestItemCategoryDefinition("Kinetic Weapon");
            ManifestDao manifestDao = new ManifestDao(config, databaseAccessor);
            ManifestItemCategoryDefinition actual = manifestDao.GetItemCategoryDefinition(kineticWeaponCategoryHash);

            Assert.AreEqual(expected.CategoryName, actual.CategoryName);
        }
コード例 #30
0
        public void Fresh(IDatabaseAccessor accessor)
        {
            if (accessor == null)
            {
                throw new ArgumentNullException("accessor");
            }
            var dbset = RetrieveDataSet(accessor);
            var table = dbset.Tables.Cast <DataTable>().FirstOrDefault(t => t.TableName.Equals(0.ToString()));

            if (table == null)
            {
                throw new ApplicationException(string.Format("Missing table({0})!", Schema.Name));
            }
            if (table.Rows.Count <= 0)
            {
                throw new ApplicationException(string.Format("No data in table({0})!", Schema.Name));
            }
            Fill(table.Rows[0], dbset, 0, 0);
        }
コード例 #31
0
        private DataSet RetrieveDataSet(IDatabaseAccessor accessor)
        {
            var collection = new SQLScriptCollection(accessor);

            Schema.FillFreshScriptCollection(collection);
            var dbset = accessor.RetrieveDataSet(collection.ExportCommand());

            if (dbset.Tables.Count > 0)
            {
                for (var i = 0; i < dbset.Tables.Count; i++)
                {
                    if (string.IsNullOrWhiteSpace(collection.Scripts[i].ID))
                    {
                        continue;
                    }
                    dbset.Tables[i].TableName = collection.Scripts[i].ID.ToString();
                }
            }
            return(dbset);
        }
コード例 #32
0
 public AdoNetCourseService(
     ILogger <AdoNetCourseService> logger,
     IDatabaseAccessor db,
     IImagePersister imagePersister,
     IHttpContextAccessor httpContextAccessor,
     IEmailClient emailClient,
     IOptionsMonitor <CoursesOptions> coursesOptions,
     IPaymentGateway paymentGateway,
     LinkGenerator linkGenerator,
     ITransactionLogger transactionLogger)
 {
     this.imagePersister      = imagePersister;
     this.coursesOptions      = coursesOptions;
     this.logger              = logger;
     this.emailClient         = emailClient;
     this.httpContextAccessor = httpContextAccessor;
     this.db                = db;
     this.paymentGateway    = paymentGateway;
     this.linkGenerator     = linkGenerator;
     this.transactionLogger = transactionLogger;
 }
コード例 #33
0
ファイル: Clause.cs プロジェクト: AyreYang/Workflow
        public Clause(IDatabaseAccessor accessor, string text, params KeyValuePair <string, object>[] parameters)
        {
            if (accessor == null)
            {
                throw new ArgumentNullException("accessor");
            }
            if (string.IsNullOrWhiteSpace(text))
            {
                throw new ArgumentNullException("text");
            }

            this.accessor   = accessor;
            this.text       = text.Trim();
            this.parameters = new List <KeyValuePair <string, object> >();

            if (parameters != null)
            {
                parameters.ToList().ForEach(p =>
                {
                    AddParam(p.Key, p.Value);
                });
            }
        }
コード例 #34
0
ファイル: SQLScript.cs プロジェクト: AyreYang/Workflow
        public DbParameter[] ExportParameters(IDatabaseAccessor accessor)
        {
            if (accessor == null)
            {
                throw new ArgumentNullException("accessor");
            }

            var list = new List <DbParameter>();

            foreach (var item in _list)
            {
                var parameters = item.Parameters;
                if (parameters == null || parameters.Length <= 0)
                {
                    continue;
                }
                parameters.ToList().ForEach(p =>
                {
                    list.Add(accessor.CreateParameter(p.Key, p.Value));
                });
            }
            return(list.ToArray());
        }
コード例 #35
0
ファイル: WebsiteParser.cs プロジェクト: eatonmi/Crawler
 public WebsiteParser(Website website, IDatabaseAccessor db, int crawlID, Log l, FileSystemInteractor fs)
     : base(website, db, crawlID, l)
 {
     fsInteractor = fs;
 }
コード例 #36
0
 private IDatabaseManager CreateDatabaseManager(IDatabaseAccessor databaseAccessor)
 {
     return new DatabaseManager(databaseAccessor);
 }
コード例 #37
0
ファイル: DatabaseStarter.cs プロジェクト: TomPeters/chooie
 public DatabaseStarter(IDatabaseAccessor databaseAccessor)
 {
     _databaseAccessor = databaseAccessor;
 }
コード例 #38
0
 public UnitAdjuster(IDatabaseAccessor databaseAccessor)
 {
     this.databaseAccessor = databaseAccessor;
 }
コード例 #39
0
ファイル: ParsingModule.cs プロジェクト: eatonmi/Crawler
 public HTMLParsingModule(Website w, IDatabaseAccessor db, int id, Log log)
     : base(w, db, id, log)
 {
     searchStringList = new List<String>();
     descriptionList = new List<String>();
 }
コード例 #40
0
 public void SetUp()
 {
     mockedDatabaseAccessor = Mock.Create<IDatabaseAccessor>();
 }