import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from "@angular/Router" import { Injectable,Inject, OnDestroy } from "@angular/core"; import { HttpClient } from "@angular/Common/http"; import { Observable, Subject } from "rxjs"; import { ContactViewModel } from "../Interfaces/ContactViewModel"; import { DyCommon } from "../Common"; @Injectable() export class EFileResolver implements Resolve,OnDestroy{ private http: HttpClient; constructor(@Inject(HttpClient) _http: HttpClient) { this.http = _http; } private ngUnsubscribe: Subject = new Subject(); ngOnDestroy(): any { this.ngUnsubscribe.next(); this.ngUnsubscribe.complete(); } resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): ContactViewModel | Observable | Promise { console.log(route); var promise = new Promise((fres, rej) => { if (route.params["id"] == undefined) { this.http.get(`bbapi/efile/${route.params["formType"]}/Create/2021`).takeUntil(this.ngUnsubscribe).subscribe(res => { var mod: ContactViewModel = res; EFileResolver.SetupModel(mod); // res.contact.recordTypeId = res.contact.recordTypeId.split(","); fres(mod) }); } else { this.http.get(`bbapi/efile/${route.params["formType"]}/${route.params["id"]}`).takeUntil(this.ngUnsubscribe).subscribe(res => { var mod: ContactViewModel = res; EFileResolver.SetupModel(mod); // res.contact.recordTypeId = res.contact.recordTypeId.split(","); fres(mod) }); } }) return promise; } public static SetupModel(cvm) { var returnData = cvm.returnData; if (returnData == undefined && cvm.submission != undefined) { if (cvm.submission.form1099Records != undefined) { returnData = cvm.submission.form1099Records.returnData } if (cvm.submission.FormW2Records != undefined) { returnData = cvm.submission.FormW2Records.returnData } } returnData.forEach((w2) => { if (w2.w2FormData != undefined) { if (w2.w2FormData.states == undefined) { w2.w2FormData.states = []; } if (w2.w2FormData.states[0] == undefined) { w2.w2FormData.states[0] = {}; } if (w2.w2FormData.states[1] == undefined) { w2.w2FormData.states[1] = {}; } if (w2.w2FormData.states[0].localityData == undefined) { w2.w2FormData.states[0].localityData = [{}]; } if (w2.w2FormData.states[1].localityData == undefined) { w2.w2FormData.states[1].localityData = [{}]; } } if (w2.mISCFormData != undefined) { if (w2.mISCFormData.states == undefined) { w2.mISCFormData.states = []; } if (w2.mISCFormData.states[0] == undefined) { w2.mISCFormData.states[0] = {}; } if (w2.mISCFormData.states[1] == undefined) { w2.mISCFormData.states[1] = {}; } if (w2.mISCFormData.states[0].localityData == undefined) { w2.mISCFormData.states[0].localityData = [{}]; } if (w2.mISCFormData.states[1].localityData == undefined) { w2.mISCFormData.states[1].localityData = [{}]; } } }) } }