Index: Farmatiko/Controllers/FarmatikoController.cs
===================================================================
--- Farmatiko/Controllers/FarmatikoController.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ Farmatiko/Controllers/FarmatikoController.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -26,7 +26,6 @@
             //_JSONservice.DownloadPharmaciesExcel();
             //_JSONservice.GetProcessedHealthcareWorkersFromJSON();
-            //_JSONservice.GetProcessedHealthFacilitiesFromJSON();
-            //_JSONservice.GetProcessedMedicinesFromJSON();
-            //_JSONservice.GetProcessedPandemicsFromJSONApi();
+            //await _JSONservice.GetProcessedHealthFacilitiesFromJSON();
+            //await _JSONservice.GetProcessedMedicinesFromJSON();
         }
         [HttpGet]
Index: Farmatiko/Program.cs
===================================================================
--- Farmatiko/Program.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ Farmatiko/Program.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -3,6 +3,8 @@
 using System.Linq;
 using System.Threading.Tasks;
+using FarmatikoServices.Services;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
 using Microsoft.Extensions.Logging;
@@ -22,4 +24,5 @@
                 {
                     webBuilder.UseStartup<Startup>();
+                    
                 });
     }
Index: Farmatiko/Startup.cs
===================================================================
--- Farmatiko/Startup.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ Farmatiko/Startup.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -18,4 +18,9 @@
 using FarmatikoServices.Infrastructure;
 using System;
+using Quartz;
+using Quartz.Impl;
+using Quartz.Spi;
+using FarmatikoServices.Services.JobDTO;
+
 namespace Farmatiko
 {
@@ -23,5 +28,4 @@
     {
         readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
-
         public Startup(IConfiguration configuration)
         {
@@ -53,9 +57,12 @@
             services.AddEntityFrameworkNpgsql().AddDbContext<FarmatikoDataContext>(opt => opt.UseNpgsql(connectionString));
 
+
+
             services.AddScoped<IPHRepo, PHRepo>();
             services.AddScoped<IRepository, Repository>();
             services.AddScoped<IAdminRepo, AdminRepo>();
+            services.AddTransient<IUpdateDataRepo, UpdateDataRepo>();
 
-            services.AddScoped<IPHService, PHService>();
+            services.AddTransient<IPHService, PHService>();
             services.AddTransient<IAdminService, AdminService>();
             services.AddTransient<IService, Service>();
@@ -64,6 +71,4 @@
 
             services.AddTransient<ILogger, Logger<ProcessJSONService>>();
-
-            // services.AddTransient<ISystemService, SystemService>();
 
 
@@ -116,4 +121,18 @@
                 o.MemoryBufferThreshold = int.MaxValue;
             });*/
+
+            services.AddSingleton<IJobFactory, SingletonUpdateDataJobFactory>();
+            services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
+
+            services.AddTransient<UpdateDataJob>();
+            services.AddSingleton(new JobSchedule(
+            jobType: typeof(UpdateDataJob),
+            cronExpression: "0/30 * * * * ?"));
+
+
+            // "0 0 12 */7 * ?"
+
+
+            services.AddHostedService<UpdateDataHostedService>();
 
         }
Index: Farmatiko/appsettings.json
===================================================================
--- Farmatiko/appsettings.json	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ Farmatiko/appsettings.json	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -24,4 +24,5 @@
   },
   "SecretKey": "PEJcK2bD4E2BKdNmAlUl",
-  "TokenIssuer": "FARMATIKOISSUER"
+  "TokenIssuer": "FARMATIKOISSUER",
+  "ifStartup": "true"
 }
Index: FarmatikoData/FarmatikoRepo/Repository.cs
===================================================================
--- FarmatikoData/FarmatikoRepo/Repository.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ FarmatikoData/FarmatikoRepo/Repository.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -274,5 +274,5 @@
             var PHreqs = await _context.PHRequests.Where(x => x.Head.Id.Equals(PHead.Id)).FirstOrDefaultAsync();
             PHead.Pharmacies.Select(x => x.PheadId = null);
