API
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.

EmailRepository.cs 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using Microsoft.EntityFrameworkCore;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using UnivateProperties_API.Context;
  6. using UnivateProperties_API.Model.Communication;
  7. namespace UnivateProperties_API.Repository.Communication
  8. {
  9. public class EmailRepository : IRepository<Email>
  10. {
  11. private readonly DataContext _dbContext;
  12. public EmailRepository(DataContext dbContext)
  13. {
  14. _dbContext = dbContext;
  15. }
  16. public List<Email> Get(Func<Email, bool> where)
  17. {
  18. return _dbContext.Emails.Where(where).ToList();
  19. }
  20. public List<Email> GetAll()
  21. {
  22. return _dbContext.Emails.ToList();
  23. }
  24. public Email GetDetailed(Func<Email, bool> first)
  25. {
  26. var item = _dbContext.Emails.FirstOrDefault(first);
  27. SMTPAccountRepository account = new SMTPAccountRepository(_dbContext);
  28. item = GetDetailedObject(item, account);
  29. return item;
  30. }
  31. private Email GetDetailedObject(Email item, SMTPAccountRepository repo)
  32. {
  33. item.Sender = repo.GetDetailed(x => x.Id == item.SenderId);
  34. return item;
  35. }
  36. public List<Email> GetDetailedAll()
  37. {
  38. var list = GetAll();
  39. SMTPAccountRepository account = new SMTPAccountRepository(_dbContext);
  40. foreach (var item in list)
  41. {
  42. item.Sender = account.GetDetailed(x => x.Id == item.SenderId);
  43. }
  44. return list;
  45. }
  46. public void Insert(Email item)
  47. {
  48. SMTPAccountRepository account = new SMTPAccountRepository(_dbContext);
  49. item = GetDetailedObject(item, account);
  50. item.SendMail();
  51. _dbContext.Add(item);
  52. Save();
  53. }
  54. public void Insert(IEnumerable<Email> items)
  55. {
  56. foreach (var item in items)
  57. {
  58. item.SendMail();
  59. _dbContext.Add(item);
  60. }
  61. Save();
  62. }
  63. public void Remove(Email item)
  64. {
  65. var i = _dbContext.Emails.Find(item);
  66. _dbContext.Emails.Remove(i);
  67. Save();
  68. }
  69. public void Remove(IEnumerable<Email> items)
  70. {
  71. foreach (var item in items)
  72. {
  73. Email i = _dbContext.Emails.Find(item);
  74. _dbContext.Emails.Remove(i);
  75. }
  76. Save();
  77. }
  78. public void RemoveAtId(int item)
  79. {
  80. var i = _dbContext.Emails.Find(item);
  81. _dbContext.Emails.Remove(i);
  82. Save();
  83. }
  84. public void Update(Email item)
  85. {
  86. _dbContext.Entry(item).State = EntityState.Modified;
  87. Save();
  88. }
  89. public void Save()
  90. {
  91. _dbContext.SaveChanges();
  92. }
  93. }
  94. }