public void Save <T>([JetBrains.Annotations.NotNull] T obj) { if (!IsThisInTransaction()) { throw new FlaException("Saving without transaction"); } Type t = obj.GetType(); if (!_checkedTypes.Contains(t.FullName)) { var propinfos = t.GetProperties(); foreach (var propertyInfo in propinfos) { if (!propertyInfo.CanWrite) { var hasIgnore = Attribute.IsDefined(propertyInfo, typeof(IgnoreAttribute)); if (!hasIgnore) { throw new FlaException("Readonly property found on " + t.FullName + ": " + propertyInfo.Name); } } } _checkedTypes.Add(t.FullName); } lock (Dblock) { _database.Save(obj); } }
/// <summary> /// Insert a single <c>Company</c> object. /// </summary> /// <param name="company"></param> public void Insert(Company company) { using (var conn = new NpgsqlConnection(dbAccess.connectionString)) { using (var db = new NPoco.Database(conn)) { db.Connection.Open(); db.Save <CompanyDto>(CompanyDto.Translate(company)); db.Connection.Close(); } } }
/// <summary> /// Insert a single <c>Device</c> object. /// </summary> /// <param name="device"></param> public void Insert(Device device) { using (var conn = new NpgsqlConnection(dbAccess.connectionString)) { using (var db = new NPoco.Database(conn)) { db.Connection.Open(); db.Save <DeviceDto>(DeviceDto.Translate(device)); db.Connection.Close(); } } }
//---------------------------------------------------------------------------------------------------------------- public void SaveBreachToDatabase() { db.Save <Breach>(this); }
//---------------------------------------------------------------------------------------------------------------- public void SaveBreachedEmailToDatabase() { db.Save <Breached_Emails>(this); }