using AutoMapper; using Gestor.Infrastructure.Entities.Generic; using Gestor.Infrastructure.Entities.Seguros; using Gestor.Infrastructure.Mappers; using Gestor.Infrastructure.Repository.Generic; using Gestor.Infrastructure.Repository.Interface; using Gestor.Infrastructure.UnitOfWork.Generic; using Gestor.Model.Common; using Gestor.Model.Domain.Seguros; using NHibernate; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Runtime.CompilerServices; namespace Gestor.Infrastructure.Repository.Logic { public class RestricaoUsuarioRepository : GenericRepository, IRestricaoUsuarioRepository { private readonly GenericUnitOfWork _unitOfWork; public RestricaoUsuarioRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session) { this._unitOfWork = unitOfWork; } public List FindByUsuario(long id) { List list = this._unitOfWork.Session.CreateQuery(string.Format("from RestricaoUsuarioDb WHERE IdUsuario = {0}", id)).List().ToList(); return ApplicationMapper.Mapper.Map, List>(list); } public RestricaoUsuario FindRestricao(long id, TipoRestricao restricao) { RestricaoUsuarioDb restricaoUsuarioDb = base.All().FirstOrDefault((RestricaoUsuarioDb x) => x.Usuario.Id == id && (int)x.Tipo == (int)restricao); return ApplicationMapper.Mapper.Map(restricaoUsuarioDb); } public RestricaoUsuario Merge(RestricaoUsuario restricao) { RestricaoUsuarioDb restricaoUsuarioDb = ApplicationMapper.Mapper.Map(restricao); base.Merge(restricaoUsuarioDb); return ApplicationMapper.Mapper.Map(restricaoUsuarioDb); } public RestricaoUsuario SaveOrUpdate(RestricaoUsuario restricao) { RestricaoUsuarioDb restricaoUsuarioDb = ApplicationMapper.Mapper.Map(restricao); this.SaveOrUpdate(restricaoUsuarioDb); return ApplicationMapper.Mapper.Map(restricaoUsuarioDb); } } }