private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { SenderUser = null; frmLogIn fofo = new frmLogIn(); fofo.ShowDialog(); this.Close(); }
protected internal XtraForm1(SenderUser user) { InitializeComponent(); SenderUser = user; try { var order = _context.Orders?.Include("Customer")?.Include("Employee")?.Include("Vehicle").Where(S => S.Status == (int)Status.Created || S.Status == (int)Status.Seen || S.Status == (int)Status.Waiting).ToList(); foreach (var item in order) { if (item.Time > DateTime.Now.TimeOfDay && item.WithTimer) { item.Status = (int)Status.Waiting; } else { item.Status = (int)Status.Seen; } if (!TimerWating.Any(s => s.ID == item.ID)) { TimerWating.Add(item); } } _context.Dispose(); gridControl1.DataSource = order; count1 = order.Count; LoadSendGrid(); tileView1.ItemCustomize += (sender, e) => { ColorTile(e.Item); }; tileView1.ItemClick += (sender, e) => { _context = new DataContext(); var row = tileView1.GetFocusedRow() as Order; EditFrm fofi = new EditFrm(row.ID, SenderUser.ID, _context); fofi.ShowDialog(); }; tileView2.ItemClick += (sender, e) => { var row = tileView2.GetFocusedRow() as SendOrder; if (DialogResult.Yes == MessageBox.Show("لتعديل الطلب اضغط على تعديل \n إذا تم وصول الطلب بنجاح اضغط على : تم التوصيل", "", MessageBoxButtons.YesNo)) { _context = new DataContext(); var Ord = _context?.Orders ?.Include("Customer") ?.Include("Employee") ?.Include("Vehicle") ?.Include("SenderUser") ?.Include("SenderUser.Employee") ?.Include("CallUser") ?.Include("CallUser.Employee") ?.SingleOrDefault(s => s.ID == row.ID); var finishOrder = new FinishedOrder { Location = Ord?.Location, SenderUserID = Ord?.SenderUserID, StartTime = Ord?.StartTime, CallUserID = Ord?.CallUserID, CustomerID = Ord.CustomerID, Date = Ord.Date, Details = Ord?.Details, Earn = Ord?.Earn, EmployeeID = Ord?.EmployeeID, EndTime = DateTime.Now, VehicleID = Ord?.VehicleID, SenderUserName = Ord?.SenderUser?.Employee?.Name, CallUserName = Ord?.CallUser?.Employee?.Name, CustomerName = Ord?.Customer?.Name, EmployeeNaame = Ord?.Employee?.Name, VehicleNumber = Ord?.Vehicle?.Number }; _context.FinishedOrders.Add(finishOrder); if (TimerWating.Contains(Ord)) { TimerWating.Remove(Ord); } var Tord = TimerOrder?.FirstOrDefault(s => s.order.ID == Ord.ID); if (Tord != null) { TimerOrder.Remove(Tord); } // _context.SaveChanges(); _context.Orders.Remove(Ord); _context.SaveChanges(); _context.Dispose(); MessageBox.Show("تمت العملية بنجاح"); LoadSendGrid(); } else { _context.Dispose(); _context = new DataContext(); EditFrm fofo = new EditFrm(row.ID, SenderUser.ID, _context); fofo.ShowDialog(); } }; EditFrm.UpdateGridAfterRemove += (DeletedOrder) => { _context = new DataContext(); var Torder = TimerWating?.SingleOrDefault(s => s.ID == DeletedOrder.ID); if (Torder != null) { TimerWating.Remove(Torder); } var ord = _context?.Orders?.Where(S => S.Status == (int)Status.Created || S.Status == (int)Status.Seen || S.Status == (int)Status.Waiting).ToList(); gridControl1.DataSource = ord; count1 = ord.Count; }; #region this event work after set employee $ Vehicle EditFrm.UpdateGrid += (o) => { LoadSendGrid(); //using (DataContext newContext = new DataContext()) //{ // var oldToSave = newContext.Orders.FirstOrDefault(s => s.ID == o.ID); // oldToSave = o; // oldToSave.VehicleID = o.VehicleID; // oldToSave.EmployeeID = o.EmployeeID; // oldToSave.BikeTime = o.BikeTime; // oldToSave.Status = (int)Status.InProgress; // oldToSave.StartTime = DateTime.Now; // oldToSave.Earn = o.Earn; // oldToSave.SenderUserID = o.SenderUserID; // newContext.SaveChanges(); //} TimerOrder.Add(new TimerOrder { order = o, Time = o.BikeTime, IsNew = true, ID = o.ID }); var ord = _context?.Orders?.Where(S => S.Status == (int)Status.Created || S.Status == (int)Status.Seen || S.Status == (int)Status.Waiting).ToList(); gridControl1.DataSource = ord; count1 = ord.Count(); }; #endregion #region Finish click Event FinishBtn.Click += (sender, e) => { var row = tileView2.GetFocusedRow() as SendOrder; _context.Dispose(); _context = new DataContext(); var Ord = _context?.Orders ?.Include("Customer") ?.Include("Employee") ?.Include("Vehicle") ?.Include("SenderUser") ?.Include("SenderUser.Employee") ?.Include("CallUser") ?.Include("CallUser.Employee") ?.SingleOrDefault(s => s.ID == row.ID); var finishOrder = new FinishedOrder { Location = Ord?.Location, SenderUserID = Ord?.SenderUserID, StartTime = Ord?.StartTime, CallUserID = Ord?.CallUserID, CustomerID = Ord.CustomerID, Date = Ord.Date, Details = Ord?.Details, Earn = Ord?.Earn, EmployeeID = Ord?.EmployeeID, EndTime = DateTime.Now, VehicleID = Ord?.VehicleID, SenderUserName = Ord?.SenderUser?.Employee?.Name, CallUserName = Ord?.CallUser?.Employee?.Name, CustomerName = Ord?.Customer?.Name, EmployeeNaame = Ord?.Employee?.Name, }; _context.FinishedOrders.Add(finishOrder); // _context.SaveChanges(); _context.Orders.Remove(Ord); _context.SaveChanges(); MessageBox.Show("تمت العملية بنجاح"); LoadSendGrid(); }; #endregion #region send click Event SendButtonEdit.Click += (Sender, e) => { try { // var v= VehicleLookUpEdit.value as Vehicle; //foreach (Form f in Application.OpenForms) //{ // if (f.Name == "EditFrm") // { // f.Dispose(); // f.Close(); // break; // } //} var row = tileView1.GetFocusedRow() as Order; _context.Dispose(); _context = new DataContext(); EditFrm fofo = new EditFrm(row.ID, SenderUser.ID, _context); fofo.ShowDialog(); } catch (Exception ee) { } }; #endregion #region intilize Wating Timer WaitBike = new Timer(); WaitBike.Interval = 5000; WaitBike.Tick += (Sender, e) => { if (TimerOrder?.Count > 0) { foreach (var item in TimerOrder) { var total = DateTime.Now.TimeOfDay; // item.Counter++; if (item.Time <= total && item.order.Status == (int)Status.InProgress && !(alerted.Contains(item.ID))) { //if (item.Counter % 2 == 0) //{ FinishSound.Play(); alerted.Add(item.ID); alertControl1.Show(this, ": تنبيه ", item.order.Details + ": إن الطلبية \n" + "\n يجب أن تكون قد وصلت"); //} } } } }; WaitBike.Start(); Wait = new Timer(); Wait.Interval = 5000; Wait.Tick += (Sender, E) => { foreach (var item in TimerWating) { //var t = new TimeSpan(0, 45,0); var total = DateTime.Now.TimeOfDay; TimeSpan dev = total - item.Time; if (item.Time <= total && item.WithTimer && item.Status == (int)Status.Waiting) { bool isAlert = false; if (dev < new TimeSpan(0, 15, 0) && !(t1.Contains(item.ID))) { t1.Add(item.ID); isAlert = true; } else if (dev < new TimeSpan(0, 30, 0) && !(t2.Contains(item.ID))) { t2.Add(item.ID); isAlert = true; } else if (dev < new TimeSpan(0, 45, 0) && !(t3.Contains(item.ID))) { t3.Add(item.ID); isAlert = true; } if (isAlert) { _context.Dispose(); _context = new DataContext(); var orderRadey = _context?.Orders?.SingleOrDefault(s => s.ID == item.ID); orderRadey.Status = (int)Status.Seen; _context.SaveChanges(); alertControl1.Show(this, "يجب إرسال الطلب ", item.Details); tileView1.RefreshData(); } } } }; Wait.Start(); #endregion backgroundWorker1.RunWorkerAsync(); } catch (Exception ex) { _context = new DataContext(); } }