public HttpResponseMessage GetAuctionsPaged()
        {
            //Data subscription'ın geçerliliği kontrolü
            if (!IsSubscribedDataService())
            {
                return(Request.CreateResponse(HttpStatusCode.UpgradeRequired, "Renew your data subscription!"));
            }
            //****
            DomainData dd = new DomainData();
            AuctionDomainModelWebApiPaged AuctionDomainList = new AuctionDomainModelWebApiPaged();

            var           ListOfTLDs = Request.Headers.GetValues("ListOfTLDs").FirstOrDefault();
            List <string> TLDs       = JsonConvert.DeserializeObject <List <string> >(ListOfTLDs);

            string IsKeyword   = Request.Headers.GetValues("IsKeyword").FirstOrDefault();
            char   AuctionType = Convert.ToChar(Request.Headers.GetValues("AuctionType").FirstOrDefault());
            //for paging+filters
            int    NumOfRecPerPage = Convert.ToInt32(Request.Headers.GetValues("NumOfRecPerPage").FirstOrDefault());
            int    WhichPage       = Convert.ToInt32(Request.Headers.GetValues("WhichPage").FirstOrDefault());
            char   SortBy          = Convert.ToChar(Request.Headers.GetValues("SortBy").FirstOrDefault());
            string SearchStr       = Request.Headers.GetValues("SearchStr").FirstOrDefault();
            //****
            //for excel
            bool IsExcel = (Request.Headers.GetValues("IsExcel").FirstOrDefault() == "1") ? true : false;

            //****
            if (IsKeyword == "0")
            {
                var MatchCriteria = Request.Headers.GetValues("MatchCriteria").FirstOrDefault();
                MatchCriteriaWithPatternModel objMC = JsonConvert.DeserializeObject <MatchCriteriaWithPatternModel>(MatchCriteria);
                AuctionDomainList = dd.GetFilteredAuctionDomainsPaged(objMC, TLDs, AuctionType, SortBy, SearchStr, NumOfRecPerPage, WhichPage, IsExcel);
            }
            if (IsKeyword == "1")
            {
                string IncludeHyphens           = Request.Headers.GetValues("IncludeHyphens").FirstOrDefault();
                string IncludeNumbers           = Request.Headers.GetValues("IncludeNumbers").FirstOrDefault();
                var    Keywords                 = Request.Headers.GetValues("Keywords").FirstOrDefault();
                List <KeywordModel> objKeywords = JsonConvert.DeserializeObject <List <KeywordModel> >(Keywords);
                AuctionDomainList = dd.GetAuctionDomainsByKeywordsPaged(IncludeHyphens, IncludeNumbers, objKeywords, TLDs, AuctionType, SortBy, SearchStr, NumOfRecPerPage, WhichPage, IsExcel);
            }

            return(Request.CreateResponse(HttpStatusCode.OK, AuctionDomainList));
        }
Пример #2
0
        public AuctionDomainModelWebApiPaged GetAuctionDomainsByKeywordsPaged(string IncludeHyphens, string IncludeNumbers, List <KeywordModel> Keywords, List <string> TLDs, char AuctionType, char SortBy, string SearchStr, int NumOfRecPerPage, int WhichPage, bool IsExcel) //, SqlParamModel SqlParams)
        {
            int NumOfRecord = 0;
            List <AuctionDomainModelWebApi> ret = new List <AuctionDomainModelWebApi>();
            string SqlTLDsPart     = GetSqlPartForTLDs(TLDs);
            string SqlKeywordsPart = GetSqlPartForKeywords(Keywords);
            string _table          = (AuctionType == 'A') ? "DomainsAuctions" : "DomainsPreRelease";
            string Sql             = "select * from " + _table + " with (nolock) ";

            Sql += "where ";
            Sql += SqlTLDsPart.Substring(4);    //baştaki and'i atmak için
            if (IncludeHyphens == "0")
            {
                Sql += " and HasHyphens = 0";
            }
            if (IncludeNumbers == "0")
            {
                Sql += " and HasNumbers = 0";
            }
            Sql += SqlKeywordsPart;
            GetSqlForSearchSortAndPaging(ref Sql, SortBy, SearchStr, "A", NumOfRecPerPage, WhichPage, IsExcel);
            string SqlForNumOfRec = Sql.Substring(0, Sql.IndexOf("order by") - 1).Replace("select *", "select count(Id)");
            string SqlLog         = "insert into SqlLog(Sql,FromWhere) values (@Sql,'GetAuctionDomainsByKeywordsPaged')";

            using (IDbConnection conn = new SqlConnection(myConn))
            {
                conn.Open();
                //try
                //{
                conn.Execute(SqlLog, new { @Sql = Sql });
                ret         = conn.Query <AuctionDomainModelWebApi>(Sql).ToList();
                NumOfRecord = conn.Query <int>(SqlForNumOfRec).FirstOrDefault();
                //    }
                //    catch (Exception ex) { int a = 1; }
            }
            AuctionDomainModelWebApiPaged retPaged = new AuctionDomainModelWebApiPaged();

            retPaged.DomainList  = ret;
            retPaged.NumOfRecord = NumOfRecord;
            return(retPaged);
        }
Пример #3
0
        public AuctionDomainModelWebApiPaged GetFilteredAuctionDomainsPaged(MatchCriteriaWithPatternModel mc, List <string> TLDs, char AuctionType, char SortBy, string SearchStr, int NumOfRecPerPage, int WhichPage, bool IsExcel)
        {
            int NumOfRecord = 0;
            List <AuctionDomainModelWebApi> ret = new List <AuctionDomainModelWebApi>();
            string SqlPartChars    = GetSqlPartForChar(mc);
            string SqlTLDsPart     = GetSqlPartForTLDs(TLDs);
            string SqlPatternsPart = GetSqlPartForPatterns(mc);
            string _table          = (AuctionType == 'A') ? "DomainsAuctions" : "DomainsPreRelease";
            string Sql             = "select * from " + _table + " with (nolock) ";

            Sql += "where uzunluk between @MinLength and @MaxLength ";
            Sql += SqlTLDsPart;
            Sql += SqlPartChars;
            if (mc.HasSlash == 0)
            {
                Sql += " and HasHyphens = 0";
            }
            Sql += SqlPatternsPart;
            GetSqlForSearchSortAndPaging(ref Sql, SortBy, SearchStr, "A", NumOfRecPerPage, WhichPage, IsExcel);   //Auction için dropDate kullanılmıyor onun için "A"->etkisiz
            string SqlForNumOfRec = Sql.Substring(0, Sql.IndexOf("order by") - 1).Replace("select *", "select count(Id)");
            string SqlLog         = "insert into SqlLog(Sql,FromWhere) values (@Sql,'GetFilteredAuctionDomainsPaged')";

            using (IDbConnection conn = new SqlConnection(myConn))
            {
                conn.Open();
                //try
                //{
                conn.Execute(SqlLog, new { @Sql = Sql });
                ret         = conn.Query <AuctionDomainModelWebApi>(Sql, mc).ToList();
                NumOfRecord = conn.Query <int>(SqlForNumOfRec, mc).FirstOrDefault();
                //    }
                //    catch (Exception ex) { int a = 1; }
            }
            AuctionDomainModelWebApiPaged retPaged = new AuctionDomainModelWebApiPaged();

            retPaged.DomainList  = ret;
            retPaged.NumOfRecord = NumOfRecord;
            return(retPaged);
        }