private void DbAction(Action <AutoServiceDb> action, Action <AutoServiceDb> finallyAction = null) { using (AutoServiceDb context = new AutoServiceDb(_connectionString)) { DbAction(context, action, finallyAction); } }
internal void Create(AutoServiceDb inputContext) { DbAction(inputContext, context => { if (context.Database.Exists()) { context.Database.Delete(); } context.Database.Create(); }); }
internal void Connect(AutoServiceDb inputContext) { DbAction(inputContext, context => { if (!context.Database.Exists()) { throw new DatabaseMissingException("Базы данных не существует"); } Load(context); }); }
private void DbAction(AutoServiceDb context, Action <AutoServiceDb> action, Action <AutoServiceDb> finallyAction = null) { using (context) { try { action(context); } catch (Exception e) { _logger.Log(e); _logger.SetError(this); } finally { finallyAction?.Invoke(context); } } }
internal void CreateIfNotExists(AutoServiceDb inputContext) { DbAction(inputContext, context => { context.Database.CreateIfNotExists(); }); }
internal void Load(AutoServiceDb context) { _orders = context.Orders.ToList(); _customers = context.Customers.ToList(); _cars = context.Cars.ToList(); }