//Вычисление времени на вынос public static async Task <string> CalcZoneTATime(DateTime TZ, string shift, string nn, string zname) { if (shift != "0:00") { int h = Int32.Parse(shift.Split(new char[] { ':' })[0]); int m = Int32.Parse(shift.Split(new char[] { ':' })[1]); int _nn = Int32.Parse(nn); string selectDDelays = "Select Delay from Delays where Flag=1 and Type='Вынос' and Zone='", connstr = ConfigurationManager.AppSettings.Get("connstr"); //string name = ((Button)sender).Name; //вычисляем оттяжку на вынос double TADelay = await DBselect.CalculateDelay(connstr, zname, selectDDelays + zname + "'"); //double TADelay = DBselect.CalculateDelay(connstr, zname, selectTADelays + zname + "'").Result; //вычисляем время для цветовой зоны и добавляем время оттяжки если оно есть //в функцию TimeCalc.CalculateNear подставляем значения переменных из App.Config для каждой цветовой зоны при string tEdit = Convert.ToDateTime(TimeCalc.CalculateTaway(TZ, h, m, _nn)).AddMinutes(Convert.ToDouble(TADelay)).ToShortTimeString(); //Сравниваем вычисленное время по цветовой зоне с временами на стопе, если совпадает, то прибавляем 10 мин, и сравниваем далее, времена в списке отсортированы по возрастанию return(tEdit); } else { return(""); } }
public static async Task <string> CalcBlueZoneTime(DateTime TZ, string shift, string nn, string zname, List <string> ListTimes) { if (shift != "0:00") { int h = Int32.Parse(shift.Split(new char[] { ':' })[0]); int m = Int32.Parse(shift.Split(new char[] { ':' })[1]); int _nn = Int32.Parse(nn); string selectDDelays = "Select Delay from Delays where Flag=1 and Type='Пеший' and Zone='", connstr = ConfigurationManager.AppSettings.Get("connstr"); //string name = ((Button)sender).Name; //вычисляем оттяжку на доставку double WDelay = DBselect.CalculateDelay(connstr, zname, selectDDelays + zname + "'").Result; //double TADelay = DBselect.CalculateDelay(connstr, zname, selectTADelays + zname + "'").Result; //вычисляем время для цветовой зоны и добавляем время оттяжки если оно есть //в функцию TimeCalc.CalculateNear подставляем значения переменных из App.Config для каждой цветовой зоны при //string tEdit = Convert.ToDateTime(TimeCalc.CalculateNear(TZ, h, m, _nn)).AddMinutes(Convert.ToDouble(DDelay)).ToShortTimeString(); string tEdit = Convert.ToDateTime(TimeCalc.CalculateNear(TZ, h, m, _nn)).AddMinutes(Convert.ToDouble(WDelay)).ToShortTimeString(); if (TZ > timeFromString && TZ < timeToString) { tEdit = Convert.ToDateTime(TimeCalc.CalculateNear(TZ.AddMinutes(Convert.ToInt32(Form1.ReadS("timeAddMinutes"))), h, m, _nn)).AddMinutes(Convert.ToDouble(WDelay)).ToShortTimeString(); } else { tEdit = Convert.ToDateTime(TimeCalc.CalculateNear(TZ, h, m, _nn)).AddMinutes(Convert.ToDouble(WDelay)).ToShortTimeString(); } //Сравниваем вычисленное время по цветовой зоне с временами на стопе, если совпадает, то прибавляем 10 мин, и сравниваем далее, времена в списке отсортированы по возрастанию foreach (string s in ListTimes) { if (tEdit == s) { tEdit = Convert.ToDateTime(tEdit).AddMinutes(10).ToShortTimeString(); } } return(tEdit); } else { return(""); } }
//Функция объединяющая весь сбор информации по всем рестам кроме перцев //Из-за особенностей хранения данных по Акция для Перцев не возможно передавать при нажатии на кнопку каждого ресторана Имя ресторана, потому что нужно слово 'Перцы' для всех 7 кнопок void GetAllInfo(object sender, string[] tParams, string oname) { string bluez, lightgreenz, greenz, yellowz, orangez, redz, grayz; this.Refresh(); dateTimePicker1.Text = DateTime.Now.ToShortDateString(); button16.Visible = false; TimeWindowResize(); restName.Text = ((Button)sender).Text; string zname = ((Button)sender).Name; label11.Text = zname; DateTime TZ = DateTime.Now; curTime.Text = TZ.ToLongTimeString(); List <string> ListTimes = new List <string>(); List <string> ListDish = new List <string>(); List <string> ListOffers = new List <string>(); string whenStops = DateTime.Now.ToString("yyyy-MM-dd"); ListTimes = DBselect.CalculateTimes(connstr, zname, selectTimes + zname + "' and DateofStop>='" + whenStops + "' order by DateOfStop,Time").Result; ListDish = DBselect.SelectDishStops(connstr, zname, selectDishes + zname + "'order by Dish").Result; ListOffers = DBselect.SelectOffers(connstr, zname, selectOffers + oname + "'").Result; double TADelay = DBselect.CalculateDelay(connstr, zname, selectTADelays + zname + "'").Result; double DDelay = DBselect.CalculateDelay(connstr, zname, selectDDelays + zname + "'").Result; if (DDelay != 0) { delay_label.Text = "+" + DDelay.ToString(); } else { delay_label.Text = ""; } TimeSpan timeFrom = new TimeSpan(Convert.ToInt32(ReadS("timeFromHour")), Convert.ToInt32(ReadS("timeFromMinutes")), 0); TimeSpan timeTo = new TimeSpan(Convert.ToInt32(ReadS("timeToHour")), Convert.ToInt32(ReadS("timeToMinutes")), 0); TimeSpan timeAdd = new TimeSpan(Convert.ToInt32(ReadS("timeAddHour")), Convert.ToInt32(ReadS("timeAddMinutes")), 0); bluez = CalculateFinal.CalcBlueZoneTime(TZ, tParams[0], tParams[7], zname, ListTimes).Result; lightgreenz = CalculateFinal.CalcZoneTime(TZ, tParams[1], tParams[7], zname, ListTimes).Result; greenz = CalculateFinal.CalcZoneTime(TZ, tParams[2], tParams[7], zname, ListTimes).Result; yellowz = CalculateFinal.CalcZoneTime(TZ, tParams[3], tParams[7], zname, ListTimes).Result; orangez = CalculateFinal.CalcZoneTime(TZ, tParams[4], tParams[7], zname, ListTimes).Result; redz = CalculateFinal.CalcZoneTime(TZ, tParams[5], tParams[7], zname, ListTimes).Result; grayz = CalculateFinal.CalcZoneTime(TZ, tParams[6], tParams[7], zname, ListTimes).Result; if (bluez != "") { blueTZ.Text = bluez + ReturnMinutes(tParams[0]); } else { blueTZ.Text = bluez; } if (lightgreenz != "") { lgreenTZ.Text = lightgreenz + ReturnMinutes(tParams[1]); } else { lgreenTZ.Text = lightgreenz; } if (greenz != "") { greenTZ.Text = greenz + ReturnMinutes(tParams[2]); } else { greenTZ.Text = greenz; } if (yellowz != "") { yellowTZ.Text = yellowz + ReturnMinutes(tParams[3]); } else { yellowTZ.Text = yellowz; } if (orangez != "") { orangeTZ.Text = orangez + ReturnMinutes(tParams[4]); } else { orangeTZ.Text = orangez; } if (redz != "") { redTZ.Text = redz + ReturnMinutes(tParams[5]); } else { redTZ.Text = redz; } if (grayz != "") { grayTZ.Text = grayz + ReturnMinutes(tParams[6]); } else { grayTZ.Text = grayz; } /*blueTZ.Text = bluez + ReturnMinutes(tParams[0]); * lgreenTZ.Text = lightgreenz + ReturnMinutes(tParams[1]); * //lgreenTZ.Text = ""; * greenTZ.Text = greenz + ReturnMinutes(tParams[2]); * yellowTZ.Text = yellowz + ReturnMinutes(tParams[3]); * orangeTZ.Text = orangez + ReturnMinutes(tParams[4]); * redTZ.Text = redz + ReturnMinutes(tParams[5]); * grayTZ.Text = grayz + ReturnMinutes(tParams[6]);*/ tawayTZ.Text = CalculateFinal.CalcZoneTATime(TZ, tParams[8], tParams[9], zname).Result; foreach (string dish in ListDish) { dishStops.Items.Add(dish); } foreach (string time in ListTimes) { timeStops.Items.Add(time); } foreach (string offer in ListOffers) { richTextBox1.AppendText(offer); richTextBox1.AppendText("\n"); offersList.Items.Add(offer); bool isInt = Int32.TryParse(offer.Substring(0, 1), out int r); if (isInt == true) { offersList.SetSelected(offersList.FindString(offer), true); } } }