-            //PHead.Pharmacies.Select(x => x.PharmacyHead = null);
+            PHead.Pharmacies.Select(x => x.PharmacyHead = null);
             _context.PHRequests.Remove(PHreqs);
             _context.PharmacyHeads.Remove(PHead);
Index: FarmatikoData/FarmatikoRepo/UpdateDataRepo.cs
===================================================================
--- FarmatikoData/FarmatikoRepo/UpdateDataRepo.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
+++ FarmatikoData/FarmatikoRepo/UpdateDataRepo.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -0,0 +1,62 @@
+﻿using FarmatikoData.FarmatikoRepoInterfaces;
+using FarmatikoData.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FarmatikoData.FarmatikoRepo
+{
+    public class UpdateDataRepo : IUpdateDataRepo
+    {
+        private readonly FarmatikoDataContext _context;
+        public UpdateDataRepo(FarmatikoDataContext context)
+        {
+            _context = context;
+        }
+        public async Task AddPharmacy(Pharmacy pharmacy)
+        {
+            pharmacy.Id = 0;
+            if (pharmacy.Id == 0)
+            {
+                var phars = _context.Pharmacies.Select(x => new Pharmacy
+                {
+                    Name = x.Name,
+                    Location = x.Location,
+                    Address = x.Address
+                }).ToList();
+                var pharms = phars.Where(x => x.Name.Equals(pharmacy.Name) && x.Location.Equals(pharmacy.Location) && x.Address.Equals(pharmacy.Address)).ToList();
+                if (pharms is null || pharms.Count() == 0)
+                {
+                    await _context.Pharmacies.AddAsync(pharmacy);
+                    _context.SaveChanges();
+                }
+
+            }
+        }
+
+        public async Task AddFacility(HealthFacility healthFacility)
+        {
+            await _context.HealthFacilities.AddAsync(healthFacility);
+            _context.SaveChanges();
+        }
+        public async Task AddWorker(HealthcareWorker Worker)
+        {
+            await _context.HealthcareWorkers.AddAsync(Worker);
+            _context.SaveChanges();
+        }
+
+        public async Task AddMedicines(Medicine medicine)
+        {
+            await _context.Medicines.AddAsync(medicine);
+            _context.SaveChanges();
+        }
+
+        public HealthFacility GetFacilityJSON(string healthFacility)
+        {
+            var Facility = _context.HealthFacilities.Where(x => x.Name.Equals(healthFacility)).FirstOrDefault();
+            return Facility;
+        }
+    }
+}
Index: FarmatikoData/FarmatikoRepoInterfaces/IUpdateDataRepo.cs
===================================================================
--- FarmatikoData/FarmatikoRepoInterfaces/IUpdateDataRepo.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
+++ FarmatikoData/FarmatikoRepoInterfaces/IUpdateDataRepo.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -0,0 +1,14 @@
+﻿using FarmatikoData.Models;
+using System.Threading.Tasks;
+
+namespace FarmatikoData.FarmatikoRepoInterfaces
+{
+    public interface IUpdateDataRepo
+    {
+        Task AddFacility(HealthFacility healthFacility);
+        Task AddMedicines(Medicine medicine);
+        Task AddPharmacy(Pharmacy pharmacy);
+        Task AddWorker(HealthcareWorker Worker);
+        HealthFacility GetFacilityJSON(string healthFacility);
+    }
+}
Index: FarmatikoServices/FarmatikoServiceInterfaces/IProcessJSONService.cs
===================================================================
--- FarmatikoServices/FarmatikoServiceInterfaces/IProcessJSONService.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ FarmatikoServices/FarmatikoServiceInterfaces/IProcessJSONService.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -10,5 +10,4 @@
     {
         void GetProcessedHealthFacilitiesFromJSON();
-        void GetProcessedPandemicsFromJSONApi();
         void GetProcessedHealthcareWorkersFromJSON();
         void GetProcessedMedicinesFromJSON();
Index: FarmatikoServices/FarmatikoServiceInterfaces/IService.cs
===================================================================
--- FarmatikoServices/FarmatikoServiceInterfaces/IService.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ FarmatikoServices/FarmatikoServiceInterfaces/IService.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -2,5 +2,4 @@
 using FarmatikoData.Models;
 using System.Collections.Generic;
-using System.Linq;
 using System.Threading.Tasks;
 
@@ -9,33 +8,32 @@
     public interface IService
     {
-        //GET
+        Task AddFacility(HealthFacility healthFacility);
+        Task AddMedicines(Medicine medicine);
+        Task AddPandemic(Pandemic pandemic);
+        void AddPharmacy(Pharmacy pharmacy);
+        Task<bool> AddPharmacyHead(PharmacyHeadDto pharmacyHead);
+        Task AddWorker(HealthcareWorker worker);
         Task<IEnumerable<HealthcareWorker>> GetAllWorkers();
-        Task<IEnumerable<HealthcareWorker>> SearchWorkers(string query);
-        Task<HealthcareWorker> GetWorker(int id);
         Task<IEnumerable<HealthFacility>> GetFacilities();
-        Task<IEnumerable<HealthFacility>> SearchFacilities(string query);
         Task<HealthFacility> GetFacility(int id);
         HealthFacility GetFacilityJSON(string healthFacility);
         Task<Medicine> GetMedicine(int id);
-        Task<IEnumerable<MedicineDTO>> SearchMedicines(string query);
         Task<List<MedicineDTO>> GetMedicines();
         Pandemic GetPandemic();
         Task<List<PharmacyDTO>> GetPharmacies();
+        Task<Pharmacy> GetPharmacy(int id);
+        Task<HealthcareWorker> GetWorker(int id);
+        Task RemoveMedicine(Medicine medicine);
+        Task RemovePharmacy(Pharmacy pharmacy);
+        Task RemovePharmacyHead(int Id);
+        Task<IEnumerable<HealthFacility>> SearchFacilities(string query);
+        Task<IEnumerable<MedicineDTO>> SearchMedicines(string query);
         Task<IEnumerable<PharmacyDTO>> SearchPharmacies(string query);
-        Task<Pharmacy> GetPharmacy(int id);
-        //POST
-        Task AddWorker(HealthcareWorker worker);
-        Task AddFacility(HealthFacility healthFacilities);
-        void AddPharmacy(Pharmacy pharmacy);
-        Task<bool> AddPharmacyHead(PharmacyHeadDto pharmacyHead);
-        Task AddMedicines(Medicine medicine);
-        Task AddPandemic(Pandemic pandemic);
+        Task<IEnumerable<HealthcareWorker>> SearchWorkers(string query);
         Task UpdateFacility(HealthFacility healthFacilities);
-        Task RemoveMedicine(Medicine medicine);
-        Task RemovePharmacyHead(int Id);
+        Task UpdateMedicine(Medicine medicine);
         Task UpdatePandemic(Pandemic pandemic);
-        Task RemovePharmacy(Pharmacy pharmacy);
+        Task UpdatePharmacy(Pharmacy pharmacy);
         Task UpdateWorker(HealthcareWorker worker);
-        Task UpdatePharmacy(Pharmacy pharmacy);
     }
 }
