"use strict";
var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var route_1 = require("./route");
var redis = require("redis");
var StatsRoute = (function (_super) {
    __extends(StatsRoute, _super);
    function StatsRoute() {
        return _super.call(this) || this;
    }
    StatsRoute.create = function (router) {
        console.log("[StatsRoute::create] Creating stats route.");
        router.get("/stats", function (req, res, next) {
            new StatsRoute().stats(req, res, next);
        });
        router.get("/stats/delete", function (req, res, next) {
            new StatsRoute().statsDelete(req, res, next);
        });
        router.get("/stats/data", function (req, res, next) {
            new StatsRoute().statsData(req, res, next);
        });
    };
    StatsRoute.prototype.stats = function (req, res, next) {
        var jsonStats = {
            title: 'Statistike',
            vsebujeIme: '0',
            vsebujePriimek: '0',
            vsebujeUlico: '0',
            vsebujeObliko: '0',
            vsebujeDavcno: '0',
            vsebujeMaticno: '0',
            vsebujeFilter: '0',
            obdelanih: '0',
            niziBrezOP: '0'
        };
        var vse = 9;
        var koncano = 0;
        StatsRoute.client.get('stats:vsebujeIme', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeIme = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujePriimek', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujePriimek = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeUlico', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeUlico = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeObliko', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeObliko = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeDavcno', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeDavcno = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeMaticno', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeMaticno = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeFilter', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeFilter = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:obdelanih', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.obdelanih = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:niziBrezOP', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.niziBrezOP = result;
                koncano++;
                if (vse == koncano) {
                    res.render('stats', jsonStats);
                }
            }
        });
    };
    StatsRoute.prototype.statsDelete = function (req, res, next) {
        var vse = 9;
        var koncano = 0;
        StatsRoute.client.set('stats:vsebujeIme', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
        StatsRoute.client.set('stats:vsebujePriimek', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
        StatsRoute.client.set('stats:vsebujeUlico', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
        StatsRoute.client.set('stats:vsebujeObliko', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
        StatsRoute.client.set('stats:vsebujeDavcno', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
        StatsRoute.client.set('stats:vsebujeMaticno', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
        StatsRoute.client.set('stats:vsebujeFilter', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
        StatsRoute.client.set('stats:obdelanih', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
        StatsRoute.client.set('stats:niziBrezOP', '0', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: err, stack: err } });
            }
            else {
                koncano++;
                if (vse == koncano) {
                    res.redirect('/stats');
                }
            }
        });
    };
    StatsRoute.prototype.statsData = function (req, res, next) {
        var jsonStats = {
            title: 'Statistike',
            vsebujeIme: '0',
            vsebujePriimek: '0',
            vsebujeUlico: '0',
            vsebujeObliko: '0',
            vsebujeDavcno: '0',
            vsebujeMaticno: '0',
            vsebujeFilter: '0',
            obdelanih: '0',
            niziBrezOP: '0'
        };
        var vse = 9;
        var koncano = 0;
        StatsRoute.client.get('stats:vsebujeIme', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeIme = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujePriimek', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujePriimek = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeUlico', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeUlico = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeObliko', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeObliko = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeDavcno', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeDavcno = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeMaticno', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeMaticno = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:vsebujeFilter', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.vsebujeFilter = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:obdelanih', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.obdelanih = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
        StatsRoute.client.get('stats:niziBrezOP', function (err, result) {
            if (err) {
                res.render('error', { messge: err.message, error: { status: 0, stack: 0 } });
            }
            else {
                jsonStats.niziBrezOP = result;
                koncano++;
                if (vse == koncano) {
                    res.send(jsonStats);
                }
            }
        });
    };
    return StatsRoute;
}(route_1.BaseRoute));
StatsRoute.client = redis.createClient();
exports.StatsRoute = StatsRoute;
