/// <summary> /// Saves a single <see cref="IStoreSetting"/> object /// </summary> /// <param name="storeSetting">The <see cref="IStoreSetting"/> to save</param> /// <param name="raiseEvents">Optional boolean indicating whether or not to raise events</param> public void Save(IStoreSetting storeSetting, bool raiseEvents = true) { if (raiseEvents) { if (Saving.IsRaisedEventCancelled(new SaveEventArgs <IStoreSetting>(storeSetting), this)) { ((StoreSetting)storeSetting).WasCancelled = true; return; } } using (new WriteLock(Locker)) { var uow = UowProvider.GetUnitOfWork(); using (var repository = RepositoryFactory.CreateStoreSettingRepository(uow)) { repository.AddOrUpdate(storeSetting); uow.Commit(); } } if (raiseEvents) { Saved.IsRaisedEventCancelled(new SaveEventArgs <IStoreSetting>(storeSetting), this); } }