public static bool AddDetailToUserBasket(string userName, Parameters.DetailInfo detail) { SqlConnection conn = new SqlConnection(); string request; try { request = String.Format("INSERT INTO dbo.Baskets (detai_price, " + "user_name, detail_name, detail_manuf, " + "detail_searchId, detail_Storage, " + "detail_Delivery, detail_PartId, " + "detail_baseCount, detail_Code, date_of_Upload_detail, hash) VALUES" + "({0},'{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}')", detail.Price.ToString(CultureInfo.InvariantCulture).Replace(",", "."), userName, detail.Name, detail.Manuf, detail.SearchID, detail.Storage, detail.Delivery, detail.PartId, detail.BaseCount, detail.Code, detail.DateofPlacetoBasket, Manage.CalculateBasketDetailHash(detail)); DatabaseControl dbctrl = new DatabaseControl(); SqlDataReader rd = dbctrl.GetDataFromDB(request, out conn); if (rd.Read()) { return(true); } } catch (Exception ex) { Singleton <Logger> .Instance.WriteMainLine("UserModels:SetDetailToUserBasket:" + ex.Message); return(false); } finally { conn.Close(); } return(true); }
public static string CalculateDetailHash(Parameters.DetailInfo detailInfo, out int totalDays) { string[] parceDeliv = detailInfo.Delivery.Split('-'); totalDays = 0; // всего дней for (int i = 0; i < parceDeliv.Length; i++) { totalDays = totalDays + int.Parse(parceDeliv[i]); } totalDays = totalDays / 2; return(CreateHash(detailInfo.Name.ToLower() + detailInfo.Manuf.ToLower() + detailInfo.Storage.ToLower())); }
public List <Parameters.DetailInfo> GetIndexedSearch(string detailNumber, bool findAnalog) { int analog = 0; if (findAnalog) { analog = 1; } List <Parameters.DetailInfo> dinfo = new List <Parameters.DetailInfo>(); string command = "select * from dbo.search_index where det_code='" + detailNumber + "' and analog=" + analog; SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); try { SqlCommand cmd = new SqlCommand(command, conn); cmd.CommandType = CommandType.Text; conn.Open(); SqlDataReader rd = cmd.ExecuteReader(); if (rd != null) { while (rd.Read()) { Parameters.DetailInfo di = new Parameters.DetailInfo(); di.BaseCount = rd["detail_basecount"].ToString(); di.Code = rd["det_code"].ToString(); di.Delivery = rd["detail_delivery"].ToString(); di.Manuf = rd["detail_manuf"].ToString(); di.Name = rd["detail_name"].ToString(); di.PartId = rd["detail_partId"].ToString(); di.Price = decimal.Parse(rd["price"].ToString()); di.SearchID = rd["id_request"].ToString(); di.Storage = rd["detail_detStorage"].ToString(); di.DetNumber = rd["detIndex"].ToString(); dinfo.Add(di); } } } catch (Exception ex) { Singleton <Logger> .Instance.WriteMainLine("DatabaseControl:GetIndexedSearch: " + ex.Message); } finally { conn.Close(); } return(dinfo); }
public bool GetUserBasket(string usrName) { SqlConnection conn = new SqlConnection(); try { string request = String.Format("select * from dbo.Baskets where user_name='{0}'", usrName); DatabaseControl dbctrl = new DatabaseControl(); SqlDataReader rd = dbctrl.GetDataFromDB(request, out conn); if (rd != null) { detailsHashes.Clear(); DetailsinBasket.Clear(); while (rd.Read()) { Parameters.DetailInfo di = new Parameters.DetailInfo(); di.Price = decimal.Parse(rd["detai_price"].ToString().Replace(".", ",")); di.Manuf = rd["detail_manuf"].ToString(); di.Name = rd["detail_name"].ToString(); di.SearchID = rd["detail_searchId"].ToString(); di.Storage = rd["detail_Storage"].ToString(); di.Code = rd["detail_Code"].ToString(); di.BaseCount = rd["detail_baseCount"].ToString(); di.PartId = rd["detail_PartId"].ToString(); di.DetNumber = rd["id_basket"].ToString(); di.Delivery = rd["detail_Delivery"].ToString(); di.DateofPlacetoBasket = rd["date_of_Upload_detail"].ToString(); string hash = rd["hash"].ToString(); detailsHashes.Add(hash); DetailsinBasket.Add(hash, di); } } } catch (Exception ex) { Singleton <Logger> .Instance.WriteMainLine("UserModels:GetUserBasket:" + ex.Message); return(false); } finally { conn.Close(); } return(true); }
public ActionResult Fltr(string parameters) { ContentResult cr = new ContentResult(); cr.Content = "1"; parameters = HttpUtility.UrlDecode(parameters); string[] parce = parameters.Split('|'); string searchId = parce[0]; string[] manufparce = parce[1].Split(','); DetailModels dsst = new DetailModels(); dsst.Details = new Dictionary<string, Parameters.DetailInfo>(); DatabaseControl dbc = new DatabaseControl(); SqlConnection conn = new SqlConnection(); Dictionary<string, Parameters.DetailInfo> dic = new Dictionary<string, Parameters.DetailInfo>(); foreach (var manuf in manufparce) { if (manuf.Trim() == string.Empty) continue; string requestmanuf = "and detail_manuf='" + manuf + "'"; if (manuf == "#all") requestmanuf = string.Empty; SqlDataReader dr = dbc.GetDataFromDB( String.Format("select * from dbo.search_index where id_request='{0}' {1}", searchId, requestmanuf), out conn); while (dr.Read()) { Parameters.DetailInfo di = new Parameters.DetailInfo(); di.Manuf = dr["detail_manuf"].ToString(); di.Name = dr["detail_name"].ToString(); di.Hash = dr["detHash"].ToString(); di.Delivery = dr["detail_delivery"].ToString(); di.BaseCount = dr["detail_basecount"].ToString(); di.Code = dr["det_code"].ToString(); di.PartId = dr["detail_partId"].ToString(); di.Price = decimal.Parse(dr["price"].ToString()); di.RealPrice = Manage.GetSummWithComission(di.Price); di.SearchID = dr["id_request"].ToString(); di.Storage = dr["detail_detStorage"].ToString(); dsst.Filtered = true; if (dic.ContainsKey(di.Hash)) { Parameters.DetailInfo detailInfoTEmp = dic[di.Hash]; if (detailInfoTEmp.Price <= di.Price) // если сумма меньше { if (detailInfoTEmp.AverageDelivery <= di.AverageDelivery) continue; if ((detailInfoTEmp.AverageDelivery - di.AverageDelivery) < 2) continue; } dic[di.Hash] = di; } else { dic.Add(di.Hash, di); } } if (manuf == "all") break; } conn.Close(); string auth = string.Empty; var authcookie = Request.Cookies.Get("Aurh"); if (authcookie != null)auth = authcookie.Value; string response = "<table id=\"detailsTable\" class=\"table\">" + "<tr><th class=\"mainth\" style=\"width: 25px\">п\\п</th>" + "<th class=\"mainth\">Название</th><th class=\"mainth\" align=\"center\">" + "Производитель</th><th class=\"mainth\" align=\"center\" >Срок доставки</th><th class=\"mainth\" align=\"center\" >Склад</th><th class=\"mainth\" align=\"center\" >Цена(руб.)</th>"; if (auth == "1") response = response + "<th class=\"mainth\" align=\"center\" ></th>"; response=response+ "</tr>"; int i = 0; foreach (KeyValuePair<string,Parameters.DetailInfo> detailInfo in dic) { response = response + "<tr id=\"" + detailInfo.Value.Hash + "\">" + "<td style=\"width: 15px\" class=\"maintd\" name=\"intex-" + i + "\">" + (i + 1) + "</td>" + "<td class=\"maintd\" name=\"detName\" >" + detailInfo.Value.Name + "</td>" + "<td class=\"maintd\" name=\"detManuf\">" + detailInfo.Value.Manuf + "</td>" + "<td class=\"maintd\" name=\"detDelivery\">" + detailInfo.Value.Delivery + "</td>" + "<td class=\"maintd\" name=\"detStorage\">" + detailInfo.Value.Storage + "</td>" + "<td class=\"maintd\" name=\"detPrice\">" + detailInfo.Value.Price.ToString("N", new NumberFormatInfo()) + "</td>"; if (auth == "1") response = response + "<td class=\"maintd\" class=\"tableCell-gray\"><button name=\"tobasket\" id=\"" + detailInfo.Key + "\" type=\"submit\" class=\"buttonCarrito\" value=\"tobasket\" onclick=\"addToBaskt(this.id)\">в корзину</button></td></tr>"; i++; } cr.Content = response + "</table>"; return cr; }
public static string CalculateBasketDetailHash(Parameters.DetailInfo detailInfo) { return(CreateHash(detailInfo.Name.ToLower() + detailInfo.Manuf.ToLower() + detailInfo.Storage.ToLower())); }