/// <summary> /// Searches for the relating username in all DbSets and removes all content related to it /// </summary> /// <param name="UserName">Seeked username</param> public void RemoveUser(string UserName) { foreach (Car Car in CarDb) { if (Car.DisplayName == UserName) { foreach (var it in FuelDb) { if (it.PlateNumber == Car.PlateNumber) { FuelDb.Remove(it); } } foreach (var it in RepairDb) { if (it.Plate == Car.PlateNumber) { RepairDb.Remove(it); } } foreach (var it in NotebookDb) { if (it.Plate == Car.PlateNumber) { NotebookDb.Remove(it); } } CarDb.Remove(Car); } } SaveChanges(); }
/// <summary> /// Removes objects of all types with matching plate number value from all DbSets /// </summary> /// <param name="Plate">Plate number to be cleared</param> public void RemoveAllByPlate(string Plate) { foreach (Car Car in CarDb) { if (Car.PlateNumber == Plate) { foreach (var it in FuelDb) { if (it.PlateNumber == Plate) { FuelDb.Remove(it); } } foreach (var it in RepairDb) { if (it.Plate == Plate) { RepairDb.Remove(it); } } foreach (var it in NotebookDb) { if (it.Plate == Plate) { NotebookDb.Remove(it); } } CarDb.Remove(Car); } } this.SaveChanges(); }
public void InitShell() { try { if (Application != null) { using (var session = NHibernate.Factory.OpenSession()) { StyleHelper.BuildStyles(Application.Resources, session.Query <CustomStyle>()); } } } catch (Exception e) { log.Error("Не удалось инициализировать стили", e); } var count = 0; repeat: try { count++; //если это попытка восстановления нужно очистить Shell?.Dispose(); windowManager = (WindowManager)IoC.Get <IWindowManager>(); Shell = new ShellViewModel(Config); Deserialize(); windowManager.ShowWindow(Shell, null, new Dictionary <string, object> { { "WindowState", WindowState.Maximized } }); if (Application != null) { //если это повторный запуск то мы можем потерять окно //в этом случае нужно найти потерянные окна и закрыть их //что бы избежать ситуации когда главное окно закрылось а приложение не завершилось //тк windows считает что у него еще есть активные окна // //мы не можем выполнять очистку вместе с очисткой предыдущего главного экрана //тк если мы это сделаем windows попытается завершить процесс тк у него не будет больше окон var lostWindows = Application.Windows.OfType <Window>() .Where(x => x.DataContext is ShellViewModel && ((ShellViewModel)x.DataContext) != Shell); foreach (var window in lostWindows) { window.Close(); } } } catch (Exception e) { log.Error("Ошибка при запуске приложения", e); if (count > 1 || !RepairDb.TryToRepair(e, Config)) { throw; } goto repeat; } IsInitialized = true; }
/// <summary> /// Searches for the Repairbook-type object with relating plate number, text and price and removes it /// </summary> /// <param name="Plate">Seeked plate number</param> /// <param name="Note">Seeked text</param> /// <param name="Price">Seeked price</param> public void RemoveRepairNote(string Plate, string Note, string Price) { foreach (var note in RepairDb) { if (note.Plate == Plate && note.Text == Note && note.Price.ToString() == Price) { RepairDb.Remove(note); } } SaveChanges(); }
/// <summary> /// Removes all items from all DbSets /// </summary> public void ClearCollection() { foreach (Car it in CarDb) { CarDb.Remove(it); } foreach (var it in NotebookDb) { NotebookDb.Remove(it); } foreach (var it in RepairDb) { RepairDb.Remove(it); } foreach (var it in FuelDb) { FuelDb.Remove(it); } this.SaveChanges(); }
private void InitDb() { if (NHibernate != null) { return; } SqlMapperExtensions.GetDatabaseType = x => "mysqlconnection"; NHibernate = new Config.NHibernate.NHibernate(); NHibernate.Init(); if (Config.Cmd.Match("repair")) { using (var cmd = new RepairDb(Config)) { cmd.Execute(); } } var count = 0; repeat: try { count++; using (var sanityCheck = new SanityCheck(Config)) { sanityCheck.Check(Config.Cmd.Match("import")); } } catch (Exception e) { log.Error("Ошибка при запуске приложения", e); if (count > 1 || !RepairDb.TryToRepair(e, Config)) { throw; } goto repeat; } }