import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
import { <%= classify(name) %>Service } from '../service/<%= dasherize(name) %>-service/<%= dasherize(name) %>.service';
import { <%= classify(name) %>Dto } from '../sample/<%= dasherize(name) %>-dto';

@Injectable({
  providedIn: 'root'
})
export class <%= classify(name) %>Resolver implements Resolve<<%= classify(name) %>Dto> {

  constructor(private <%= name %>Service: <%= classify(name) %>Service, private router: Router) {

  }

  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): <%= classify(name) %>Dto | Observable<<%= classify(name) %>Dto> | Promise<<%= classify(name) %>Dto> {
    let id = route.paramMap.get('id');
    return this.<%= name %>Service.getOne(Number.parseInt(id));
  }

}