Index: FarmatikoServices/FarmatikoServices.csproj
===================================================================
--- FarmatikoServices/FarmatikoServices.csproj	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ FarmatikoServices/FarmatikoServices.csproj	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -11,4 +11,5 @@
     <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
     <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
+    <PackageReference Include="Quartz.AspNetCore" Version="3.2.4" />
     <PackageReference Include="RestSharp" Version="106.11.7" />
     <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.8.0" />
Index: FarmatikoServices/Services/JobDTO/JobSchedule.cs
===================================================================
--- FarmatikoServices/Services/JobDTO/JobSchedule.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
+++ FarmatikoServices/Services/JobDTO/JobSchedule.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -0,0 +1,19 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace FarmatikoServices.Services.JobDTO
+{
+    public class JobSchedule
+    {
+        public JobSchedule(Type jobType, string cronExpression)
+        {
+            JobType = jobType;
+            CronExpression = cronExpression;
+        }
+
+        public Type JobType { get; }
+        public string CronExpression { get; }
+    }
+}
+
Index: FarmatikoServices/Services/PHService.cs
===================================================================
--- FarmatikoServices/Services/PHService.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ FarmatikoServices/Services/PHService.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -83,74 +83,77 @@
                             PHMedicines.Add(medicine);
                     }
-
-                    if (!pharmacyHead.Medicines.Equals(PHMedicines))
-                    {
-                        /*
-                         * USELESS
-                         * if (pharmacyHead.Medicines.Count() == 0)
+                    foreach(var phMed in PHMedicines)
+                    {
+                        if (!pharmacyHead.Medicines.Contains(phMed))
                         {
-                            phead.Medicines = null;
-                            int PHMId = phead.Medicines.Select(x => x.Id).Single();
-                            int phId = phead.Medicines.Select(x => x.PheadId).Single();
-                            int medId = phead.Medicines.Select(x => x.MedicineId).Single();
-                            _iPHRepo.DeletePHMedicine(PHMId, phId, medId);
-                            return;
-                        }*/
-                        if (phead.Medicines != null && phead.Medicines.Count() > 0)
-                        {
-                            foreach (var med in pharmacyHead.Medicines)
-                            {
-                                Medicine medicine = new Medicine()
+                            /*
+                             * USELESS
+                             * if (pharmacyHead.Medicines.Count() == 0)
+                            {
+                                phead.Medicines = null;
+                                int PHMId = phead.Medicines.Select(x => x.Id).Single();
+                                int phId = phead.Medicines.Select(x => x.PheadId).Single();
+                                int medId = phead.Medicines.Select(x => x.MedicineId).Single();
+                                _iPHRepo.DeletePHMedicine(PHMId, phId, medId);
+                                return;
+                            }*/
+                            if (phead.Medicines != null && phead.Medicines.Count() > 0)
+                            {
+                                foreach (var med in pharmacyHead.Medicines)
                                 {
-                                    Name = med.Name,
-                                    Form = med.Form,
-                                    Manufacturer = med.Manufacturer,
-                                    Medicines = med.Medicines,
-                                    Packaging = med.Packaging,
-                                    Price = med.Price,
-                                    Strength = med.Strength,
-                                    WayOfIssuing = med.WayOfIssuing
-                                };
-
-                                PharmacyHeadMedicine phm = new PharmacyHeadMedicine()
+                                    Medicine medicine = new Medicine()
+                                    {
+                                        Name = med.Name,
+                                        Form = med.Form,
+                                        Manufacturer = med.Manufacturer,
+                                        Medicines = med.Medicines,
+                                        Packaging = med.Packaging,
+                                        Price = med.Price,
+                                        Strength = med.Strength,
+                                        WayOfIssuing = med.WayOfIssuing
+                                    };
+
+                                    PharmacyHeadMedicine phm = new PharmacyHeadMedicine()
+                                    {
+                                        PheadId = phead.Id,
+                                        Head = phead,
+                                        MedicineId = med.Id,
+                                        Medicine = medicine
+                                    };
+
+                                    bool ifExists = phead.Medicines.Contains(phm);
+                                    if (!ifExists)
+                                        list.Add(phm);
+
+                                }
+                            }
+                            else
+                            {
+                                foreach (var med in pharmacyHead.Medicines)
                                 {
-                                    PheadId = phead.Id,
-                                    Head = phead,
-                                    MedicineId = med.Id,
-                                    Medicine = medicine
-                                };
-
-                                bool ifExists = phead.Medicines.Contains(phm);
-                                if (!ifExists)
-                                    list.Add(phm);
-
+                                    PharmacyHead head1 = new PharmacyHead()
+                                    {
+                                        Id = pharmacyHead.Id,
+                                        Name = pharmacyHead.Name,
+                                        Email = pharmacyHead.Email,
+                                        Password = pharmacyHead.Password
+                                    };
+                                    PharmacyHeadMedicine phmed = new PharmacyHeadMedicine()
+                                    {
+                                        Head = head1,
+                                        Medicine = med
+                                    };
+                                    list.Add(phmed);
+                                }
                             }
+
+
+                            phead.Medicines = list;
+
+                            await _iPHRepo.UpdatePharmacyHead(phead);
+
                         }
