summaryrefslogtreecommitdiff
path: root/Codemerx/Gestor.Infrastructure/Gestor.Infrastructure.Repository.Logic/ConfigExtratoImportRepository.cs
blob: 2410399cd3b6febefc865515adc4cd13c3576666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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.Domain.Seguros;
using NHibernate;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;

namespace Gestor.Infrastructure.Repository.Logic
{
	public class ConfigExtratoImportRepository : GenericRepository<ConfigExtratoImportDb>, IConfigExtratoImportRepository, IGenericRepository<ConfigExtratoImportDb>
	{
		private readonly GenericUnitOfWork _unitOfWork;

		public ConfigExtratoImportRepository(GenericUnitOfWork unitOfWork) : base(unitOfWork.Session)
		{
			this._unitOfWork = unitOfWork;
		}

		public void Delete(long id)
		{
			base.Delete(base.FindEntityById(id));
		}

		public List<ConfigExtratoImport> Find(bool ativo)
		{
			return (
				from x in this._unitOfWork.Session.CreateQuery("from ConfigExtratoImportDb \r\n                      where ativo IS NULL OR ativo != '1'").List<ConfigExtratoImportDb>()
				select new ConfigExtratoImport()
				{
					Id = x.Id,
					IdSeguradora = x.IdSeguradora,
					Codigo = x.Codigo,
					Descricao = x.Descricao,
					Ativo = x.Ativo
				}).ToList<ConfigExtratoImport>();
		}

		public List<ConfigExtratoImport> Find()
		{
			return (
				from x in this._unitOfWork.Session.CreateQuery("from ConfigExtratoImportDb").List<ConfigExtratoImportDb>()
				select new ConfigExtratoImport()
				{
					Id = x.Id,
					IdSeguradora = x.IdSeguradora,
					Codigo = x.Codigo,
					Descricao = x.Descricao,
					Ativo = x.Ativo
				}).ToList<ConfigExtratoImport>();
		}

		public ConfigExtratoImport FindById(long id)
		{
			ConfigExtratoImportDb configExtratoImportDb = base.FindEntityById(id);
			return ApplicationMapper.Mapper.Map<ConfigExtratoImportDb, ConfigExtratoImport>(configExtratoImportDb);
		}

		public List<ConfigExtratoImport> FindBySeguradora(long id)
		{
			return (
				from x in this._unitOfWork.Session.CreateQuery(string.Format("from ConfigExtratoImportDb where IdSeguradora = {0}", id)).List<ConfigExtratoImportDb>()
				select new ConfigExtratoImport()
				{
					Id = x.Id,
					IdSeguradora = x.IdSeguradora,
					Codigo = x.Codigo,
					Descricao = x.Descricao,
					Ativo = x.Ativo
				}).ToList<ConfigExtratoImport>();
		}

		public Gestor.Model.Domain.Seguros.ConfigExtratoImport Merge(Gestor.Model.Domain.Seguros.ConfigExtratoImport ConfigExtratoImport)
		{
			ConfigExtratoImportDb configExtratoImportDb = ApplicationMapper.Mapper.Map<Gestor.Model.Domain.Seguros.ConfigExtratoImport, ConfigExtratoImportDb>(ConfigExtratoImport);
			base.Merge(configExtratoImportDb);
			return ApplicationMapper.Mapper.Map<ConfigExtratoImportDb, Gestor.Model.Domain.Seguros.ConfigExtratoImport>(configExtratoImportDb);
		}

		public List<ConfigExtratoImport> MergeRange(List<ConfigExtratoImport> configExtratoImport)
		{
			List<ConfigExtratoImportDb> configExtratoImportDbs = ApplicationMapper.Mapper.Map<List<ConfigExtratoImport>, List<ConfigExtratoImportDb>>(configExtratoImport);
			ConfigExtratoImportRepository configExtratoImportRepository = this;
			configExtratoImportDbs.ForEach(new Action<ConfigExtratoImportDb>(configExtratoImportRepository.Merge));
			return ApplicationMapper.Mapper.Map<List<ConfigExtratoImportDb>, List<ConfigExtratoImport>>(configExtratoImportDbs);
		}

		public Gestor.Model.Domain.Seguros.ConfigExtratoImport SaveOrUpdate(Gestor.Model.Domain.Seguros.ConfigExtratoImport ConfigExtratoImport)
		{
			ConfigExtratoImportDb configExtratoImportDb = ApplicationMapper.Mapper.Map<Gestor.Model.Domain.Seguros.ConfigExtratoImport, ConfigExtratoImportDb>(ConfigExtratoImport);
			this.SaveOrUpdate(configExtratoImportDb);
			return ApplicationMapper.Mapper.Map<ConfigExtratoImportDb, Gestor.Model.Domain.Seguros.ConfigExtratoImport>(configExtratoImportDb);
		}
	}
}