コード例 #1
0
        public SearchResults BullSearch(PreferencesView preferences, AvailabilityScope availabilityScope, SaleStatusScope saleStatus, int basketSize)
        {
            var results = new SearchResults
                {
                    StrainPercentiles = GetPercentileViews(preferences)
                };

            var searcher = new Search(
                _salebullRepository.Get(preferences.Strain, Convert.ToInt16(preferences.SaleYear), availabilityScope, saleStatus),
                preferences.Preferences, results.StrainPercentiles
                );

            var qualifiedBulls = searcher.QualifyBulls();
            
            // set number total and sequenced matches
            foreach (var qualifiedBull in qualifiedBulls)
            {
                qualifiedBull.TotalMatches= qualifiedBull.BullTraits.Count(x => x.Qualifies);
                qualifiedBull.SequencedMatches = CountSequencedMatches(qualifiedBull.BullTraits);
            }


            //var temp = qualifiedBulls.Where(x => x.SequencedMatches > 0).ToList();

            results.QualifiedBulls = qualifiedBulls
                .OrderByDescending(x => x.SequencedMatches)
                .ThenByDescending(x => x.Bull.SEL_IDX)
                .Take(basketSize)
                .ToList();

            return results;
        }
コード例 #2
0
 public IEnumerable<SaleBull> Get(string strain, short saleYear, AvailabilityScope scope, SaleStatusScope saleStatus)
 {
     SqlCommand command = BuildCommand("[pb].[GetBulls]");
     AddParameters(command, strain, saleYear, scope, saleStatus);
     OpenConnection(command.Connection);
     SqlDataReader dataReader = command.ExecuteReader(CommandBehavior.CloseConnection);
     return ReadData(dataReader);
 }
コード例 #3
0
        private void AddParameters(SqlCommand sqlCmd, string strain, short saleYear, AvailabilityScope scope, SaleStatusScope saleStatus)
        {
            sqlCmd.Parameters.Add(new SqlParameter
                {
                    Value = strain,
                    ParameterName = "strain",
                    Direction = ParameterDirection.Input,
                    SqlDbType = SqlDbType.Char,
                    Size = 2
                });

            sqlCmd.Parameters.Add(new SqlParameter
                {
                    Value = saleYear,
                    ParameterName = "saleYear",
                    Direction = ParameterDirection.Input,
                    SqlDbType = SqlDbType.SmallInt
                });

            sqlCmd.Parameters.Add(new SqlParameter
                {
                    Value = scope,
                    ParameterName = "availabilityScope",
                    Direction = ParameterDirection.Input,
                    SqlDbType = SqlDbType.SmallInt
                });

            sqlCmd.Parameters.Add(new SqlParameter
            {
                Value = saleStatus,
                ParameterName = "saleStatus",
                Direction = ParameterDirection.Input,
                SqlDbType = SqlDbType.SmallInt
            });

        }