-                        else
-                        {
-                            foreach (var med in pharmacyHead.Medicines)
-                            {
-                                PharmacyHead head1 = new PharmacyHead()
-                                {
-                                    Id = pharmacyHead.Id,
-                                    Name = pharmacyHead.Name,
-                                    Email = pharmacyHead.Email,
-                                    Password = pharmacyHead.Password
-                                };
-                                PharmacyHeadMedicine phMed = new PharmacyHeadMedicine()
-                                {
-                                    Head = head1,
-                                    Medicine = med
-                                };
-                                list.Add(phMed);
-                            }
-                        }
-
-
-                        phead.Medicines = list;
-
-                        await _iPHRepo.UpdatePharmacyHead(phead);
-
                     }
+                    
                 }
                 PharmacyHead head = new PharmacyHead()
Index: FarmatikoServices/Services/ProcessJSONService.cs
===================================================================
--- FarmatikoServices/Services/ProcessJSONService.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ FarmatikoServices/Services/ProcessJSONService.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -13,4 +13,5 @@
 using GemBox.Spreadsheet;
 using System.Text;
+using FarmatikoData.FarmatikoRepoInterfaces;
 
 namespace FarmatikoServices.Services
@@ -20,8 +21,10 @@
 
         private readonly ILogger _logger;
