angular.module('fbMocks') .factory('personService', ['$q', function ( $q: ng.IQService ): fb.IMockPersonService { var mockBase: fb.MockBase = new fb.MockBase($q); var resolve = function (type: fb.RequestType, identifier: string, returnValue: any): void { mockBase.resolve(mockBase.requestIdentifier(type, identifier), returnValue); }; var reject = function (type: fb.RequestType, identifier: string, returnValue: any): void { mockBase.reject(mockBase.requestIdentifier(type, identifier), returnValue); }; var getPendingRequests = function (): string[] { return mockBase.getPendingRequests(); }; var get = function (id: number): { $promise: ng.IPromise; person: fb.Models_IPersonDO; } { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.GET, '' + id)) }; var ret = { $promise: res.$promise, person: null }; res.$promise.then(function (data) { if (data.Persontyp === 'F') { ret.person = new fb.FysiskPerson2DO(data); return ret; } else { ret.person = new fb.JuridiskPersonDO(data); return ret; } }); return ret; }; var addFysiskPerson = function (person: fb.ObjektWizardFysiskPerson2DO): fb.FysiskPerson2DO { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.ADD, '')) }; var newPersonDO = new fb.FysiskPerson2DO(res); newPersonDO.PersonId = new fb.ChangeTrack(Math.floor(Math.random() * 9999999) + 1); return new fb.FysiskPerson2DO(res); }; var addJuridiskPerson = function (person: fb.ObjektWizardJuridiskPersonDO): fb.JuridiskPersonDO { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.ADD, '')) }; var newPersonDO = new fb.JuridiskPersonDO(res); newPersonDO.PersonId = new fb.ChangeTrack(Math.floor(Math.random() * 9999999) + 1); //newPersonDO.PersonId.value = Math.floor(Math.random() * 9999999) + 1; return newPersonDO; }; var saveFysiskPerson = function (person: fb.FysiskPerson2DO): fb.FysiskPerson2DO { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.GET, '' + 5)) }; return new fb.FysiskPerson2DO(res); }; var saveJuridiskPerson = function (person: fb.JuridiskPersonDO): fb.JuridiskPersonDO { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.GET, '' + 5)) }; return new fb.JuridiskPersonDO(res); }; var getLaangivarePerPersonKategori = function (personId: number): fb.List { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, '' + personId)) }; return new fb.List(res, fb.LaangivareLO); }; var getAdministrativaKontaktpersoner = function (personId: number): fb.List { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, '' + personId)) }; return new fb.List(res, fb.AdministrativKontaktperson); }; var getAdministrativaKontaktpersonerList = function (personId: number): fb.List { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, '' + personId)) }; return new fb.List(res, fb.AdministrativKontaktpersonLO); }; var addAdministrativKontaktperson = function (administrativKontaktperson: fb.AdministrativKontaktperson): fb.AdministrativKontaktperson { administrativKontaktperson.PersonId.originalValue = 4; administrativKontaktperson.PersonId.value = 4; (administrativKontaktperson).Checksum = new fb.ChangeTrack('¤#"FDS#RS#', administrativKontaktperson, 'AdministrativKontaktperson.Checksum'); return administrativKontaktperson; }; var saveAdministrativKontaktperson = function (administrativKontaktperson: fb.AdministrativKontaktperson): fb.AdministrativKontaktperson { return administrativKontaktperson; }; var deleteAdministrativKontaktperson = function (administrativKontaktperson: fb.AdministrativKontaktperson): ng.IPromise { return null; }; var getKoppladeKontakter = function (personId: number, soekTyp: number): fb.List { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, '' + personId + soekTyp)) }; return new fb.List(res, fb.KoppladKontakt); }; var getSamarbetsparter = function (personkategoriId: number): fb.List { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, 'Samarbetsparter/' + personkategoriId)) }; return new fb.List(res, fb.Samarbetspart); } var getFysiskPersonLO = function (personId: number): fb.FysiskPersonLO { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, '' + personId)) }; return new fb.FysiskPersonLO(res); }; var getJuridiskPersonLO = function (personId: number): fb.JuridiskPersonLO { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, '' + personId)) }; return new fb.JuridiskPersonLO(res); }; var getAktivaMedarbetareFoerKontor = function (kontorId: number): fb.List { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, 'AllaAktivaMedarbetareOvillkorligen/' + kontorId)) }; return new fb.List(res, fb.Samarbetspart); } var getObjIntressentKontaktList = function (personId: number, soekTyp: number): fb.List { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, 'ObjIntressentKontaktList/' + personId + '/' + soekTyp)) }; return new fb.List(res, fb.Person_ObjIntressentKontaktLO); } var getUtskicksinformation = function (personIds: number[]): fb.List { var res = { $promise: mockBase.createRequest(mockBase.requestIdentifier(fb.RequestType.QUERY, 'Utskicksinformation/')) }; return new fb.List(res, fb.Models_PersonLO); } var arkivera = function (personIds: number[]): fb.ResourceBase { return null; } var avArkivera = function (personIds: number[]): fb.ResourceBase { return null; } var remove = function (personIds: number[]): fb.ResourceBase { return null; } var changeKundtyp = function (obj: fb.ChangeKundtypWO): fb.ResourceBase { return null; } var aendraAnsvarigAnvaendareTill = function (personId: number, kontaktIdn: number[]): fb.ResourceBase { return null; } var changePersonTaggar = function (add: number, changePersonTaggWO: fb.Person_ChangePersonTaggWO): fb.ResourceBase { return null; } var dubblettSammanslaa = function (objekt: fb.DubblettsammanslagningDO): fb.DubblettsammanslagenPersonWO { return null; } var dubblettSoekning = function (personId: number): fb.List { return null }; var getPersonInfoFoerDubblettsammanslagning = function (personIds: number[]): fb.List { return null }; var spaerraMobilnummer = function (personId: number, normaliseratMobilnummer: string, spaerra: boolean): fb.ResourceBase { return null; } var spaerraMejladress = function (personId: number, mejladress: string, spaerra: boolean): fb.ResourceBase { return null; } var konverteraImporteradPersonTillFasitPerson = function (personId): fb.ResourceBase { return null; } function bytSpraakKunskaper(personId: number, spraakLista: fb.SpraakWO): fb.ResourceBase { return null; } function haemtaSpraakKunskaper(personId: number): fb.SpraakWO { return null; }; return { get: get, addFysiskPerson: addFysiskPerson, addJuridiskPerson: addJuridiskPerson, saveFysiskPerson: saveFysiskPerson, saveJuridiskPerson: saveJuridiskPerson, getLaangivarePerPersonKategori: getLaangivarePerPersonKategori, getAdministrativaKontaktpersoner: getAdministrativaKontaktpersoner, getAdministrativaKontaktpersonerList: getAdministrativaKontaktpersonerList, addAdministrativKontaktperson: addAdministrativKontaktperson, saveAdministrativKontaktperson: saveAdministrativKontaktperson, deleteAdministrativKontaktperson: deleteAdministrativKontaktperson, resolve: resolve, reject: reject, getPendingRequests: getPendingRequests, getKoppladeKontakter: getKoppladeKontakter, getSamarbetsparter: getSamarbetsparter, getFysiskPersonLO: getFysiskPersonLO, getJuridiskPersonLO: getJuridiskPersonLO, getAktivaMedarbetareFoerKontor: getAktivaMedarbetareFoerKontor, getObjIntressentKontaktList: getObjIntressentKontaktList, getUtskicksinformation: getUtskicksinformation, arkivera: arkivera, avArkivera: avArkivera, remove: remove, aendraAnsvarigAnvaendareTill: aendraAnsvarigAnvaendareTill, changePersonTaggar: changePersonTaggar, dubblettSammanslaa: dubblettSammanslaa, dubblettSoekning: dubblettSoekning, getPersonInfoFoerDubblettsammanslagning: getPersonInfoFoerDubblettsammanslagning, spaerraMobilnummer: spaerraMobilnummer, spaerraMejladress: spaerraMejladress, konverteraImporteradPersonTillFasitPerson: konverteraImporteradPersonTillFasitPerson, changeKundTyp: changeKundtyp, bytSpraakKunskaper: bytSpraakKunskaper, haemtaSpraakKunskaper: haemtaSpraakKunskaper }; }]);