{
class Problems
{
List<Problem> allProblems;
public string sugprice;
public Problems()
{
allProblems = new List<Problem>();
allProblems = readProblems();
}
public List<Problem> readProblems()
{
List<Problem> spisok = new List<Problem>();
foreach (string line in File.ReadLines(@"problems.txt", Encoding.UTF8))
{
string[] pr = line.Split(new string[] { "-||-" }, StringSplitOptions.None);
Problem temp = new Problem(pr[0], pr[1], pr[2]);
spisok.Add(temp);
}
return spisok;
}
public List<Problem> getProblems()
{
return allProblems;
}
public Problem findByProb(string str)
{
Problem temp = allProblems.Find(x => x.prob == str);
return temp;
}
public void saveProblems()
{
StreamWriter afile = new StreamWriter("problems.txt", false, Encoding.UTF8);
foreach (Problem p in allProblems)
{
afile.WriteLine("{0}-||-{1}-||-{2}", p.ID, p.prob, p.sugprice);
}
afile.Close();
}
public Problem findByID(int ID)
{
return allProblems.Find(x => x.ID == ID);
}
}
class Problem
{
public int ID;
public string prob;
public string sugprice;
public Problem(string ID, string prob, string sugprice)
{
this.ID = Int32.Parse(ID);
this.prob = prob;
this.sugprice = sugprice;
}
}
}
private void buildProblemsBox() // формируем выпадающий список
{
foreach (Problem p in problems.getProblems()) // Функция возвращает текущий список проблем
{
problemCombo.Items.Add(p.prob +" "+ p.sugprice);
}
}
private void problemCombo_SelectedIndexChanged(object sender, EventArgs e)
{
priceBox.Text = p.sugprice;
}
ewogICAgY2xhc3MgUHJvYmxlbXMKICAgIHsKICAgICAgICBMaXN0PFByb2JsZW0+IGFsbFByb2JsZW1zOwogICAgICAgIHB1YmxpYyBzdHJpbmcgc3VncHJpY2U7CiAgICAgICAgcHVibGljIFByb2JsZW1zKCkKICAgICAgICB7CiAgICAgICAgICAgIGFsbFByb2JsZW1zID0gbmV3IExpc3Q8UHJvYmxlbT4oKTsKICAgICAgICAgICAgYWxsUHJvYmxlbXMgPSByZWFkUHJvYmxlbXMoKTsKICAgICAgICB9CiAKICAgICAgICBwdWJsaWMgTGlzdDxQcm9ibGVtPiByZWFkUHJvYmxlbXMoKQogICAgICAgIHsKICAgICAgICAgICAgTGlzdDxQcm9ibGVtPiBzcGlzb2sgPSBuZXcgTGlzdDxQcm9ibGVtPigpOwogICAgICAgICAgICBmb3JlYWNoIChzdHJpbmcgbGluZSBpbiBGaWxlLlJlYWRMaW5lcyhAInByb2JsZW1zLnR4dCIsIEVuY29kaW5nLlVURjgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzdHJpbmdbXSBwciA9IGxpbmUuU3BsaXQobmV3IHN0cmluZ1tdIHsgIi18fC0iIH0sIFN0cmluZ1NwbGl0T3B0aW9ucy5Ob25lKTsKICAgICAgICAgICAgICAgIFByb2JsZW0gdGVtcCA9IG5ldyBQcm9ibGVtKHByWzBdLCBwclsxXSwgcHJbMl0pOwogICAgICAgICAgICAgICAgc3Bpc29rLkFkZCh0ZW1wKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gc3Bpc29rOwogICAgICAgIH0KICAgICAgICBwdWJsaWMgTGlzdDxQcm9ibGVtPiBnZXRQcm9ibGVtcygpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gYWxsUHJvYmxlbXM7CiAgICAgICAgfQogICAgICAgIHB1YmxpYyBQcm9ibGVtIGZpbmRCeVByb2Ioc3RyaW5nIHN0cikKICAgICAgICB7CiAgICAgICAgICAgIFByb2JsZW0gdGVtcCA9IGFsbFByb2JsZW1zLkZpbmQoeCA9PiB4LnByb2IgPT0gc3RyKTsKICAgICAgICAgICAgcmV0dXJuIHRlbXA7CiAgICAgICAgfQogICAgICAgIHB1YmxpYyB2b2lkIHNhdmVQcm9ibGVtcygpCiAgICAgICAgewogICAgICAgICAgICBTdHJlYW1Xcml0ZXIgYWZpbGUgPSBuZXcgU3RyZWFtV3JpdGVyKCJwcm9ibGVtcy50eHQiLCBmYWxzZSwgRW5jb2RpbmcuVVRGOCk7CiAgICAgICAgICAgIGZvcmVhY2ggKFByb2JsZW0gcCBpbiBhbGxQcm9ibGVtcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYWZpbGUuV3JpdGVMaW5lKCJ7MH0tfHwtezF9LXx8LXsyfSIsIHAuSUQsIHAucHJvYiwgcC5zdWdwcmljZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYWZpbGUuQ2xvc2UoKTsKICAgICAgICB9CiAKICAgICAgICBwdWJsaWMgUHJvYmxlbSBmaW5kQnlJRChpbnQgSUQpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gYWxsUHJvYmxlbXMuRmluZCh4ID0+IHguSUQgPT0gSUQpOwogICAgICAgIH0KICAgIH0KICAgIGNsYXNzIFByb2JsZW0KICAgIHsKICAgICAgICBwdWJsaWMgaW50IElEOwogICAgICAgIHB1YmxpYyBzdHJpbmcgcHJvYjsKICAgICAgICBwdWJsaWMgc3RyaW5nIHN1Z3ByaWNlOwogICAgICAgIHB1YmxpYyBQcm9ibGVtKHN0cmluZyBJRCwgc3RyaW5nIHByb2IsIHN0cmluZyBzdWdwcmljZSkKICAgICAgICB7CiAgICAgICAgICAgIHRoaXMuSUQgPSBJbnQzMi5QYXJzZShJRCk7CiAgICAgICAgICAgIHRoaXMucHJvYiA9IHByb2I7CiAgICAgICAgICAgIHRoaXMuc3VncHJpY2UgPSBzdWdwcmljZTsKICAgICAgICB9CiAgICB9Cn0KCnByaXZhdGUgdm9pZCBidWlsZFByb2JsZW1zQm94KCkgLy8g0YTQvtGA0LzQuNGA0YPQtdC8INCy0YvQv9Cw0LTQsNGO0YnQuNC5INGB0L/QuNGB0L7QugogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAoUHJvYmxlbSBwIGluIHByb2JsZW1zLmdldFByb2JsZW1zKCkpIC8vINCk0YPQvdC60YbQuNGPINCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINGC0LXQutGD0YnQuNC5INGB0L/QuNGB0L7QuiDQv9GA0L7QsdC70LXQvCAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJvYmxlbUNvbWJvLkl0ZW1zLkFkZChwLnByb2IgKyIgICIrIHAuc3VncHJpY2UpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKcHJpdmF0ZSB2b2lkIHByb2JsZW1Db21ib19TZWxlY3RlZEluZGV4Q2hhbmdlZChvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkKICAgICAgICB7CiAgICAgICAgICAgICBwcmljZUJveC5UZXh0ID0gcC5zdWdwcmljZTsKICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICB9Cg==