Ejemplo n.º 1
0
        public int AddRoute(string start, string finish, string length, string time, string cost)
        {
            int l, t, c;

            try
            {
                l = int.Parse(length);
                t = int.Parse(time);
                c = int.Parse(cost);
            }
            catch (FormatException)
            {
                int q = 0;
                if (length == "")
                {
                    q += 1;
                }
                if (time == "")
                {
                    q += 2;
                }
                if (cost == "")
                {
                    q += 4;
                }
                return(q == 0 ? -1 : q);
            }
            if (start.Equals(finish))
            {
                return(8);
            }
            if (l <= 0 || t <= 0 || c <= 0)
            {
                return(10);
            }
            if (start.CompareTo(finish) > 0)
            {
                string tmp = start;
                start  = finish;
                finish = tmp;
            }
            CRoute z = new CRoute(start, finish, l, t, c);

            if (routes.Exists(x => x.FirstCity == z.FirstCity && x.SecondCity == z.SecondCity && x.Options[0] == z.Options[0] && x.Options[1] == z.Options[1] && x.Options[2] == z.Options[2]))
            {
                return(15);
            }
            else
            {
                routes.Add(z);
                return(0);
            }
        }
Ejemplo n.º 2
0
 public int AddCity(string city)
 {
     if (city == "")
     {
         return(2);
     }
     else
     {
         var _city = CRoute.FormatCity(city);
         if (!cities.Contains(_city))
         {
             cities.Add(_city);
             return(0);
         }
         else
         {
             return(1);
         }
     }
 }
Ejemplo n.º 3
0
        private void DbModButton_Click(object sender, EventArgs e)
        {
            if (DbModCity.Checked)
            {
                if (DbModNewCityName.Text == DbModCitySelector.SelectedItem.ToString())
                {
                    db_show_error(String.Format("{0} не изменено", DbModNewCityName.Text));
                    return;
                }
                else
                {
                    string old     = DbModCitySelector.SelectedItem.ToString();
                    string newcity = CRoute.FormatCity(DbModNewCityName.Text);
                    int    r       = parent.ModCity(old, newcity);
                    switch (r)
                    {
                    case 0:
                    {
                        DbActionSuccessLabel.Text = String.Format("Изменен город: {0} на {1}", DbModCitySelector.SelectedItem.ToString(), DbModNewCityName.Text);
                        log_add_row(2, 0, old, newcity);
                        DbModNewCityName.ResetText();
                        DbRefresh();
                        break;
                    }

                    case 1:
                    {
                        db_show_error("Ошибка: недопустимое новое имя города");
                        break;
                    }
                    }
                }
            }
            else
            {
                int id = DbModRouteSelector.SelectedIndex;
                int r  = parent.ModRoute(id, DbModNewRouteLength.Text, DbModNewRouteTime.Text, DbModNewRouteCost.Text);
                switch (r)
                {
                case 0:
                {
                    string qd = String.Format("{0},{1},{2}", DbModNewRouteLength.Text, DbModNewRouteTime.Text, DbModNewRouteCost.Text);
                    log_add_row(2, 1, DbModRouteSelector.SelectedItem.ToString(), qd);
                    DbModNewRouteCost.ResetText();
                    DbModNewRouteLength.ResetText();
                    DbModNewRouteTime.ResetText();
                    DbRefresh();
                    break;
                }

                case 8:
                {
                    db_show_error("Не изменено");
                    break;
                }

                case 10:
                {
                    db_show_error("Ошибка: параметры должны быть положительными");
                    break;
                }

                case -1:
                {
                    db_show_error("Ошибка: параметры должны быть целыми числами");
                    break;
                }

                default:
                {
                    string tmp;
                    tmp = "Ошибка: введите ";
                    if ((r & 1) == 1)
                    {
                        tmp += "расстояние; ";
                    }
                    if (((r >> 1) & 1) == 1)
                    {
                        tmp += "время; ";
                    }
                    if (((r >> 2) & 1) == 1)
                    {
                        tmp += "стоимость; ";
                    }
                    db_show_error(tmp);
                    break;
                }
                }
            }
        }
