source: FarmatikoData/FarmatikoRepo/PHRepo.cs@ 7d80751

Last change on this file since 7d80751 was db484c9, checked in by DimitarSlezenkovski <dslezenkovski@…>, 3 years ago

Fix bugs

  • Property mode set to 100644
File size: 5.3 KB
RevLine 
[1454207]1using FarmatikoData.FarmatikoRepoInterfaces;
2using FarmatikoData.Models;
[6f203af]3using Microsoft.EntityFrameworkCore;
[1454207]4using System.Collections.Generic;
5using System.Linq;
6using System.Threading.Tasks;
7
8namespace FarmatikoData.FarmatikoRepo
9{
10 public class PHRepo : IPHRepo
11 {
12 private readonly FarmatikoDataContext _context;
13 public PHRepo(FarmatikoDataContext context)
14 {
15 _context = context;
16 }
[6f203af]17 //GET
18 public async Task<PharmacyHead> GetPharmacyHeadByIdAsync(int id)
[1454207]19 {
[6f203af]20 var Phead = await _context.PharmacyHeads.Where(x => x.Id == id).FirstOrDefaultAsync();
[1454207]21 return Phead;
22 }
23
[6f203af]24 public async Task<IEnumerable<PharmacyHead>> GetPharmacyHeadInfo()
[1454207]25 {
[db484c9]26 var PHeadInfo = await _context.PharmacyHeads.Take(10)
27 .Where(x => x.DeletedOn == null)
[6f203af]28 .Select(x => new PharmacyHead
29 {
30 Id = x.Id,
31 Name = x.Name,
32 Email = x.Email,
33 Password = x.Password,
[db484c9]34 Pharmacies = x.Pharmacies,
35 Medicines = x.Medicines
36
[6f203af]37 }).ToListAsync();
[1454207]38 return PHeadInfo;
39 }
[6f203af]40 //POST
[1454207]41 public async Task UpdatePharmacyHead(PharmacyHead pharmacyHead)
42 {
[1db5673]43 var Phead = await _context.PharmacyHeads.Where(x => x.Email == pharmacyHead.Email).FirstOrDefaultAsync();
44 var EditedPHead = await _context.PharmacyHeads.AsNoTracking<PharmacyHead>().Where(x => x.Email == pharmacyHead.Email).FirstOrDefaultAsync();
[db484c9]45
46 if (!EditedPHead.Email.Equals(pharmacyHead.Email))
47 EditedPHead.Email = pharmacyHead.Email;
48
49 if (!EditedPHead.Name.Equals(pharmacyHead.Name))
50 EditedPHead.Name = pharmacyHead.Name;
51
52 if (!EditedPHead.Password.Equals(pharmacyHead.Password))
53 EditedPHead.Password = pharmacyHead.Password;
54
55 if (!EditedPHead.Pharmacies.Equals(pharmacyHead.Pharmacies))
56 EditedPHead.Pharmacies = pharmacyHead.Pharmacies;
57
58 if (!EditedPHead.Medicines.Equals(pharmacyHead.Medicines))
59 EditedPHead.Medicines = pharmacyHead.Medicines;
60
[1454207]61 await _context.SaveChangesAsync();
62 }
[6f203af]63 public async Task ClaimPharmacy(RequestPharmacyHead pharmacy)
64 {
65 await _context.PHRequests.AddAsync(pharmacy);
66 await _context.SaveChangesAsync();
67 }
68 public async Task Add(PharmacyHead pharmacyHead)
69 {
70 await _context.PharmacyHeads.AddAsync(pharmacyHead);
71 await _context.SaveChangesAsync();
72 }
73
74 public async Task Remove(PharmacyHead phead)
75 {
76 var Phead = await _context.PharmacyHeads.Where(x => x.Id == phead.Id).FirstOrDefaultAsync();
77 Phead.DeletedOn = phead.DeletedOn;
78 await _context.SaveChangesAsync();
79 }
80
81 public async Task RemoveClaimingRequest(int id)
82 {
83 var req = await _context.PHRequests.Where(r => r.Id == id).FirstOrDefaultAsync();
84 _context.PHRequests.Remove(req);
85 await _context.SaveChangesAsync();
86 }
[d23bf72]87
[1db5673]88
[d23bf72]89 public PharmacyHead GetPharmacyHeadByUserName(string userName)
90 {
[db484c9]91
92
[1db5673]93 var PHead = _context.PharmacyHeads
[d23bf72]94 .Where(x => x.Email.Equals(userName))
[db484c9]95 .Select(x => new PharmacyHead
96 {
97 Email = x.Email,
98 Name = x.Name,
99 Password = x.Password,
100 Medicines = x.Medicines,
101 Pharmacies = x.Pharmacies
102 }).FirstOrDefault();
103
104
[1db5673]105
106 return PHead;
107 }
108
109 public List<PharmacyHeadMedicine> GetPharmacyHeadMedicines(string email)
110 {
111 var Phead = _context.PharmacyHeads.Where(x => x.Email.Equals(email)).FirstOrDefault();
[db484c9]112 var Medicines = _context.PharmacyHeadMedicines.Select(x => new PharmacyHeadMedicine
113 {
114 PheadId = x.PheadId,
115 Head = x.Head,
116 MedicineId = x.MedicineId,
117 Medicine = x.Medicine
118 }).ToList();
119 if (Medicines == null || Medicines == default)
120 Medicines = null;
121 var meds = Medicines.Where(x => x.PheadId == Phead.Id).ToList();
[1db5673]122
[db484c9]123 return meds;
[1db5673]124 }
125
126 public IEnumerable<PharmacyHead> GetPharmacyHeads()
127 {
128 var heads = _context.PharmacyHeads.ToList();
129 return heads;
130 }
131
132 public PharmacyHead GetPharmacyHead(string head)
133 {
134 var phead = _context.PharmacyHeads.Where(x => x.Email.Equals(head)).FirstOrDefault();
135 return phead;
136 }
137
138 public List<Pharmacy> GetPharmacies()
139 {
140 var pharms = _context.Pharmacies.ToList();
141 return pharms;
[d23bf72]142 }
[68454c6]143
144 public void DeletePHMedicine(int id, int phId, int medId)
145 {
146 var PH = _context.PharmacyHeadMedicines.Where(x => x.PheadId == phId).Single();
147 var PHMed = _context.PharmacyHeadMedicines.Where(x => x.MedicineId == medId).Single();
148 var PHID = _context.PharmacyHeadMedicines.Where(x => x.Id == id).Single();
149 _context.PharmacyHeadMedicines.Remove(PHID);
150 _context.SaveChanges();
151 }
[1454207]152 }
153}
Note: See TracBrowser for help on using the repository browser.