ok, app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { IonicStorageModule } from '@ionic/storage'
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { LoginPage } from '../pages/login-page/login-page';
import { SignupPage } from '../pages/signup-page/signup-page';
import { Auth } from '../providers/auth';
import { Data } from '../providers/data';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { HttpModule } from '@angular/http';
import { CalendarPage } from '../pages/calendar-page/calendar-page';
import { OptionsPage } from '../pages/options-page/options-page';
import { ScreensPage } from '../pages/screens-page/screens-page';
import { TasksPage } from '../pages/tasks-page/tasks-page';
import { MoreContentPage } from '../pages/tasks-page/tasks-page';
import { WorkTimePage } from '../pages/work-time-page/work-time-page';
import { PasswordRestoringPage } from '../pages/password-restoring-page/password-restoring-page';
import { ChangePasswordPage } from '../pages/change-password-page/change-password-page';
import { TaskCreatePage } from '../pages/task-create-page/task-create-page';
import { File } from '@ionic-native/file';
import { FilePath } from '@ionic-native/file-path';
import { Camera } from '@ionic-native/camera';
import { Transfer } from '@ionic-native/transfer';
import { Screenshot } from '@ionic-native/screenshot';
@NgModule({
declarations: [
MyApp,
HomePage,
LoginPage,
SignupPage,
CalendarPage,
OptionsPage,
ScreensPage,
TasksPage,
WorkTimePage,
PasswordRestoringPage,
ChangePasswordPage,
MoreContentPage,
TaskCreatePage
],
imports: [
HttpModule,
BrowserModule,
IonicModule.forRoot(MyApp),
IonicStorageModule.forRoot()
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage,
LoginPage,
SignupPage,
CalendarPage,
OptionsPage,
ScreensPage,
TasksPage,
WorkTimePage,
PasswordRestoringPage,
ChangePasswordPage,
MoreContentPage,
TaskCreatePage
],
providers: [HttpModule, IonicErrorHandler, Auth, Data, SplashScreen, StatusBar, Camera, Transfer, FilePath, File, Screenshot]
})
export class AppModule {}
and data.ts provider
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
import { Storage } from '@ionic/storage';
import { Screenshot } from '@ionic-native/screenshot';
import { Platform } from 'ionic-angular';
import Rx from 'rxjs/Rx';
import 'rxjs/add/operator/map';
@Injectable()
export class Data {
public Projects: any;
public Project: any;
public Tasks: any;
public Task: any;
public Companies: any;
public Company: any;
public Source: any;
public Subscription: any;
public Image: any;
public IsWorking: boolean;
public TotalHoursAllProjects: any;
public TotalHoursAllProjectsToday: any;
public TotalHoursCurrentProject: any;
public TotalHoursCurrentProjectToday: any;
constructor(public http: Http,
public storage: Storage,
public platform: Platform,
private screenshot: Screenshot) {
}
startPing(details) {
let startingTime = new Date(Math.ceil(new Date().getTime() / 600000) * 600000);
return new Promise((resolve, reject) => {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
this.Source = Rx.Observable.timer(startingTime, 600000).timeInterval().pluck('interval');
this.makeScreenshot();
this.Subscription = this.Source
.subscribe(data => {
let pingDetails = {
Token: details.Token,
ProjectId: details.ProjectId,
Timestamp: new Date().toISOString(),
IsOldPing: false,
Image: this.Image
};
console.log(pingDetails);
this.http.post('http://localhost:63203/api/Ping', JSON.stringify(pingDetails), { headers: headers })
.map(res => res.json())
.subscribe(data => {
this.showPingToast();
this.TotalHoursAllProjects = data.TotalHoursAllProjects;
this.TotalHoursAllProjectsToday = data.TotalHoursAllProjectsToday;
this.TotalHoursCurrentProject = data.TotalHoursCurrentProject;
this.TotalHoursCurrentProjectToday = data.TotalHoursCurrentProjectToday;
resolve(data);
}, (err) => {
reject(err);
});
});
});
}
makeScreenshot() {
this.platform.ready().then(() => {
this.screenshot.URI(80).then((result) => {
console.log(result);
}, (err) => {
console.log(err);
});
});
}