using FarmatikoData.FarmatikoRepoInterfaces; using FarmatikoData.Models; using FarmatikoServices.FarmatikoServiceInterfaces; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FarmatikoServices.Services { public class PHService : IPHService { private readonly IPHRepo _iPHRepo; public PHService(IPHRepo iPHRepo) { _iPHRepo = iPHRepo; } public async Task ClaimPharmacy(RequestPharmacyHead pharmacy) { if (pharmacy != null) { await _iPHRepo.ClaimPharmacy(pharmacy); return true; } return false; } public async Task GetPharmacyHeadByIdAsync(int id) { PharmacyHead Phead = null; if (id >= 0) Phead = await _iPHRepo.GetPharmacyHeadByIdAsync(id); if (Phead != null) return Phead; throw new Exception("No data found."); } public async Task> GetPharmacyHeadInfo() { var PHeads = await _iPHRepo.GetPharmacyHeadInfo(); if (PHeads != null) return PHeads; throw new Exception("No Pharmacy heads found."); } public async Task Login(PharmacyHead pharmacyHead) { var PHead = await _iPHRepo.GetPharmacyHeadByIdAsync(pharmacyHead.Id); if (PHead.Password.Equals(pharmacyHead.Password)) return PHead.Id; return -1; } public async Task UpdatePharmacyHead(PharmacyHead pharmacyHead) { if (pharmacyHead != null) await _iPHRepo.UpdatePharmacyHead(pharmacyHead); else throw new Exception("PharmacyHead has a null value."); } public async Task Add(PharmacyHead pharmacyHead) { if (pharmacyHead != null) { await _iPHRepo.Add(pharmacyHead); return true; } return false; } public async Task Remove(int id) { PharmacyHead Phead = await _iPHRepo.GetPharmacyHeadByIdAsync(id); if (Phead != null && id >= 0) { Phead.DeletedOn = DateTime.UtcNow; await _iPHRepo.Remove(Phead); return true; } return false; } public async Task RemoveClaimingRequest(int id) { if (id >= 0) { await _iPHRepo.RemoveClaimingRequest(id); return true; } return false; } public PharmacyHead GetPharmacyHead(string userName) { if (userName != null) { return _iPHRepo.GetPharmacyHeadByUserName(userName); } return default; } } }