Changeset 8eb1e21


Ignore:
Timestamp:
02/11/21 03:49:55 (4 years ago)
Author:
Dimitar Slezenkovski <dslezenkovski@…>
Branches:
master
Children:
6e6f04b
Parents:
e0cdea2
Message:

Fix delete pharmacy head method.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • FarmatikoData/FarmatikoRepo/PHRepo.cs

    re0cdea2 r8eb1e21  
    6161                user.Password = pharmacyHead.Password;
    6262            }
    63             /*if (EditedPHead.Pharmacies != null)
     63            foreach(var pharmacy in pharmacyHead.Pharmacies)
    6464            {
    65                 if (EditedPHead.Pharmacies.Count() > 0)
    66                     if (!EditedPHead.Pharmacies.Equals(pharmacyHead.Pharmacies))
    67                         EditedPHead.Pharmacies = pharmacyHead.Pharmacies;
     65                if (!EditedPHead.Pharmacies.Contains(pharmacy))
     66                {
     67                    pharmacy.PheadId = EditedPHead.Id;
     68                    pharmacy.PharmacyHead = EditedPHead;
     69                    EditedPHead.Pharmacies.Add(pharmacy);
     70                }
    6871            }
    69             if (EditedPHead.Medicines != null)
    70             {
    71                 if (EditedPHead.Medicines.Count() > 0)
    72                 {
    73                     if (!EditedPHead.Medicines.Equals(pharmacyHead.Medicines))
    74                         EditedPHead.Medicines = pharmacyHead.Medicines;
    75                    
    76                 }
    77                    
    78             }*/
    79 
     72            _context.Entry(EditedPHead).State = EntityState.Modified;
     73           
    8074            _context.SaveChanges();
    8175        }
     
    153147        public PharmacyHead GetPharmacyHead(string head)
    154148        {
    155             var phead = _context.PharmacyHeads.Where(x => x.Email.Equals(head)).FirstOrDefault();
     149            var phead = _context.PharmacyHeads.Where(x => x.Email.Equals(head)).Include(x => x.Pharmacies).FirstOrDefault();
    156150            return phead;
    157151        }
  • FarmatikoData/FarmatikoRepo/Repository.cs

    re0cdea2 r8eb1e21  
    270270        public async Task RemovePharmacyHead(int Id)
    271271        {
    272             var PHead = await _context.PharmacyHeads.Where(x => x.Id == Id).FirstOrDefaultAsync();
     272            var PHead = await _context.PharmacyHeads.Where(x => x.Id == Id).Include(x => x.Pharmacies).Include(x => x.Medicines).FirstOrDefaultAsync();
    273273            var user = await _context.Users.Where(x => x.Email.Equals(PHead.Email)).FirstOrDefaultAsync();
     274            var PHreqs = await _context.PHRequests.Where(x => x.Head.Id.Equals(PHead.Id)).FirstOrDefaultAsync();
     275            PHead.Pharmacies.Select(x => x.PheadId = null);
     276            //PHead.Pharmacies.Select(x => x.PharmacyHead = null);
     277            _context.PHRequests.Remove(PHreqs);
    274278            _context.PharmacyHeads.Remove(PHead);
    275279            _context.Users.Remove(user);
  • FarmatikoServices/Services/PHService.cs

    re0cdea2 r8eb1e21  
    8686                    if (!pharmacyHead.Medicines.Equals(PHMedicines))
    8787                    {
    88                         //phead.Medicines = pharmacyHead.Medicines;
    89                         if (pharmacyHead.Medicines.Count() == 0)
     88                        /*
     89                         * USELESS
     90                         * if (pharmacyHead.Medicines.Count() == 0)
    9091                        {
    9192                            phead.Medicines = null;
     
    9596                            _iPHRepo.DeletePHMedicine(PHMId, phId, medId);
    9697                            return;
    97                         }
     98                        }*/
    9899                        if (phead.Medicines != null && phead.Medicines.Count() > 0)
    99100                        {
     
    119120                                    Medicine = medicine
    120121                                };
    121                                
     122
    122123                                bool ifExists = phead.Medicines.Contains(phm);
    123124                                if (!ifExists)
     
    153154                    }
    154155                }
    155 
    156156                PharmacyHead head = new PharmacyHead()
    157157                {
    158158                    Name = pharmacyHead.Name,
    159159                    Email = pharmacyHead.Email,
    160                     Password = pharmacyHead.Password
     160                    Password = pharmacyHead.Password,
     161                    Medicines = phead.Medicines,
     162                    Pharmacies = phead.Pharmacies
    161163                };
    162 
    163                 if (pharmacyHead.Pharmacies != null)
    164                 {
    165                     if (pharmacyHead.Pharmacies.Count() > 0)
    166                     {
    167                         phead.Pharmacies = pharmacyHead.Pharmacies;
    168                         head.Pharmacies = pharmacyHead.Pharmacies;
     164                if (!phead.Name.Equals(head.Name) && !phead.Password.Equals(head.Email))
     165                {
     166                    await _iPHRepo.UpdatePharmacyHead(head);
     167                }
     168                List<Pharmacy> pharmacies = new List<Pharmacy>();
     169                pharmacies = phead.Pharmacies;
     170                if (head.Pharmacies != null && pharmacyHead.Pharmacies != null)
     171                {
     172                    if (head.Pharmacies.Count() > 0 && pharmacyHead.Pharmacies.Count() > 0)
     173                    {
     174                        foreach (var pharmacy in pharmacyHead.Pharmacies)
     175                        {
     176                            if (!head.Pharmacies.Contains(pharmacy))
     177                            {
     178                                pharmacy.PheadId = phead.Id;
     179                                pharmacy.PharmacyHead = phead;
     180                                pharmacies.Add(pharmacy);
     181                            }
     182                        }
     183                        head.Pharmacies = pharmacies;
     184                        await _iPHRepo.UpdatePharmacyHead(head);
    169185                    }
    170186                }
    171                
    172                 if (!phead.Equals(head))
    173                 {
    174                     await _iPHRepo.UpdatePharmacyHead(head);
    175                 }
    176                 else throw new Exception("Cannot update pharmacy head since there was no changes.");
    177             }
    178             else throw new Exception("PharmacyHead has a null value.");
     187            }
     188            else throw new Exception("Cannot update pharmacy head since there was no changes.");
    179189        }
    180190        public async Task<bool> Add(PharmacyHeadDto pharmacyHead)
Note: See TracChangeset for help on using the changeset viewer.