You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.8 KiB

10 years ago
  1. using System.Linq;
  2. namespace Sevomin.Models.Repositories
  3. {
  4. public class ParameterRepository: IParameterRepository
  5. {
  6. #region Singleton
  7. private static ParameterRepository member;
  8. private static object locker = new object();
  9. private ParameterRepository()
  10. {
  11. }
  12. static ParameterRepository()
  13. {
  14. lock (locker)
  15. {
  16. ParameterRepository.member = new ParameterRepository();
  17. }
  18. }
  19. public static ParameterRepository Current
  20. {
  21. get
  22. {
  23. return ParameterRepository.member;
  24. }
  25. }
  26. #endregion
  27. #region JobRepository
  28. public IQueryable<Parameter> ListAll()
  29. {
  30. return SevominDbContext.Current.Parameters;
  31. }
  32. public Parameter Find(long key)
  33. {
  34. return ListAll().SingleOrDefault(d => d.Id == key);
  35. }
  36. public void Delete(Parameter d)
  37. {
  38. SevominDbContext.Current.Parameters.Remove(d);
  39. Save();
  40. }
  41. public void Add(Parameter d)
  42. {
  43. SevominDbContext.Current.Parameters.Add(d);
  44. Save();
  45. }
  46. public void Save()
  47. {
  48. SevominDbContext.Current.SaveChanges();
  49. }
  50. public void AddParametersToDovomin(Dovomin dovomin)
  51. {
  52. foreach (var param in ListAll().ToList())
  53. {
  54. if (dovomin.DovominParameters.Count(x => x.ParameterId == param.Id) == 0)
  55. {
  56. dovomin.DovominParameters.Add(new DovominParameter(dovomin, param));
  57. }
  58. }
  59. }
  60. #endregion
  61. }
  62. }