+        private readonly IUpdateDataRepo _repo;
         private readonly IService _service;
-        public ProcessJSONService(ILogger logger, IService service)
+        public ProcessJSONService(ILogger logger, IUpdateDataRepo repo, IService service)
         {
             _logger = logger;
+            _repo = repo;
             _service = service;
         }
@@ -77,6 +80,6 @@
                 bool Success = ReadPharmaciesFromExcel(pathToSave1);
                 _logger.LogInformation(Success.ToString() + "1");
-               /* Success = await ReadPharmaciesFromExcel(pathToSave2);
-                _logger.LogInformation(Success.ToString() + "2");*/
+
+                
             }
             catch (Exception e)
@@ -88,5 +91,5 @@
 
         //Healthfacilities
-        public async void GetProcessedHealthFacilitiesFromJSON()
+        public void GetProcessedHealthFacilitiesFromJSON()
         {
             try
@@ -115,8 +118,8 @@
                     healthFacility.Email = Convert.ToString(Email);
                     healthFacility.Phone = Convert.ToString(Phone);
-                    await _service.AddFacility(healthFacility);
-
-                }
-
+                    _service.AddFacility(healthFacility);
+
+                }
+                
             }
             catch (Exception e)
@@ -126,44 +129,7 @@
             }
         }