Ejemplo n.º 4
0
        private void DbAddButton_Click(object sender, EventArgs e)
        {
            if (DbAddCity.Checked)
            {
                string newcity = CRoute.FormatCity(DbAddNewCityText.Text);
                int    r       = parent.AddCity(newcity);
                switch (r)
                {
                case 0:
                {
                    DbActionSuccessLabel.Text = "Добавлено: " + newcity;
                    DbAddRouteStartSelector.Items.Add(newcity);
                    DbAddRouteEndSelector.Items.Add(newcity);
                    DbDeleteCitySelector.Items.Add(newcity);
                    DbCitiesList.Items.Add(newcity);
                    DbModCitySelector.Items.Add(newcity);
                    DbAddNewCityText.Clear();
                    log_add_row(0, 0, newcity);
                    break;
                }

                case 1:
                {
                    db_show_error("Ошибка: такой город уже существует");
                    break;
                }

                case 2:
                {
                    db_show_error("Ошибка: введите название города");
                    break;
                }
                }
            }
            if (DbAddRoute.Checked)
            {
                if (DbAddRouteStartSelector.SelectedIndex >= 0 && DbAddRouteEndSelector.SelectedIndex >= 0)
                {
                    int r = parent.AddRoute(DbAddRouteStartSelector.SelectedItem.ToString(), DbAddRouteEndSelector.SelectedItem.ToString(), DbAddRouteLength.Text, DbAddRouteTime.Text, DbAddRouteCost.Text);
                    switch (r)
                    {
                    case 0:
                    {
                        CRoute qd = parent.routes.Last();
                        string qz = String.Format("{0} - {1} ({2},{3},{4})", qd.FirstCity, qd.SecondCity, qd.Options[0], qd.Options[1], qd.Options[2]);
                        DbDeleteRouteSelector.Items.Add(qz);
                        DbModRouteSelector.Items.Add(qz);
                        DbActionSuccessLabel.Text = String.Format("Добавлено: дорога {0} - {1} ({2} км, {3} ч, {4}$)", DbAddRouteStartSelector.SelectedItem.ToString(), DbAddRouteEndSelector.SelectedItem.ToString(), DbAddRouteLength.Text, DbAddRouteTime.Text, DbAddRouteCost.Text);
                        log_add_row(0, 1, String.Format("{0} - {1} ({2},{3},{4})", DbAddRouteStartSelector.SelectedItem.ToString(), DbAddRouteEndSelector.SelectedItem.ToString(), DbAddRouteLength.Text, DbAddRouteTime.Text, DbAddRouteCost.Text));
                        DbRoutesDataGrid.Rows.Add(DbRoutesDataGrid.Rows.Count + 1, DbAddRouteStartSelector.SelectedItem.ToString(), DbAddRouteEndSelector.SelectedItem.ToString(), DbAddRouteLength.Text, DbAddRouteTime.Text, DbAddRouteCost.Text);
                        DbAddRouteEndSelector.ResetText();
                        DbAddRouteEndSelector.SelectedIndex = -1;
                        DbAddRouteStartSelector.ResetText();
                        DbAddRouteStartSelector.SelectedIndex = -1;
                        DbAddRouteLength.Clear();
                        DbAddRouteTime.Clear();
                        DbAddRouteCost.Clear();
                        break;
                    }

                    case 15:
                    {
                        db_show_error("Ошибка: такая дорога уже существует");
                        break;
                    }

                    case -1:
                    {
                        db_show_error("Ошибка: параметры должны быть целыми числами");
                        break;
                    }

                    case 8:
                    {
                        db_show_error("Ошибка: нельзя добавить такую дорогу");
                        break;
                    }

                    case 10:
                    {
                        db_show_error("Ошибка: параметры должны быть положительными");
                        break;
                    }

                    default:
                    {
                        string tmp;
                        tmp = "Ошибка: введите ";
                        if ((r & 1) == 1)
                        {
                            tmp += "расстояние; ";
                        }
                        if (((r >> 1) & 1) == 1)
                        {
                            tmp += "время; ";
                        }
                        if (((r >> 2) & 1) == 1)
                        {
                            tmp += "стоимость; ";
                        }
                        db_show_error(tmp);
                        break;
                    }
                    }
                }
                else
                {
                    db_show_error("Ошибка: укажите начало и конец дороги");
                }
            }
        }