コード例 #1
0
        private List <PerformerLocalDto> RetrievePerformersFromDatabase()
        {
            List <PerformerLocalDto> allPerformers = new List <PerformerLocalDto>();

            try {
                AccessRetriever retriever       = new AccessRetriever(DatabasePath);
                DataSet         resultsetFromDb = retriever.GetPerformers();
                DataTable       performersTable = resultsetFromDb.Tables[0];
                foreach (DataRow row in performersTable.Rows)
                {
                    int?id = GetStringValueAsInt(row, "ID");
                    PerformerLocalDto performer = new PerformerLocalDto()
                    {
                        Id   = (int)id,
                        Name = row["Performer"].ToString()
                    };
                    allPerformers.Add(performer);
                }
                Log.Information("Read {0} performers from database.", allPerformers.Count);
            }
            catch (Exception e) {
                Log.Error(e, "Could not retrieve performers from database");
            }
            return(allPerformers);
        }
コード例 #2
0
        private List <PerformerLocalDto> RetrievePerformers()
        {
            List <PerformerLocalDto> allPerformers = new List <PerformerLocalDto>();

            try {
                AccessRetriever retriever       = new AccessRetriever(DatabasePath);
                DataSet         resultsetFromDb = retriever.GetPerformers();
                DataTable       performersTable = resultsetFromDb.Tables[0];
                foreach (DataRow row in performersTable.Rows)
                {
                    string            idStr     = row["ID"].ToString();
                    bool              result    = int.TryParse(idStr, out int id);
                    PerformerLocalDto performer = new PerformerLocalDto()
                    {
                        Id   = id,
                        Name = row["Performer"].ToString()
                    };
                    allPerformers.Add(performer);
                }
            }
            catch (Exception e) {
                Log.Error(e, "Could not retrieve performers from database");
                throw new ArgumentException("Could not retrieve performers from database", e);
            }
            return(allPerformers);
        }
コード例 #3
0
        public void Add_NewPerformer_AddsToPerformersTable()
        {
            string dbLocation = @"c:\temp\Files on Dvd.accdb";
            PerformerRepository repository = new PerformerRepository(dbLocation);

            PerformerLocalDto performer = new PerformerLocalDto()
            {
                Name = "Jumpin' Jack Flash"
            };

            repository.Add(performer);

            Console.WriteLine("Debug this line");
        }
コード例 #4
0
        public void Add(PerformerLocalDto performer)
        {
            AccessRetriever retriever       = new AccessRetriever(DatabasePath);
            DataSet         dataSet         = retriever.GetPerformers();
            DataTable       performersTable = dataSet.Tables[0];
            DataRow         newRow          = dataSet.Tables[0].NewRow();

            newRow["Performer"] = performer.Name;
            // newRow[2] = 1; // this is supposed to be Performer Type. Can use the column number instead
            performersTable.Rows.Add(newRow);
            var changes = dataSet.GetChanges();

            retriever.UpdateAccessTableFromDataSet(dataSet, "tblPerformers", "ID, Performer");
        }
コード例 #5
0
        public void Get_ByName_PerformerDoesNotExist_ReturnsPerformer()
        {
            string dbLocation = @"c:\temp\Files on Dvd.accdb";
            PerformerRepository repository = new PerformerRepository(dbLocation);
            PerformerLocalDto   expected   = new PerformerLocalDto()
            {
                Id   = -1,
                Name = "Oscar the Grouch"
            };

            string performerNameToFind = "oscar the grouch";

            var result = repository.Get(performerNameToFind);

            Assert.AreEqual(expected.Id, result.Id);
        }
コード例 #6
0
        public void Get_ByName_PerformerExists_ReturnsPerformer()
        {
            string dbLocation = @"c:\temp\Files on Dvd.accdb";
            PerformerRepository repository = new PerformerRepository(dbLocation);
            PerformerLocalDto   expected   = new PerformerLocalDto()
            {
                Id   = 177,
                Name = "Steve Austin"
            };

            string performerNameToFind = "steve austin";

            var result = repository.Get(performerNameToFind);

            Assert.AreEqual(expected.Id, result.Id);
        }
コード例 #7
0
        public void Get_GetAllPerformers_ReturnsAllPerformers()
        {
            string dbLocation = @"c:\temp\Files on Dvd.accdb";
            PerformerRepository repository = new PerformerRepository(dbLocation);
            PerformerLocalDto   expected   = new PerformerLocalDto()
            {
                Id   = 177,
                Name = "Steve Austin"
            };

            List <PerformerLocalDto> performersInDb = repository.Get();

            var result = performersInDb.FirstOrDefault(p => p.Name.ToLower() == "steve austin");

            Assert.AreEqual(expected.Id, result.Id);
        }
コード例 #8
0
        public PerformerLocalDto GetPerformerByName(string performerName)
        {
            PerformerLocalDto perf = Performers.FirstOrDefault(b =>
                                                               b.Name.ToUpper() == performerName.ToUpper());

            // should null check be here or in caller?
            if (perf == null)
            {
                perf = new PerformerLocalDto()
                {
                    Id   = 0,
                    Name = performerName
                };
            }
            return(perf);
        }
コード例 #9
0
        public void Get_ByName_AliasIsUsed_ReturnsPerformer()
        {
            string dbLocation = @"c:\temp\Files on Dvd.accdb";
            PerformerRepository repository = new PerformerRepository(dbLocation);
            PerformerLocalDto   expected   = new PerformerLocalDto()
            {
                Id   = 177,
                Name = "Steve Austin"
            };

            string performerNameToFind = "chilly mcfreeze";

            var result = repository.Get(performerNameToFind);

            Console.WriteLine("Breakpoint this line");
            Assert.AreEqual(expected.Id, result.Id);
        }
コード例 #10
0
        public PerformerLocalDto Get(string name)
        {
            PerformerLocalDto perf = Performers.FirstOrDefault(b =>
                                                               b.Name.ToUpper() == name.ToUpper());

            if (perf == null)
            {
                AliasLocalDto aliasDto = GetAlias(name);
                if (aliasDto == null)
                {
                    perf = new PerformerLocalDto()
                    {
                        Id   = -1,
                        Name = name
                    };
                }
                else
                {
                    perf         = Performers.Find(p => p.Id == aliasDto.Performer);
                    perf.IsAlias = true;
                }
            }
            return(perf);
        }