var OrkaDataModul = angular.module('OrkaDataModule', []).config(['$httpProvider', function ($httpProvider) {
	$httpProvider.defaults.timeout = 5000;
	$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
}]);

OrkaDataModul.$inject = ['$scope', '$q'];
OrkaDataModul.service('OrkaDataService', function ($http, $rootScope, $q) {
    var vm = undefined;
    var Svc = this;
    this.Controller = function (cnt) {
        return $q(function (resolve, reject) {
            vm = cnt;
            vm.Gruplar = {};
            vm.Gruplar.TumIcerik = {};
            //vm.OrkaDataService.GrupCagir('GRP_PROJEHIZMET');
            //vm.OrkaDataService.SubeYukle();
            vm.OrkaDataService.KisaTanimlariYukle();
            vm.Subeler = {};
            resolve();

            try {



                if ($.OrkaTools !== undefined)
                    $.OrkaTools.Servis = this;

            } catch (e) {
                console.warn(e);
                reject(e);

            }
        });
    };
    this.HttpGet = function (urlz) {
        return $q(function (resolve, reject) {
            $http(
                {
                    method: 'GET',
                    url: urlz
                }).then(function successCallback(r) {
                    if (r.data.oSonuc)
                        resolve(r.data.oData);
                    else {
                        bootbox.alert('Uyarı Mesajı: ' + r.data.oHataMesaji);
                        console.log(r.data);
                        resolve(null);

                    } 
                }, function errorCallback(r) {
                    //bootbox.alert('Uyarı Mesajı: ' + r);
                    console.log(r);
                    reject(r);
                });
        });
    }
    this.HttpPost = function (urlz, dataz) {
        return $q(function (resolve, reject) {
            $http(
                {
                    method: 'POST',
                    url: urlz,
                    data: dataz,
                }).then(function successCallback(r) {
                   
                    if (r.data.oSonuc)
                        resolve(r.data.oData);
                    else {
                        bootbox.alert('-- UYARI -- <br/>' + r.data.oHataMesaji);

                        console.log(r.data);
                        resolve(null);

                    } 
                }, function errorCallback(r) {
                    //bootbox.alert('Uyarı Mesajı: ' + r);
                    console.log(r);
                    reject(false);
                });
        });
    }

    this.FilePost = function (urlz, dataz, headerz) {
        return $q(function (resolve, reject) {
            $http(
                {
                    method: 'POST',
                    url: urlz,
                    data: dataz,
                    headers: headerz
                }).then(function successCallback(r) {

                    if (r.data.oSonuc)
                        resolve(r.data.oData);
                    else {
                        bootbox.alert('Uyarı Mesajı: ' + r.data.oHataMesaji);
                        console.log(r.data);
                        resolve(null);

                    }
                }, function errorCallback(r) {
                    //bootbox.alert('Uyarı Mesajı: ' + r);
                    console.log(r);
                    reject(false);
                });
        });
    }

    this.GrupAciklamasiGetir = function (SecilenGrup, Kod) {
        if (Kod != null && Kod != undefined) {
            var Data = Enumerable.from(vm.Gruplar[SecilenGrup]).where(function (x) { return x._KOD === Kod }).toArray();
            if (Data !== undefined || Data !== null) {
                if (Data.length > 00) {
                    return Data[0]._ACIKLAMA;
                }
            }
            return "";
        }
    };

    this.KisaAciklamaGetir = function (GrupAdi, Kod) {
        if (GrupAdi != null && Kod != undefined) {
            var Data = Enumerable.from(vm.KisaTanimlar).where(function (x) { return x._GRUPADI == GrupAdi && x._SAYISALDEGERI == Kod }).toArray();
            if (Data !== undefined || Data !== null) {
                if (Data.length > 00) {
                    return Data[0]._ACIKLAMA;
                }
            }
        }
    };

    this.KisaTanimlariYukle = function () {
        this.HttpGet("/Genel/GetKisaTanimlar").then(function (r) {
            vm.KisaTanimlar = r;
        });
    };

    this.SubeAdi = function (kod) {
        if (kod !== null && kod !== undefined) {
            var Data = Enumerable.from(vm.Subeler.Tumu).where(function (x) { return x.ID == kod }).toArray();
            if (Data !== undefined || Data !== null)
                if (Data.length > 00) {
                    return Data[0].subekisaadi;
                }
                else return "";
        }

    }

    this.SubeYukle = function () {
        this.HttpGet('/Genel/TumSubeler').then(function (r) {
            vm.Subeler.Tumu = r;
        });

        this.HttpGet("/Genel/GetSubeler").then(function (rr) {
            vm.Subeler.Secilebilir_Subeler = rr.Subeler;
            vm.Subeler.AktifSube = rr.AktifSube;
        });

    };



});
