예제 #1
0
        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);
        }
예제 #2
0
 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()));
 }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
     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;
     }
예제 #6
0
 public static string CalculateBasketDetailHash(Parameters.DetailInfo detailInfo)
 {
     return(CreateHash(detailInfo.Name.ToLower() + detailInfo.Manuf.ToLower() + detailInfo.Storage.ToLower()));
 }