summaryrefslogtreecommitdiff
path: root/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Generic/GenericRepository_T_.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 13:35:25 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 13:35:25 +0000
commit674ca83ba9243a9e95a7568c797668dab6aee26a (patch)
tree4a905b3fb1d827665a34d63f67bc5559f8e7235b /Gestor.Infrastructure/Gestor.Infrastructure.Repository.Generic/GenericRepository_T_.cs
downloadgestor-674ca83ba9243a9e95a7568c797668dab6aee26a.tar.gz
gestor-674ca83ba9243a9e95a7568c797668dab6aee26a.zip
feat: upload files
Diffstat (limited to 'Gestor.Infrastructure/Gestor.Infrastructure.Repository.Generic/GenericRepository_T_.cs')
-rw-r--r--Gestor.Infrastructure/Gestor.Infrastructure.Repository.Generic/GenericRepository_T_.cs90
1 files changed, 90 insertions, 0 deletions
diff --git a/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Generic/GenericRepository_T_.cs b/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Generic/GenericRepository_T_.cs
new file mode 100644
index 0000000..f0c15d7
--- /dev/null
+++ b/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Generic/GenericRepository_T_.cs
@@ -0,0 +1,90 @@
+using Gestor.Infrastructure.Entities.Generic;
+using NHibernate;
+using NHibernate.Linq;
+using NHibernate.Util;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.CompilerServices;
+
+namespace Gestor.Infrastructure.Repository.Generic
+{
+ public class GenericRepository<T> : IGenericRepository<T>
+ where T : class
+ {
+ private readonly ISession _currentSession;
+
+ public GenericRepository(ISession currentSession)
+ {
+ this._currentSession = currentSession;
+ }
+
+ public virtual void Add(T entity)
+ {
+ this._currentSession.Save(entity);
+ }
+
+ public void AddRange(IEnumerable<T> entities)
+ {
+ if (entities != null)
+ {
+ entities.ForEach<T>((T entity) => this._currentSession.Save(entity));
+ }
+ }
+
+ public IQueryable<T> All()
+ {
+ return this._currentSession.Query<T>();
+ }
+
+ public void Delete(T entity)
+ {
+ this._currentSession.Delete(entity);
+ }
+
+ public void DeleteRange(IEnumerable<T> entities)
+ {
+ if (entities != null)
+ {
+ entities.ForEach<T>((T entity) => this._currentSession.Delete(entity));
+ }
+ }
+
+ public void Evict<TEntity>(TEntity entity)
+ where TEntity : EntityBase
+ {
+ this._currentSession.Evict(entity);
+ }
+
+ public T FindEntityById(long id)
+ {
+ return this._currentSession.Get<T>(id);
+ }
+
+ protected void Load<TEntity>(TEntity entity)
+ where TEntity : EntityBase
+ {
+ EntityBase entityBase = entity;
+ if (entityBase == null)
+ {
+ return;
+ }
+ this._currentSession.Load(entity, entityBase.Id);
+ }
+
+ public void Merge(T entity)
+ {
+ this._currentSession.Merge<T>(entity);
+ }
+
+ public virtual void SaveOrUpdate(T entity)
+ {
+ this._currentSession.SaveOrUpdate(entity);
+ }
+
+ public void Update(T entity)
+ {
+ this._currentSession.Update(entity);
+ }
+ }
+} \ No newline at end of file