//private void selectPlatform_DropDown(object sender, EventArgs e) //{ // selectPlatform.Items.Clear(); // var tempAllPlatforms = AllPlatforms.Where(ap => ap.Address.ToLowerInvariant().Contains(selectPlatform.Text.ToLowerInvariant())).ToList(); // // ReSharper disable once CoVariantArrayConversion // selectPlatform.Items.AddRange(tempAllPlatforms.Select(ap => ap.Address).ToArray()); //} private void saveButton_Click(object sender, EventArgs e) { var sql = new Model(); var platform = selectedPlatform.Text; var selectedContainer = selectContainerType.Text; var pf = sql.FindinTable <Platform>("Address", platform).FirstOrDefault(); if (pf == null) { MessageBox.Show(@"Платформа не выбрана"); return; } var ct = sql.FindinTable <ContainerType>("Name", selectedContainer).FirstOrDefault(); if (ct == null) { MessageBox.Show(@"Контейнер не выбран"); return; } string schedule = string.Empty; if (monday.Checked) { schedule = "1;"; } if (tuesday.Checked) { schedule = schedule + "2;"; } if (wednesday.Checked) { schedule = schedule + "3;"; } if (thersday.Checked) { schedule = schedule + "4;"; } if (friday.Checked) { schedule = schedule + "5;"; } if (satuday.Checked) { schedule = schedule + "6;"; } if (sunday.Checked) { schedule = schedule + "7;"; } if (!String.IsNullOrEmpty(schedule)) { schedule = schedule.TrimEnd(';'); } Debug.Assert(ct != null, nameof(ct) + " != null"); Debug.Assert(pf != null, nameof(pf) + " != null"); var orgCont = new OrganizationContainer { Organization = Org.Id, Container = ct.Id, Platform = pf.Id, Schedule = schedule }; sql.WriteToDb(orgCont); DialogResult = DialogResult.Yes; Close(); }
private void saveNewRegistry_Click(object sender, EventArgs e) { if (!CheckSave()) { return; } var tv = Single.Parse(targetVolume.Text, CultureInfo.InvariantCulture); var pv = Single.Parse(processedVolume.Text, CultureInfo.InvariantCulture); var av = Single.Parse(container.Text, CultureInfo.InvariantCulture); // ReSharper disable once CompareOfFloatsByEqualityOperator if (av == 0) { MessageBox.Show(@"Нельзя вывести ничего"); return; } if (pv + av > tv) { MessageBox.Show(@"Превышен запланированный объем"); return; } long selectedCont = AllContainerTypes.Find(ac => ac.Name.Equals(selectContainer.Text)).Id; long selectedPlatform = AllPlatforms.Find(ap => ap.Address.Equals(selectPlatform.Text)).Id; long selectedDriver = Sql.FindinTable <Driver>().Find(dr => dr.Name.Equals(selectDriver.Text)).Id; long selectedCar = Sql.FindinTable <Car>().Find(cr => cr.Name.Equals(selectCar.Text)).Id; var newRecord = new Registry { Organization = SelectedOrg, Contract = SelectedContract.Id, Container = selectedCont, Platform = selectedPlatform, Driver = selectedDriver, Car = selectedCar, Volume = av, Entered = processDate.Value }; //Start transaction Sql.StartTransaction(); //Update Registry var newSqlCommand = $"INSERT Into Registry (Organization, Contract, Container, " + $"Platform, Driver, Car, Volume, Entered) " + $"Values ('{SelectedOrg}', '{SelectedContract.Id}', '{selectedCont}', " + $"'{selectedPlatform}', '{selectedDriver}', '{selectedCar}', '{av}', " + $"'{processDate.Value:yyyy-MM-dd}')"; var result = Sql.ExecuteWriteCommandWithTrans(newSqlCommand); if (result == -1) { Sql.EndTransaction(false); MessageBox.Show(@"Ошибка сохранения"); return; } //Update Contract newSqlCommand = $"UPDATE Contracts " + $"SET ProcessedVolume = '{(pv + av).ToString(CultureInfo.InvariantCulture)}' " + $"WHERE id = {SelectedContract.Id}"; result = Sql.ExecuteWriteCommandWithTrans(newSqlCommand); if (result == -1) { Sql.EndTransaction(false); MessageBox.Show(@"Не получилось обновить договор"); return; } //Commit Transaction Sql.EndTransaction(true); var tempOrgCont = new OrganizationContainer { Organization = SelectedOrg, Container = selectedCont, Platform = selectedPlatform }; var orgConts = Sql.FindinTable(tempOrgCont); foreach (var orgCont in orgConts) { var sqlCommand = $"SELECT Id " + $"FROM ContainersQueue " + // ReSharper disable once PossibleNullReferenceException $"WHERE Container = '{orgCont.Id}' " + $"AND Dayspast = '0' " + $"AND Processed = '0'"; var unprocessedCont = Sql.ExecuteTextCommand(sqlCommand); if (unprocessedCont.Any()) { result = Sql.UpdateRecord <ContainerQueue>((long)unprocessedCont[0], "Processed", "1"); if (result != 1) { MessageBox.Show(@"Не получилось обновить очередь контейнеров"); } break; } } DialogResult = DialogResult.Yes; Close(); }