-        //Pandemics
-        public async void GetProcessedPandemicsFromJSONApi()
-        {
-            try
-            {
-                var Date = DateTime.UtcNow.ToString("yyyy-MM-dd");
-                var client = new RestClient($"https://api.covid19tracking.narrativa.com/api/{Date}/country/north_macedonia");
-                var response = client.Execute(new RestRequest());
-                string original = response.Content;
-                var jsonResponsePandemic = JObject.Parse(original);
-                var global = JObject.Parse(jsonResponsePandemic.GetValue("total").ToString());
-                var TotalConfirmed = long.Parse(global.GetValue("today_confirmed").ToString());
-                var TotalDeaths = long.Parse(global.GetValue("today_deaths").ToString());
-                var TotalRecovered = long.Parse(global.GetValue("today_new_recovered").ToString());
-
-                var mk = JObject.Parse(jsonResponsePandemic.GetValue("dates").ToString());
-
-                var date = JObject.Parse(mk.GetValue(Date).ToString());
-                var country = JObject.Parse(date.GetValue("countries").ToString());
-                var mkd = JObject.Parse(country.GetValue("North Macedonia").ToString());
-                dynamic objP = mkd;
-                var TotalMk = Int32.Parse(objP.GetValue("today_confirmed").ToString());
-                var TotalDeathsMK = Int32.Parse(objP.GetValue("today_deaths").ToString());
-                var TotalRecoveredMK = Int32.Parse(objP.GetValue("today_recovered").ToString());
-                var NewMK = Int32.Parse(objP.GetValue("today_new_confirmed").ToString());
-
-                var Name = "Coronavirus";
-                var ActiveMk = TotalMk - (TotalRecoveredMK + TotalDeathsMK);
-                var ActiveGlobal = TotalConfirmed - (TotalRecovered + TotalDeaths);
-
-                Pandemic pandemic = new Pandemic(Name, TotalMk, ActiveMk, TotalDeathsMK, NewMK, TotalConfirmed, TotalDeaths, ActiveGlobal);
-                await _service.AddPandemic(pandemic);
-            }
-            catch (Exception e)
-            {
-                _logger.LogInformation(e.Message);
-            }
-        }
+              
         //Healthcare workers
-        public async void GetProcessedHealthcareWorkersFromJSON()
+        public void GetProcessedHealthcareWorkersFromJSON()
         {
             try
@@ -183,5 +149,5 @@
                     var Title = Convert.ToString(obj[3]);
 
-                    HealthFacility facility = _service.GetFacilityJSON(Convert.ToString(FacilityName));
+                    HealthFacility facility = _repo.GetFacilityJSON(Convert.ToString(FacilityName));
 
                     if (facility != null && facility != default)
@@ -196,5 +162,5 @@
                            );
                         HealthcareWorker healthcareWorker = new HealthcareWorker(Name, Branch, Facility, Title);
-                        await _service.AddWorker(healthcareWorker);
+                        _service.AddWorker(healthcareWorker);
                     }
                     else
@@ -209,9 +175,10 @@
                            );
                         HealthcareWorker healthcareWorker = new HealthcareWorker(Name, Branch, Facility, Title);
-                        await _service.AddWorker(healthcareWorker);
+                        _service.AddWorker(healthcareWorker);
                     }
                     
 
                 }
+                
             }
             catch (Exception e)
@@ -221,5 +188,5 @@
         }
         //Medicines
-        public async void GetProcessedMedicinesFromJSON()
+        public void GetProcessedMedicinesFromJSON()
         {
             try
@@ -244,5 +211,5 @@
                     Medicine medicine = new Medicine(Convert.ToString(Name), Convert.ToString(Strength), Convert.ToString(Form), Convert.ToString(WayOfIssuing), Convert.ToString(Manufacturer), Price, Convert.ToString(Packaging));
 
-                    await _service.AddMedicines(medicine);
+                    _service.AddMedicines(medicine);
                 }
             }
Index: FarmatikoServices/Services/Service.cs
===================================================================
--- FarmatikoServices/Services/Service.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ FarmatikoServices/Services/Service.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -144,6 +144,6 @@
             var Pharmacies = await _repository.GetPharmacies();
             List<PharmacyDTO> pharmacies = new List<PharmacyDTO>();
-            
-            foreach(var pharm in Pharmacies)
+
+            foreach (var pharm in Pharmacies)
             {
                 PharmacyDTO pharmacyDTO = new PharmacyDTO()
@@ -222,5 +222,5 @@
             List<PharmacyDTO> pharmacies = new List<PharmacyDTO>();
             var heads = await _phrepo.GetPharmacyHeadInfo();
-            
+
             foreach (var pharm in SearchQuery)
             {
@@ -232,6 +232,6 @@
                     WorkAllTime = pharm.WorkAllTime
                 };
-                
-                foreach(var head in heads.ToList())
+
+                foreach (var head in heads.ToList())
                 {
                     if (head.Pharmacies.Contains(pharm))
@@ -241,5 +241,5 @@
                     }
                 }
