Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Repositories.Memory/RepositoryBase.cs @ 214:7d838e7d83b3
Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
author | alabra |
---|---|
date | Wed, 24 Aug 2011 19:49:18 -0300 |
parents | 2d1adbaf0373 |
children |
rev | line source |
---|---|
4 | 1 using System; |
2 using System.Collections.Generic; | |
56
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
3 using AltNetHispano.Agendas.Domain; |
4 | 4 |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
4
diff
changeset
|
5 namespace AltNetHispano.Agendas.Repositories.Memory |
4 | 6 { |
56
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
7 public class RepositoryBase<T> where T : Identificable |
4 | 8 { |
9 protected static readonly IDictionary<Guid, T> Objects = new Dictionary<Guid, T>(); | |
56
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
10 |
137 | 11 public T Get(Guid id) |
12 { | |
13 T value; | |
14 return Objects.TryGetValue(id, out value) ? value : null; | |
15 } | |
16 | |
56
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
17 public void Save(T obj) |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
18 { |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
19 if (obj.Id==Guid.Empty) |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
20 { |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
21 var setter = typeof (Identificable).GetProperty("Id"); |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
22 setter.SetValue(obj, Guid.NewGuid(), null); |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
23 } |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
24 |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
25 if (!Objects.Keys.Contains(obj.Id)) |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
26 Objects.Add(obj.Id, obj); |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
27 } |
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
34
diff
changeset
|
28 |
137 | 29 public void Delete(T obj) |
30 { | |
31 Objects.Remove(obj.Id); | |
32 } | |
33 | |
34 | |
4 | 35 } |
36 } |