private void listOrders_SelectionChanged(object sender, SelectionChangedEventArgs e) { List <OrderDescr> lst = new List <OrderDescr>(); //opened current documet if (listOrders.SelectedItems.Count > 0) { for (int i = 0; i < listOrders.SelectedItems.Count; i++) { OrdersDescr currentItem = listOrders.SelectedItems[i] as OrdersDescr; if (currentItem != null) { NewOrder openWindow = new NewOrder(true); openWindow.txtNumber.Text = currentItem.OrderId.ToString(); openWindow.txtDateTime.Text = currentItem.OrderDate.ToString(); string model = currentItem.OrderAuto + " " + currentItem.OrderAutoNumber; openWindow.comCar.Items.Add(model); openWindow.comCar.SelectedItem = model; //auto select customer int CarOwnerID = sto.car.Where(a => a.carModel.Name + " " + a.carNumber == model.ToString()).Single().customerId; string strCust = (sc.customers.Where(a => a.ID == CarOwnerID).Single().LastName + " " + sc.customers.Where(a => a.ID == CarOwnerID).Single().Name); openWindow.comCustomer.Items.Add(strCust); openWindow.comCustomer.SelectedItem = strCust; openWindow.comCustomer.IsEnabled = false; openWindow.txtDateTime.IsEnabled = false; openWindow.txtNumber.IsEnabled = false; openWindow.btnDelStr.IsEnabled = false; openWindow.btnInsert.IsEnabled = false; openWindow.btnAdd.IsEnabled = false; //sto.ordersContext.Where(i => i.OrderId == currentItem.OrderId).SelectMany( (lst); if (openWindow.ShowDialog() == true) { } } } } }
//method determines what user add want, this method call new form with some parameters, which describe UI in AddForm private void btnAdd_Click(object sender, RoutedEventArgs e) { //work with STO context if (rbValue == "rbtnOrder") { //create new window for added new Order NewOrder insOrder = new NewOrder(false); insOrder.Owner = this; STOContext strContext = new STOContext(); #region order if (insOrder.ShowDialog() == true) { //find car id from add order dialog int CarID = strContext.car.Where( a => a.carModel.Name + " " + a.carNumber == insOrder.comCar.SelectedItem.ToString() ).Single().ID; //add new order into db Orders ord = new Orders() { carId = CarID, Date = DateTime.Parse(insOrder.txtDateTime.Text) }; sc.orders.Add(ord); sc.SaveChanges(); //add order context into db table foreach (OrderDescr item in insOrder.listOrders.ItemsSource) { OrderCotnext orderTable = new OrderCotnext() { OrderId = ord.ID, goodsID = item.GoodsId, Count = item.Count, Price = item.Price, Suma = item.Summa }; sc.ordersContext.Add(orderTable); sc.SaveChanges(); } //add last added order into listOrders - this described above int iCustID = sto.car.Where(n => n.ID == ord.carId).Single().customerId; string strCarNumber = sto.car.Where(n => n.ID == ord.carId).Single().carNumber; int iCarModel = sto.car.Where(n => n.ID == ord.carId).Single().carmodelId; string strCarModel = sto.carModel.Where(m => m.ID == iCarModel).Single().Name; string strCustName = sto.customers.Where(n => n.ID == iCustID).Single().LastName + " " + sto.customers.Where(n => n.ID == iCustID).Single().Name; string strPhone = sto.customers.Where(n => n.ID == iCustID).Single().Phone; OrderItems.Add(new OrdersDescr(ord.Date, ord.ID, strCustName, strPhone, strCarModel, strCarNumber, 0)); this.listOrders.Items.Refresh(); this.listOrders.ItemsSource = OrderItems; } #endregion } else { //add new customer AddWindow addWnd = new AddWindow(rbValue); if (addWnd.ShowDialog() == true) { #region customer if (rbValue == "rbtnCustomer") { Customers cust = new Customers() { Name = addWnd.txtBox1.Text, LastName = addWnd.txtBox2.Text, Phone = addWnd.txtBox3.Text }; sc.customers.Add(cust); sc.SaveChanges(); this.selCustomers.Items.Add(cust.LastName + " " + cust.Name); } #endregion //add new car #region car if (rbValue == "rbtnCar") { Car car = new Car(); car.carNumber = addWnd.txtBox1.Text; car.carmodelId = sc.carModel.Where(a => a.Name == addWnd.txtBox2.Text).Single().ID; car.customerId = sc.customers.Where(a => a.LastName + " " + a.Name == addWnd.txtBox3.Text).Single().ID; car.YearProduce = Int32.Parse(addWnd.txtBox4.Text); sc.car.Add(car); sc.SaveChanges(); } #endregion //add new car model #region carmodel if (rbValue == "rbtnCarModel") { CarModel carM = new CarModel() { Name = addWnd.txtBox1.Text }; sc.carModel.Add(carM); sc.SaveChanges(); this.selCar.Items.Add(carM.Name); } #endregion //add new godds type #region GoddsType if (rbValue == "rbtnGoodsType") { GoodsType gt = new GoodsType() { Name = addWnd.txtBox1.Text }; sc.goodsType.Add(gt); sc.SaveChanges(); } #endregion //add new goods #region goods if (rbValue == "rbtnGoods") { Goods goods = new Goods() { Name = addWnd.txtBox1.Text, GoodsTypeID = sc.goodsType.Where(a => a.Name == addWnd.txtBox4.Text).Single().ID, Price = Int32.Parse(addWnd.txtBox3.Text), CarModelID = sc.carModel.Where(a => a.Name == addWnd.txtBox2.Text).Single().ID }; sc.goods.Add(goods); sc.SaveChanges(); } #endregion } } }