Index: Farmatiko/ClientApp/src/app/admin/admin.component.ts
===================================================================
--- Farmatiko/ClientApp/src/app/admin/admin.component.ts	(revision 6f203afb65825e725a381cb0a4a623eda9e95e55)
+++ Farmatiko/ClientApp/src/app/admin/admin.component.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -18,5 +18,12 @@
   public heads: IPharmacyHead[] = [];
   public requests: IPharmacyHeadRequest[] = [];
-  public head: IPharmacyHead;
+  public head: IPharmacyHead = {
+    id: '',
+    PharmacyMedicines: null,
+    Pharmacy: null,
+    Email: '',
+    Passwd: '',
+    Name: ''
+  };
 
   constructor(private dataService: DataService, private dialog: MatDialog, private snackBar: MatSnackBar, private router: Router) {
@@ -50,5 +57,12 @@
         (err: any) => console.log(err),
         () => console.log("PharmacyHead inserted"));
-    this.head = null;
+    this.head = {
+      id: '',
+      PharmacyMedicines: null,
+      Pharmacy: null,
+      Email: '',
+      Passwd: '',
+      Name: ''
+    };
   }
 
Index: Farmatiko/ClientApp/src/app/app.module.ts
===================================================================
--- Farmatiko/ClientApp/src/app/app.module.ts	(revision 6f203afb65825e725a381cb0a4a623eda9e95e55)
+++ Farmatiko/ClientApp/src/app/app.module.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -25,4 +25,5 @@
 import { EditPharmacyHeadDialogComponent } from './dialogs/edit-pharmacy-head-dialog/edit-pharmacy-head-dialog.component';
 import { PharmacyHeadDialogComponent } from './nav-menu/dialogs/pharmacy-head-dialog/pharmacy-head-dialog.component';
+import { AuthGuard } from './shared/auth.guard';
 
 @NgModule({
@@ -53,6 +54,5 @@
       { path: 'koronavirus', component: KoronaComponent },
       { path: 'admin', component: AdminComponent },
-      { path: 'dashboard', component: DashboardComponent },
-      { path: 'dashboard/:token', component: DashboardComponent },
+      { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] },
       { path: 'login', component: LoginComponent }
     ]),
Index: Farmatiko/ClientApp/src/app/dashboard/dashboard.component.ts
===================================================================
--- Farmatiko/ClientApp/src/app/dashboard/dashboard.component.ts	(revision 6f203afb65825e725a381cb0a4a623eda9e95e55)
+++ Farmatiko/ClientApp/src/app/dashboard/dashboard.component.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -8,4 +8,5 @@
 import { MedicineDialogComponent } from '../dialogs/medicine-dialog/medicine-dialog.component';
 import { ActivatedRoute, Router } from '@angular/router';