-                
+
                 pharmacies.Add(pharmacyDTO);
             }
@@ -256,8 +256,15 @@
         //POST (ADD NEW OBJECTS)
         //za json(Sys updateer)
-        public async Task AddFacility(HealthFacility healthFacilities)
-        {
-            if (healthFacilities != null)
-                await _repository.AddFacility(healthFacilities);
+        public async Task AddFacility(HealthFacility healthFacility)
+        {
+            if (healthFacility != null)
+            {
+                var facilities = await _repository.GetFacilities();
+                if (!facilities.Contains(healthFacility))
+                {
+                    await _repository.AddFacility(healthFacility);
+                }
+                else throw new Exception("The facility already exists.");
+            }
             else throw new Exception("Facility is null");
         }
@@ -266,5 +273,10 @@
         {
             if (medicine != null)
-                await _repository.AddMedicines(medicine);
+            {
+                var medicines = await _repository.GetMedicinesAsync();
+                if (!medicines.Contains(medicine))
+                    await _repository.AddMedicines(medicine);
+                else throw new Exception("Medicine already exists.");
+            }
             else throw new Exception("Medicine is null");
         }
@@ -277,13 +289,18 @@
         }
         // Samo PharmacyHead i Admin imaat pristap
-        public void AddPharmacy(Pharmacy pharmacy)
+        public async void AddPharmacy(Pharmacy pharmacy)
         {
             if (pharmacy != null)
-                _repository.AddPharmacy(pharmacy);
+            {
+                var pharmacies = await _repository.GetPharmacies();
+                if (!pharmacies.Contains(pharmacy))
+                    await _repository.AddPharmacy(pharmacy);
+                else throw new Exception("Pharmacy already exists.");
+            }
             else throw new Exception("Pharmacy is null");
         }
 
         // Ovaa kontrola ja ima samo admin
-        
+
         public async Task<bool> AddPharmacyHead(PharmacyHeadDto pharmacyHead)
         {
@@ -324,5 +341,10 @@
         {
             if (worker != null)
-                await _repository.AddWorker(worker);
+            {
+                var workers = await _repository.GetAllWorkers();
+                if (!workers.Contains(worker))
+                    await _repository.AddWorker(worker);
+                else throw new Exception("Worker already exists.");
+            }
             else throw new Exception("Worker is null");
         }
Index: FarmatikoServices/Services/SingletonUpdateDataJobFactory.cs
===================================================================
--- FarmatikoServices/Services/SingletonUpdateDataJobFactory.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
+++ FarmatikoServices/Services/SingletonUpdateDataJobFactory.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -0,0 +1,25 @@
+﻿using Microsoft.Extensions.DependencyInjection;
+using Quartz;
+using Quartz.Spi;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace FarmatikoServices.Services
+{
+    public class SingletonUpdateDataJobFactory : IJobFactory
+    {
+        private readonly IServiceProvider _serviceProvider;
+        public SingletonUpdateDataJobFactory(IServiceProvider serviceProvider)
+        {
+            _serviceProvider = serviceProvider;
+        }
+
+        public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
+        {
+            return _serviceProvider.GetRequiredService(bundle.JobDetail.JobType) as IJob;
+        }
+
+        public void ReturnJob(IJob job) { }
+    }
+}
Index: rmatikoServices/Services/SystemService.cs
===================================================================
--- FarmatikoServices/Services/SystemService.cs	(revision 6e6f04bb8fa0cd3f1bbb45ecb8e62ad866c693e5)
+++ 	(revision )
@@ -1,15 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace FarmatikoServices.Services
-{
-    public interface ISystemService
-    {
-        public void ParseHTML();
-    }
-    public class SystemService
-    {
-
-    }
-}
Index: FarmatikoServices/Services/UpdateDataHostedService.cs
===================================================================
--- FarmatikoServices/Services/UpdateDataHostedService.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
+++ FarmatikoServices/Services/UpdateDataHostedService.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -0,0 +1,71 @@
+﻿using FarmatikoServices.Services.JobDTO;
+using Microsoft.Extensions.Hosting;
+using Quartz;
+using Quartz.Spi;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace FarmatikoServices.Services
+{
+    public class UpdateDataHostedService : IHostedService
+    {
+        private readonly ISchedulerFactory _schedulerFactory;
+        private readonly IJobFactory _jobFactory;
+        private readonly IEnumerable<JobSchedule> _jobSchedules;
+
+        public UpdateDataHostedService(
+            ISchedulerFactory schedulerFactory,
+            IJobFactory jobFactory,
+            IEnumerable<JobSchedule> jobSchedules)
+        {
+            _schedulerFactory = schedulerFactory;
+            _jobSchedules = jobSchedules;
+            _jobFactory = jobFactory;
+        }
+        public IScheduler Scheduler { get; set; }
+
+        public async Task StartAsync(CancellationToken cancellationToken)
+        {
+            Scheduler = await _schedulerFactory.GetScheduler(cancellationToken);
+            Scheduler.JobFactory = _jobFactory;
+
+            foreach (var jobSchedule in _jobSchedules)
+            {
+                var job = CreateJob(jobSchedule);
+                var trigger = CreateTrigger(jobSchedule);
+
+                await Scheduler.ScheduleJob(job, trigger, cancellationToken);
+            }
+
+            await Scheduler.Start(cancellationToken);
+        }
+
+        public async Task StopAsync(CancellationToken cancellationToken)
+        {
+            await Scheduler?.Shutdown(cancellationToken);
+        }
+
+        private static IJobDetail CreateJob(JobSchedule schedule)
+        {
+            var jobType = schedule.JobType;
+            return JobBuilder
+                .Create(jobType)
+                .WithIdentity(jobType.FullName)
+                .WithDescription(jobType.Name)
+                .Build();
+        }
+
+        private static ITrigger CreateTrigger(JobSchedule schedule)
+        {
+            return TriggerBuilder
+                .Create()
+                .WithIdentity($"{schedule.JobType.FullName}.trigger")
+                .WithCronSchedule(schedule.CronExpression)
+                .WithDescription(schedule.CronExpression)
+                .Build();
+        }
+    }
+}
Index: FarmatikoServices/Services/UpdateDataJob.cs
===================================================================
--- FarmatikoServices/Services/UpdateDataJob.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
+++ FarmatikoServices/Services/UpdateDataJob.cs	(revision f5549831aca5184035e0b7e7fc9913b84086f7c5)
@@ -0,0 +1,45 @@
+﻿using FarmatikoData;
+using FarmatikoServices.FarmatikoServiceInterfaces;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FarmatikoServices.Services
+{
+    [DisallowConcurrentExecution]
+    public class UpdateDataJob : IJob
+    {
+        private readonly ILogger<UpdateDataJob> _logger;
+        private readonly IProcessJSONService _JSONservice;
+        private readonly IServiceScopeFactory _provider;
+        public UpdateDataJob(ILogger<UpdateDataJob> logger, IProcessJSONService JSONservice, IServiceScopeFactory provider)
+        {
+            _logger = logger;
+            _JSONservice = JSONservice;
+            _provider = provider;
+        }
+       
+        public async Task Execute(IJobExecutionContext context)
+        {
+            _logger.LogInformation("UpdateData Job started");
+            using (var scope = _provider.CreateScope())
+            {
+                // Resolve the Scoped service
+                var service = scope.ServiceProvider.GetRequiredService<FarmatikoDataContext>();
+                _logger.LogInformation("UpdateData Job started");
+                _JSONservice.DownloadPharmaciesExcel();
+                _JSONservice.GetProcessedHealthcareWorkersFromJSON();
+                _JSONservice.GetProcessedHealthFacilitiesFromJSON();
+                _JSONservice.GetProcessedMedicinesFromJSON();
+                
+            }
+            
+            await Task.CompletedTask;
+        }
+    }
+}
