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)); }
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); }
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); }