CzarnyBarszcz

AddressService

Dec 10th, 2022
471
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. using System.Linq.Expressions;
  2. using AutoMapper;
  3. using Microsoft.Extensions.Logging;
  4. using WebStore.DAL.EF;
  5. using WebStore.Model.DataModels;
  6. using WebStore.ViewModels.VM;
  7. using WebStore.Services.Interfaces;
  8. namespace WebStore.Services.ConcreteServices;
  9. public class AddressService : BaseService, IAddressService
  10. {
  11. public AddressService(ApplicationDbContext dbContext, IMapper mapper, ILogger logger) : base(dbContext, mapper, logger){}
  12. public AddressVm AddOrUpdateAddress(AddOrUpdateAddressVm addOrUpdateAddressVm)
  13. {
  14. try
  15. {
  16. if (addOrUpdateAddressVm == null)
  17. throw new ArgumentNullException("View model parameter is null");
  18. var addressEntity = Mapper.Map<Address>(addOrUpdateAddressVm);
  19. if (!addOrUpdateAddressVm.Id.HasValue || addOrUpdateAddressVm.Id == 0)
  20. DbContext.Addresses.Add(addressEntity);
  21. else
  22. DbContext.Addresses.Update(addressEntity);
  23. DbContext.SaveChanges();
  24. var addressVm = Mapper.Map<AddressVm>(addressEntity);
  25. return addressVm;
  26. }
  27. catch (Exception ex)
  28. {
  29. Logger.LogError(ex, ex.Message);
  30. throw;
  31. }
  32. }
  33. public bool DeleteAddress(Expression<Func<Address, bool>> filterExpression)
  34. {
  35. try
  36. {
  37. if (filterExpression == null)
  38. throw new ArgumentNullException("Filter expression parameter is null");
  39. var addressEntity = DbContext.Addresses.FirstOrDefault(filterExpression);
  40. if (addressEntity != null)
  41. {
  42. DbContext.Addresses.Remove(addressEntity);
  43. DbContext.SaveChanges();
  44. return true;
  45. }
  46. else return false;
  47. }
  48. catch (Exception ex)
  49. {
  50. Logger.LogError(ex, ex.Message);
  51. throw;
  52. }
  53. }
  54. public AddressVm GetAddress(Expression<Func<Address, bool>>? filterExpression)
  55. {
  56. try
  57. {
  58. if (filterExpression == null)
  59. throw new ArgumentNullException("Filter expression parameter is null");
  60. var addressEntity = DbContext.Addresses.FirstOrDefault(filterExpression);
  61. var addressVm = Mapper.Map<AddressVm>(addressEntity);
  62. return addressVm;
  63. }
  64. catch (Exception ex)
  65. {
  66. Logger.LogError(ex, ex.Message);
  67. throw;
  68. }
  69. }
  70. public IEnumerable<AddressVm> GetAddresses(Expression<Func<Address, bool>>? filterExpression = null)
  71. {
  72. try
  73. {
  74. var addressesQuery = DbContext.Addresses.AsQueryable();
  75. if (filterExpression != null)
  76. addressesQuery = addressesQuery.Where(filterExpression);
  77. var addressVms = Mapper.Map<IEnumerable<AddressVm>>(addressesQuery);
  78. return addressVms;
  79. }
  80. catch (Exception ex)
  81. {
  82. Logger.LogError(ex, ex.Message);
  83. throw;
  84. }
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment