Ignore:
Timestamp:
01/26/21 10:33:09 (3 years ago)
Author:
DimitarSlezenkovski <dslezenkovski@…>
Branches:
master
Children:
7d80751
Parents:
8e74e2f
Message:

Fix bugs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • FarmatikoServices/Services/PHService.cs

    r8e74e2f rdb484c9  
    1 using FarmatikoData.FarmatikoRepoInterfaces;
     1using FarmatikoData.DTOs;
     2using FarmatikoData.FarmatikoRepoInterfaces;
    23using FarmatikoData.Models;
    34using FarmatikoServices.FarmatikoServiceInterfaces;
     
    5758
    5859
    59         public async Task UpdatePharmacyHead(PharmacyHead pharmacyHead)
     60        public async Task UpdatePharmacyHead(PharmacyHeadDto pharmacyHead)
    6061        {
    6162            if (pharmacyHead != null)
     
    6364                var phead = _iPHRepo.GetPharmacyHead(pharmacyHead.Email);
    6465
    65                 /*if (pharmacyHead.PharmaciesList.Count() == 0)
    66                     pharmacyHead.PharmaciesList = null;*/
    67 
    68 
    69                 phead.PHMedicineList = _repository.GetPHMedicines(phead.Email);
    70 
    71                 if (phead.MedicineList != pharmacyHead.MedicineList)
    72                 {
    73                     phead.MedicineList = pharmacyHead.MedicineList;
    74                     List<PharmacyHeadMedicine> list = new List<PharmacyHeadMedicine>();
    75                     if (pharmacyHead.MedicineList.Count() == 0)
    76                     {
    77                         phead.MedicineList = null;
    78                         int PHMId = phead.PHMedicineList.Select(x => x.Id).Single();
    79                         int phId = phead.PHMedicineList.Select(x => x.PheadId).Single();
    80                         int medId = phead.PHMedicineList.Select(x => x.MedicineId).Single();
     66                phead.Medicines = _repository.GetPHMedicines(phead.Email).ToList();
     67               
     68                List<Medicine> medicines = _repository.GetMedicines().ToList();
     69               
     70                List<Medicine> PHMedicines = medicines.Where(x => x.Id == phead.Medicines.Select(x => x.MedicineId).Single()).ToList();
     71               
     72                List<PharmacyHeadMedicine> list = new List<PharmacyHeadMedicine>();
     73
     74               
     75
     76                if (!pharmacyHead.Medicines.Equals(PHMedicines))
     77                {
     78                    //phead.Medicines = pharmacyHead.Medicines;
     79                    if (pharmacyHead.Medicines.Count() == 0)
     80                    {
     81                        phead.Medicines = null;
     82                        int PHMId = phead.Medicines.Select(x => x.Id).Single();
     83                        int phId = phead.Medicines.Select(x => x.PheadId).Single();
     84                        int medId = phead.Medicines.Select(x => x.MedicineId).Single();
    8185                        _iPHRepo.DeletePHMedicine(PHMId, phId, medId);
    8286                        return;
    8387                    }
    84                     List<PharmacyHeadMedicine> PHMList = new List<PharmacyHeadMedicine>();
    85                     if (phead.PHMedicineList == pharmacyHead.PHMedicineList)
    86                     {
    87                         foreach (var med in phead.MedicineList)
     88                    foreach (var med in pharmacyHead.Medicines)
     89                    {
     90
     91                        PharmacyHeadMedicine PHMObj = phead.Medicines.Select(x => new PharmacyHeadMedicine
    8892                        {
    89                             //list = phead.PHMedicineList.ToList();
    90 
    91                             var PHMObj = phead.PHMedicineList.Select(x => new PharmacyHeadMedicine
    92                             {
    93                                 Id = x.Id,
    94                                 PheadId = x.PheadId,
    95                                 Head = x.Head,
    96                                 MedicineId = x.MedicineId,
    97                                 Medicine = x.Medicine
    98                             }).Where(x => x.MedicineId == med.Id).Single();
    99                             if (PHMObj == null || PHMObj == default)
    100                                 break;
    101                             if (PHMObj.MedicineId == med.Id)
    102                                 list.Add(PHMObj);
    103 
    104                         }
    105 
    106                         phead.PHMedicineList = list;
     93                            Id = x.Id,
     94                            PheadId = x.PheadId,
     95                            Head = x.Head,
     96                            MedicineId = x.MedicineId,
     97                            Medicine = x.Medicine
     98                        }).Where(x => !x.Medicine.Equals(med)).Single();
     99                        if (PHMObj == null || PHMObj == default)
     100                            break;
     101                        if (PHMObj.MedicineId == med.Id)
     102                            list.Add(PHMObj);
     103
    107104                    }
    108105
     106                    phead.Medicines = list;
     107
    109108                    await _iPHRepo.UpdatePharmacyHead(phead);
    110109                }
    111                 else if (!phead.Equals(pharmacyHead))
    112                 {
    113                     await _iPHRepo.UpdatePharmacyHead(pharmacyHead);
     110                PharmacyHead head = new PharmacyHead()
     111                {
     112                    Name = pharmacyHead.Name,
     113                    Email = pharmacyHead.Email,
     114                    Password = pharmacyHead.Password,
     115                    Pharmacies = pharmacyHead.Pharmacies,
     116                    Medicines = list
     117                };
     118                if (!phead.Equals(head))
     119                {
     120                    await _iPHRepo.UpdatePharmacyHead(head);
    114121                }
    115122                else throw new Exception("Cannot update pharmacy head since there was no changes.");
     
    117124            else throw new Exception("PharmacyHead has a null value.");
    118125        }
    119         public async Task<bool> Add(PharmacyHead pharmacyHead)
     126        public async Task<bool> Add(PharmacyHeadDto pharmacyHead)
    120127        {
    121128            if (pharmacyHead != null)
    122129            {
    123                 await _iPHRepo.Add(pharmacyHead);
     130                PharmacyHead head = new PharmacyHead()
     131                {
     132                    Name = pharmacyHead.Name,
     133                    Email = pharmacyHead.Email,
     134                    Password = pharmacyHead.Password,
     135                    Pharmacies = null,
     136                    Medicines = null
     137                };
     138                await _iPHRepo.Add(head);
    124139                return true;
    125140            }
     
    149164        }
    150165
    151         public object GetPharmacyHead(string userName)
     166        public PharmacyHeadDto GetPharmacyHead(string userName)
    152167        {
    153168            if (userName != null)
     
    156171                List<PharmacyHeadMedicine> PHMedicines = _iPHRepo.GetPharmacyHeadMedicines(userName);
    157172                List<Medicine> Medicines = _repository.GetMedicines().ToList();
    158                 List<Medicine> PHMedicineList = new List<Medicine>();
    159 
    160 
    161                 //var meds = PHMedicines.Where(x => x.Id == Phead.Id).ToList();
    162                 var pharmacies = _iPHRepo.GetPharmacies();
    163                 var PheadPharms = pharmacies.Where(x => x.PheadId == Phead.Id).ToList();
     173                List<Medicine> MedicineList = new List<Medicine>();
     174
    164175                var user = _repository.GetRole(userName);
    165176
     
    167178                if (user.UserRole.ToString().Equals("Admin"))
    168179                {
    169                     var Admin = new PharmacyHead()
     180                    List<Pharmacy> pharmacies = new List<Pharmacy>();
     181                    pharmacies = Phead.Pharmacies;
     182                    var Admin = new PharmacyHeadDto()
    170183                    {
    171184                        Id = user.Id,
     
    173186                        Name = user.Name,
    174187                        Password = user.Password,
    175                         PharmaciesList = Phead.PharmaciesList
     188                        Pharmacies = pharmacies
    176189                    };
    177190
    178191                    return Admin;
    179192                }
    180 
    181                 if (PheadPharms.Count() > 0 || PheadPharms != null)
    182                     Phead.PharmaciesList = PheadPharms;
    183                 else Phead.PharmaciesList = pharmacies;
    184 
    185                 if (Phead.PHMedicineList.Count() > 0 || Phead.PHMedicineList != null)
     193                else
    186194                {
    187195                    foreach (var med in Medicines)
    188196                    {
    189 
    190                         var PHMObj = Phead.PHMedicineList.Where(x => x.MedicineId == med.Id).SingleOrDefault();
     197                        var PHMObj = Phead.Medicines.Where(x => x.MedicineId == med.Id).SingleOrDefault();
    191198                        if (PHMObj == null)
    192199                        {
    193200                            continue;
    194201                        }
    195                         var phm = Phead.MedicineList;
    196202                        if (PHMObj.MedicineId == med.Id)
    197203                        {
     
    207213                                Packaging = med.Packaging
    208214                            };
    209                             PHMedicineList.Add(medicine);
     215                            MedicineList.Add(medicine);
    210216                        }
    211217                    }
    212                     Phead.MedicineList = PHMedicineList;
    213                 }
    214                 else
    215                 {
    216                     Phead.MedicineList = Medicines;
    217                 }
    218 
    219                 PharmacyHead pharHead = new PharmacyHead()
     218                }
     219
     220                PharmacyHeadDto pharmacyHead = new PharmacyHeadDto()
    220221                {
    221222                    Id = Phead.Id,
    222                     MedicineList = Phead.MedicineList,
    223                     PharmaciesList = Phead.PharmaciesList,
     223                    Medicines = MedicineList,
     224                    Pharmacies = Phead.Pharmacies,
    224225                    Email = Phead.Email,
    225226                    Name = Phead.Name,
    226227                    Password = Phead.Password
    227228                };
    228                 return pharHead;
     229                return pharmacyHead;
    229230            }
    230231            else throw new Exception("Username is null.");
Note: See TracChangeset for help on using the changeset viewer.