+import { AuthService } from '../shared/auth.service';
 
 @Component({
@@ -20,19 +21,11 @@
   public filteredMedicines: IMedicine[] = [];
   public request: IPharmacyHeadRequest;
-  public token: string;
 
-  constructor(private dataService: DataService, private dialog: MatDialog, private snackBar: MatSnackBar, private router: Router, private route: ActivatedRoute) {
+  constructor(private dataService: DataService, private authService: AuthService, private dialog: MatDialog, private snackBar: MatSnackBar, private router: Router, private route: ActivatedRoute) {
 
   }
 
   ngOnInit(): void {
-    this.token = this.route.snapshot.params['token'];
-    this.dataService.getPharmacyHead(this.token)
-        .subscribe((hd: IPharmacyHead) => {
-          this.head = hd;
-        },
-        (err: any) => console.log(err),
-        () => console.log('Head data retrieved'));
-
+    this.head = this.authService.headValue;
     this.dataService.getPharmacies()
         .subscribe((pharmacy: IPharmacy[]) => {
Index: Farmatiko/ClientApp/src/app/korona/korona.component.html
===================================================================
--- Farmatiko/ClientApp/src/app/korona/korona.component.html	(revision 6f203afb65825e725a381cb0a4a623eda9e95e55)
+++ Farmatiko/ClientApp/src/app/korona/korona.component.html	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -5,5 +5,5 @@
     <br />
     <div class="col text-center">
-      <h2>{{korona[0].name}}</h2>
+      <h2>{{korona.name}}</h2>
       <p>статистика</p>
     </div>
@@ -12,5 +12,5 @@
     <div class="col">
       <div class="counter" *ngIf="korona">
-        <i class="fa fa-code fa-2x">{{korona[0].totalMK}}</i>
+        <i class="fa fa-code fa-2x">{{korona.totalMK}}</i>
         <h2 class="timer count-title count-number"></h2>
         <p class="count-text ">Вкупно случаи во земјата</p>
@@ -19,5 +19,5 @@
     <div class="col">
       <div class="counter" *ngIf="korona">
-        <i class="fa fa-coffee fa-2x">{{korona[0].activeMK}}</i>
+        <i class="fa fa-coffee fa-2x">{{korona.activeMK}}</i>
         <h2 class="timer count-title count-number"></h2>
         <p class="count-text ">Активни случаи во земјата</p>
@@ -26,5 +26,5 @@
     <div class="col">
       <div class="counter" *ngIf="korona">
-        <i class="fa fa-lightbulb-o fa-2x">{{korona[0].deathsMK}}</i>
+        <i class="fa fa-lightbulb-o fa-2x">{{korona.deathsMK}}</i>
         <h2 class="timer count-title count-number"></h2>
         <p class="count-text ">Смртни случаи во земјата</p>
@@ -33,5 +33,5 @@
     <div class="col">
       <div class="counter" *ngIf="korona">
-        <i class="fa fa-bug fa-2x">{{korona[0].newMK}}</i>
+        <i class="fa fa-bug fa-2x">{{korona.newMK}}</i>
         <h2 class="timer count-title count-number"></h2>
         <p class="count-text ">Нови случаи во земјата</p>
@@ -42,5 +42,5 @@
     <div class="col">
       <div class="counter" *ngIf="korona">
-        <i class="fa fa-bug fa-2x">{{korona[0].totalGlobal}}</i>
+        <i class="fa fa-bug fa-2x">{{korona.totalGlobal}}</i>
         <h2 class="timer count-title count-number"></h2>
         <p class="count-text ">Вкупно случаи глобално</p>
@@ -49,5 +49,5 @@
     <div class="col">
       <div class="counter" *ngIf="korona">
-        <i class="fa fa-bug fa-2x">{{korona[0].activeGlobal}}</i>
+        <i class="fa fa-bug fa-2x">{{korona.activeGlobal}}</i>
         <h2 class="timer count-title count-number"></h2>
         <p class="count-text ">Активни случаи глобално</p>
@@ -56,5 +56,5 @@
     <div class="col">
       <div class="counter" *ngIf="korona">
-        <i class="fa fa-bug fa-2x">{{korona[0].deathsGlobal}}</i>
+        <i class="fa fa-bug fa-2x">{{korona.deathsGlobal}}</i>
         <h2 class="timer count-title count-number"></h2>
         <p class="count-text ">Смртни случаи глобално</p>
Index: Farmatiko/ClientApp/src/app/korona/korona.component.ts
===================================================================
--- Farmatiko/ClientApp/src/app/korona/korona.component.ts	(revision 6f203afb65825e725a381cb0a4a623eda9e95e55)
+++ Farmatiko/ClientApp/src/app/korona/korona.component.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -9,5 +9,5 @@
 })
 export class KoronaComponent implements OnInit {
-  public korona: IPandemic[];
+  public korona: IPandemic;
 
   constructor(private dataService: DataService) {
@@ -17,5 +17,5 @@
   ngOnInit(): void {
     this.dataService.getPandemic()
-        .subscribe((res: IPandemic[]) => {
+        .subscribe((res: IPandemic) => {
           this.korona = res;
           console.log(this.korona);
Index: Farmatiko/ClientApp/src/app/login/login.component.ts
===================================================================
--- Farmatiko/ClientApp/src/app/login/login.component.ts	(revision 6f203afb65825e725a381cb0a4a623eda9e95e55)
+++ Farmatiko/ClientApp/src/app/login/login.component.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -2,5 +2,6 @@
 import { FormGroup, FormControl, Validators } from '@angular/forms';
 import { Router, ActivatedRoute } from '@angular/router';
-import { DataService } from '../shared/data.service';
+import { first } from 'rxjs/operators';
+import { AuthService } from '../shared/auth.service';
 
 @Component({
@@ -15,5 +16,5 @@
   errorMessage: string;
 
-  constructor(private dataService: DataService,private router: Router, private route: ActivatedRoute) {
+  constructor(private authService: AuthService,private router: Router, private route: ActivatedRoute) {
     this.loginForm = new FormGroup({
       email: new FormControl('', [Validators.required, Validators.email]),
@@ -26,15 +27,14 @@
 
   loginPharmacyHead() {
-    this.dataService.loginPharmacyHead(this.email, this.passwd)
-                .subscribe((id: Number) => {
-                  if(id) {
-                    this.router.navigate(['/dashboard/' + id]);
-                  }
-                  else {
-                    this.errorMessage = 'There was a problem signing in!';
-                    console.log(this.errorMessage);
-                  }
-                },
-                (err: any) => console.log(err));
+    this.authService.login(this.email,this.passwd)
+        .pipe(first())
+        .subscribe((data) => {
+            if(data) {
+              this.router.navigate(['/dashboard']);
+            }},
+            (err: any) => {
+                this.errorMessage = err.toString();
+            });
+    this.loginForm.reset();
   }
 }
Index: Farmatiko/ClientApp/src/app/shared/auth.guard.ts
===================================================================
--- Farmatiko/ClientApp/src/app/shared/auth.guard.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
+++ Farmatiko/ClientApp/src/app/shared/auth.guard.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -0,0 +1,24 @@
+import { Injectable } from '@angular/core';
+import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';
+import { Observable } from 'rxjs';
+
+import { AuthService } from './auth.service';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class AuthGuard implements CanActivate {
+  constructor(private router: Router, private authService: AuthService) {
+
+  }
+
+  canActivate(next: ActivatedRouteSnapshot,state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
+    const head = this.authService.headValue;
+    if(head) {
+      return true;
+    }
+    this.router.navigate(['/login']);
+    return false;
+  }
+  
+}
Index: Farmatiko/ClientApp/src/app/shared/auth.service.ts
===================================================================
--- Farmatiko/ClientApp/src/app/shared/auth.service.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
+++ Farmatiko/ClientApp/src/app/shared/auth.service.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -0,0 +1,54 @@
+import { Injectable } from '@angular/core';
+import { Router } from '@angular/router';
+import { HttpClient, HttpErrorResponse } from '@angular/common/http';
+import { BehaviorSubject, Observable } from 'rxjs';
+import { catchError, map } from 'rxjs/operators';
+import { IPharmacyHead } from './interfaces';
+import { DataService } from './data.service';
+
+
+@Injectable({
+  providedIn: 'root'
+})
+export class AuthService {
+  private headSubject: BehaviorSubject<IPharmacyHead>;
+  public head: Observable<IPharmacyHead>;
+  basePharmacyHead: string = '/api/pharmacyhead';
+
+  constructor(private router: Router, private http: HttpClient, private dataService: DataService) {
+    this.headSubject = new BehaviorSubject<IPharmacyHead>(JSON.parse(localStorage.getItem('head')));
+    this.head = this.headSubject.asObservable();
+  }
+
+  public get headValue(): IPharmacyHead {
+    return this.headSubject.value;
+  }
+
+  login(email: string, passwd: string) : Observable<any> {
+    let postData = {email : email ,password : passwd};
+    return this.http.post<any>(this.basePharmacyHead + '/login', postData)
+                .pipe(
+                    map((data) => {
+                        localStorage.setItem('head', JSON.stringify(data));
+                        this.headSubject.next(data);
+                        return data;
+                    }),
+                    catchError(this.handleError)
+                );
+  }
+
+  logout() {
+      localStorage.removeItem('user');
+      this.headSubject.next(null);
+      this.router.navigate(['/login']);
+  }
+
+  private handleError(error: HttpErrorResponse) {
+    console.error('server error:', error);
+    if (error.error instanceof Error) {
+      let errMessage = error.error.message;
+      return Observable.throw(errMessage);
+    }
+    return Observable.throw(error || 'ASP.NET Core server error');
+  }
+}
Index: Farmatiko/ClientApp/src/app/shared/data.service.ts
===================================================================
--- Farmatiko/ClientApp/src/app/shared/data.service.ts	(revision 6f203afb65825e725a381cb0a4a623eda9e95e55)
+++ Farmatiko/ClientApp/src/app/shared/data.service.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -1,3 +1,3 @@
-import { Injectable,  } from '@angular/core';
+import { Injectable } from '@angular/core';
 import { HttpClient, HttpErrorResponse } from '@angular/common/http';
 
@@ -95,6 +95,6 @@
 
 
-    getPandemic() : Observable<IPandemic[]> {
-        return this.http.get<IPandemic[]>(this.basePandemicUrl)
+    getPandemic() : Observable<IPandemic> {
+        return this.http.get<IPandemic>(this.basePandemicUrl)
                    .pipe(catchError(this.handleError));
     }
@@ -143,18 +143,4 @@
                         catchError(this.handleError)
                    );
-    }
-    loginPharmacyHead(email: string, passwd: string) : Observable<any> {
-        let postData = {email : email ,password :passwd};
-        return this.http.post<any>(this.basePharmacyHead + '/login', postData)
-                   .pipe(
-                        map((data) => {
-                            return data;
-                        }),
-                        catchError(this.handleError)
-                    );
-    }
-    getPharmacyHead(id: string) : Observable<IPharmacyHead> {
-        return this.http.get<IPharmacyHead>(this.basePharmacyHead + '/' + id)
-                   .pipe(catchError(this.handleError));
     }
     //PharmacyHead POST
Index: Farmatiko/ClientApp/src/app/shared/interfaces.ts
===================================================================
--- Farmatiko/ClientApp/src/app/shared/interfaces.ts	(revision 6f203afb65825e725a381cb0a4a623eda9e95e55)
+++ Farmatiko/ClientApp/src/app/shared/interfaces.ts	(revision 993189ebdd8ea7f88583498d4188a29688f0f069)
@@ -29,4 +29,5 @@
 
 export interface IPandemic {
+    id?: string;
     name?: string;
     totalMK?: number;
