Ignore:
Timestamp:
02/14/21 17:54:35 (4 years ago)
Author:
Dimitar Slezenkovski <dslezenkovski@…>
Branches:
master
Children:
472dd7e
Parents:
6e6f04b
Message:

Add cron job for updating data, with Quartz.NET

Location:
FarmatikoServices/Services
Files:
4 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • FarmatikoServices/Services/PHService.cs

    r6e6f04b rf554983  
    8383                            PHMedicines.Add(medicine);
    8484                    }
    85 
    86                     if (!pharmacyHead.Medicines.Equals(PHMedicines))
    87                     {
    88                         /*
    89                          * USELESS
    90                          * if (pharmacyHead.Medicines.Count() == 0)
     85                    foreach(var phMed in PHMedicines)
     86                    {
     87                        if (!pharmacyHead.Medicines.Contains(phMed))
    9188                        {
    92                             phead.Medicines = null;
    93                             int PHMId = phead.Medicines.Select(x => x.Id).Single();
    94                             int phId = phead.Medicines.Select(x => x.PheadId).Single();
    95                             int medId = phead.Medicines.Select(x => x.MedicineId).Single();
    96                             _iPHRepo.DeletePHMedicine(PHMId, phId, medId);
    97                             return;
    98                         }*/
    99                         if (phead.Medicines != null && phead.Medicines.Count() > 0)
    100                         {
    101                             foreach (var med in pharmacyHead.Medicines)
    102                             {
    103                                 Medicine medicine = new Medicine()
     89                            /*
     90                             * USELESS
     91                             * if (pharmacyHead.Medicines.Count() == 0)
     92                            {
     93                                phead.Medicines = null;
     94                                int PHMId = phead.Medicines.Select(x => x.Id).Single();
     95                                int phId = phead.Medicines.Select(x => x.PheadId).Single();
     96                                int medId = phead.Medicines.Select(x => x.MedicineId).Single();
     97                                _iPHRepo.DeletePHMedicine(PHMId, phId, medId);
     98                                return;
     99                            }*/
     100                            if (phead.Medicines != null && phead.Medicines.Count() > 0)
     101                            {
     102                                foreach (var med in pharmacyHead.Medicines)
    104103                                {
    105                                     Name = med.Name,
    106                                     Form = med.Form,
    107                                     Manufacturer = med.Manufacturer,
    108                                     Medicines = med.Medicines,
    109                                     Packaging = med.Packaging,
    110                                     Price = med.Price,
    111                                     Strength = med.Strength,
    112                                     WayOfIssuing = med.WayOfIssuing
    113                                 };
    114 
    115                                 PharmacyHeadMedicine phm = new PharmacyHeadMedicine()
     104                                    Medicine medicine = new Medicine()
     105                                    {
     106                                        Name = med.Name,
     107                                        Form = med.Form,
     108                                        Manufacturer = med.Manufacturer,
     109                                        Medicines = med.Medicines,
     110                                        Packaging = med.Packaging,
     111                                        Price = med.Price,
     112                                        Strength = med.Strength,
     113                                        WayOfIssuing = med.WayOfIssuing
     114                                    };
     115
     116                                    PharmacyHeadMedicine phm = new PharmacyHeadMedicine()
     117                                    {
     118                                        PheadId = phead.Id,
     119                                        Head = phead,
     120                                        MedicineId = med.Id,
     121                                        Medicine = medicine
     122                                    };
     123
     124                                    bool ifExists = phead.Medicines.Contains(phm);
     125                                    if (!ifExists)
     126                                        list.Add(phm);
     127
     128                                }
     129                            }
     130                            else
     131                            {
     132                                foreach (var med in pharmacyHead.Medicines)
    116133                                {
    117                                     PheadId = phead.Id,
    118                                     Head = phead,
    119                                     MedicineId = med.Id,
    120                                     Medicine = medicine
    121                                 };
    122 
    123                                 bool ifExists = phead.Medicines.Contains(phm);
    124                                 if (!ifExists)
    125                                     list.Add(phm);
    126 
     134                                    PharmacyHead head1 = new PharmacyHead()
     135                                    {
     136                                        Id = pharmacyHead.Id,
     137                                        Name = pharmacyHead.Name,
     138                                        Email = pharmacyHead.Email,
     139                                        Password = pharmacyHead.Password
     140                                    };
     141                                    PharmacyHeadMedicine phmed = new PharmacyHeadMedicine()
     142                                    {
     143                                        Head = head1,
     144                                        Medicine = med
     145                                    };
     146                                    list.Add(phmed);
     147                                }
    127148                            }
     149
     150
     151                            phead.Medicines = list;
     152
     153                            await _iPHRepo.UpdatePharmacyHead(phead);
     154
    128155                        }
    129                         else
    130                         {
    131                             foreach (var med in pharmacyHead.Medicines)
    132                             {
    133                                 PharmacyHead head1 = new PharmacyHead()
    134                                 {
    135                                     Id = pharmacyHead.Id,
    136                                     Name = pharmacyHead.Name,
    137                                     Email = pharmacyHead.Email,
    138                                     Password = pharmacyHead.Password
    139                                 };
    140                                 PharmacyHeadMedicine phMed = new PharmacyHeadMedicine()
    141                                 {
    142                                     Head = head1,
    143                                     Medicine = med
    144                                 };
    145                                 list.Add(phMed);
    146                             }
    147                         }
    148 
    149 
    150                         phead.Medicines = list;
    151 
    152                         await _iPHRepo.UpdatePharmacyHead(phead);
    153 
    154156                    }
     157                   
    155158                }
    156159                PharmacyHead head = new PharmacyHead()
  • FarmatikoServices/Services/ProcessJSONService.cs

    r6e6f04b rf554983  
    1313using GemBox.Spreadsheet;
    1414using System.Text;
     15using FarmatikoData.FarmatikoRepoInterfaces;
    1516
    1617namespace FarmatikoServices.Services
     
    2021
    2122        private readonly ILogger _logger;
     23        private readonly IUpdateDataRepo _repo;
    2224        private readonly IService _service;
    23         public ProcessJSONService(ILogger logger, IService service)
     25        public ProcessJSONService(ILogger logger, IUpdateDataRepo repo, IService service)
    2426        {
    2527            _logger = logger;
     28            _repo = repo;
    2629            _service = service;
    2730        }
     
    7780                bool Success = ReadPharmaciesFromExcel(pathToSave1);
    7881                _logger.LogInformation(Success.ToString() + "1");
    79                /* Success = await ReadPharmaciesFromExcel(pathToSave2);
    80                 _logger.LogInformation(Success.ToString() + "2");*/
     82
     83               
    8184            }
    8285            catch (Exception e)
     
    8891
    8992        //Healthfacilities
    90         public async void GetProcessedHealthFacilitiesFromJSON()
     93        public void GetProcessedHealthFacilitiesFromJSON()
    9194        {
    9295            try
     
    115118                    healthFacility.Email = Convert.ToString(Email);
    116119                    healthFacility.Phone = Convert.ToString(Phone);
    117                     await _service.AddFacility(healthFacility);
    118 
    119                 }
    120 
     120                    _service.AddFacility(healthFacility);
     121
     122                }
     123               
    121124            }
    122125            catch (Exception e)
     
    126129            }
    127130        }
    128         //Pandemics
    129         public async void GetProcessedPandemicsFromJSONApi()
    130         {
    131             try
    132             {
    133                 var Date = DateTime.UtcNow.ToString("yyyy-MM-dd");
    134                 var client = new RestClient($"https://api.covid19tracking.narrativa.com/api/{Date}/country/north_macedonia");
    135                 var response = client.Execute(new RestRequest());
    136                 string original = response.Content;
    137                 var jsonResponsePandemic = JObject.Parse(original);
    138                 var global = JObject.Parse(jsonResponsePandemic.GetValue("total").ToString());
    139                 var TotalConfirmed = long.Parse(global.GetValue("today_confirmed").ToString());
    140                 var TotalDeaths = long.Parse(global.GetValue("today_deaths").ToString());
    141                 var TotalRecovered = long.Parse(global.GetValue("today_new_recovered").ToString());
    142 
    143                 var mk = JObject.Parse(jsonResponsePandemic.GetValue("dates").ToString());
    144 
    145                 var date = JObject.Parse(mk.GetValue(Date).ToString());
    146                 var country = JObject.Parse(date.GetValue("countries").ToString());
    147                 var mkd = JObject.Parse(country.GetValue("North Macedonia").ToString());
    148                 dynamic objP = mkd;
    149                 var TotalMk = Int32.Parse(objP.GetValue("today_confirmed").ToString());
    150                 var TotalDeathsMK = Int32.Parse(objP.GetValue("today_deaths").ToString());
    151                 var TotalRecoveredMK = Int32.Parse(objP.GetValue("today_recovered").ToString());
    152                 var NewMK = Int32.Parse(objP.GetValue("today_new_confirmed").ToString());
    153 
    154                 var Name = "Coronavirus";
    155                 var ActiveMk = TotalMk - (TotalRecoveredMK + TotalDeathsMK);
    156                 var ActiveGlobal = TotalConfirmed - (TotalRecovered + TotalDeaths);
    157 
    158                 Pandemic pandemic = new Pandemic(Name, TotalMk, ActiveMk, TotalDeathsMK, NewMK, TotalConfirmed, TotalDeaths, ActiveGlobal);
    159                 await _service.AddPandemic(pandemic);
    160             }
    161             catch (Exception e)
    162             {
    163                 _logger.LogInformation(e.Message);
    164             }
    165         }
     131             
    166132        //Healthcare workers
    167         public async void GetProcessedHealthcareWorkersFromJSON()
     133        public void GetProcessedHealthcareWorkersFromJSON()
    168134        {
    169135            try
     
    183149                    var Title = Convert.ToString(obj[3]);
    184150
    185                     HealthFacility facility = _service.GetFacilityJSON(Convert.ToString(FacilityName));
     151                    HealthFacility facility = _repo.GetFacilityJSON(Convert.ToString(FacilityName));
    186152
    187153                    if (facility != null && facility != default)
     
    196162                           );
    197163                        HealthcareWorker healthcareWorker = new HealthcareWorker(Name, Branch, Facility, Title);
    198                         await _service.AddWorker(healthcareWorker);
     164                        _service.AddWorker(healthcareWorker);
    199165                    }
    200166                    else
     
    209175                           );
    210176                        HealthcareWorker healthcareWorker = new HealthcareWorker(Name, Branch, Facility, Title);
    211                         await _service.AddWorker(healthcareWorker);
     177                        _service.AddWorker(healthcareWorker);
    212178                    }
    213179                   
    214180
    215181                }
     182               
    216183            }
    217184            catch (Exception e)
     
    221188        }
    222189        //Medicines
    223         public async void GetProcessedMedicinesFromJSON()
     190        public void GetProcessedMedicinesFromJSON()
    224191        {
    225192            try
     
    244211                    Medicine medicine = new Medicine(Convert.ToString(Name), Convert.ToString(Strength), Convert.ToString(Form), Convert.ToString(WayOfIssuing), Convert.ToString(Manufacturer), Price, Convert.ToString(Packaging));
    245212
    246                     await _service.AddMedicines(medicine);
     213                    _service.AddMedicines(medicine);
    247214                }
    248215            }
  • FarmatikoServices/Services/Service.cs

    r6e6f04b rf554983  
    144144            var Pharmacies = await _repository.GetPharmacies();
    145145            List<PharmacyDTO> pharmacies = new List<PharmacyDTO>();
    146            
    147             foreach(var pharm in Pharmacies)
     146
     147            foreach (var pharm in Pharmacies)
    148148            {
    149149                PharmacyDTO pharmacyDTO = new PharmacyDTO()
     
    222222            List<PharmacyDTO> pharmacies = new List<PharmacyDTO>();
    223223            var heads = await _phrepo.GetPharmacyHeadInfo();
    224            
     224
    225225            foreach (var pharm in SearchQuery)
    226226            {
     
    232232                    WorkAllTime = pharm.WorkAllTime
    233233                };
    234                
    235                 foreach(var head in heads.ToList())
     234
     235                foreach (var head in heads.ToList())
    236236                {
    237237                    if (head.Pharmacies.Contains(pharm))
     
    241241                    }
    242242                }
    243                
     243
    244244                pharmacies.Add(pharmacyDTO);
    245245            }
     
    256256        //POST (ADD NEW OBJECTS)
    257257        //za json(Sys updateer)
    258         public async Task AddFacility(HealthFacility healthFacilities)
    259         {
    260             if (healthFacilities != null)
    261                 await _repository.AddFacility(healthFacilities);
     258        public async Task AddFacility(HealthFacility healthFacility)
     259        {
     260            if (healthFacility != null)
     261            {
     262                var facilities = await _repository.GetFacilities();
     263                if (!facilities.Contains(healthFacility))
     264                {
     265                    await _repository.AddFacility(healthFacility);
     266                }
     267                else throw new Exception("The facility already exists.");
     268            }
    262269            else throw new Exception("Facility is null");
    263270        }
     
    266273        {
    267274            if (medicine != null)
    268                 await _repository.AddMedicines(medicine);
     275            {
     276                var medicines = await _repository.GetMedicinesAsync();
     277                if (!medicines.Contains(medicine))
     278                    await _repository.AddMedicines(medicine);
     279                else throw new Exception("Medicine already exists.");
     280            }
    269281            else throw new Exception("Medicine is null");
    270282        }
     
    277289        }
    278290        // Samo PharmacyHead i Admin imaat pristap
    279         public void AddPharmacy(Pharmacy pharmacy)
     291        public async void AddPharmacy(Pharmacy pharmacy)
    280292        {
    281293            if (pharmacy != null)
    282                 _repository.AddPharmacy(pharmacy);
     294            {
     295                var pharmacies = await _repository.GetPharmacies();
     296                if (!pharmacies.Contains(pharmacy))
     297                    await _repository.AddPharmacy(pharmacy);
     298                else throw new Exception("Pharmacy already exists.");
     299            }
    283300            else throw new Exception("Pharmacy is null");
    284301        }
    285302
    286303        // Ovaa kontrola ja ima samo admin
    287        
     304
    288305        public async Task<bool> AddPharmacyHead(PharmacyHeadDto pharmacyHead)
    289306        {
     
    324341        {
    325342            if (worker != null)
    326                 await _repository.AddWorker(worker);
     343            {
     344                var workers = await _repository.GetAllWorkers();
     345                if (!workers.Contains(worker))
     346                    await _repository.AddWorker(worker);
     347                else throw new Exception("Worker already exists.");
     348            }
    327349            else throw new Exception("Worker is null");
    328350        }
Note: See TracChangeset for help on using the changeset viewer.