// web service proxy for project
webservices.factory('projectService', ['$http', 'apiConfig', function ($http, apiConfig) {
    'use strict';
    return {
        getServiceList: function () {
            return $http.get('/project/listService', apiConfig.create());
        },
        getProjectList: function (orgID, serviceID, projectYear) {
            return $http.get('/project/display?orgID=' + orgID + '&serviceID=' + serviceID + '&projectYear=' + projectYear, apiConfig.create());
        },
        getOneProjectByDbNameServiceIdAndPeriodId: function (dbName, serviceID, periodId) {
            return $http.get('/project/getOneProjectByDbNameServiceIdAndPeriodId?dbName=' + dbName + '&serviceID=' + serviceID + '&periodId=' + periodId, apiConfig.create());
        },
        

        getAllProjectList: function (orgID, serviceID, projectYear) {
            return $http.get('/project/getAllProjectList?orgID=' + orgID + '&serviceID=' + serviceID + (projectYear==null?'':'&projectYear=' + projectYear), apiConfig.create());
        },
        getProjectByID: function (projectID) {
            return $http.get('/project/getProject?projectId=' + projectID, apiConfig.create());
        },
        getProjectExceptSelected: function (userId) {
            return $http.get('/project/displayExceptSelected?userID=' + userId, apiConfig.create());
        },
        getSingleProject: function (projectID) {
            return $http.get('/project/displaySingle?projectID=' + projectID, apiConfig.create());
        },
        addProject: function (projectDto) {
            return $http.post('/project/add', projectDto, apiConfig.create());
        },
        updateProject: function (projectDto) {
            return $http.put('/project/update', projectDto, apiConfig.create());
        },
        getProjectClientList: function (projectID) {
            return $http.get('/project/getProjectClientList', apiConfig.create());
        },
        getProjectStatus: function (projectId, periodId) {
            return $http.get('/ProjectStatusManage/getProjectStatus/'+ projectId + '/' + periodId, apiConfig.createVat());
        },
        setProjectStatus: function (projectId, periodId, status) {
            return $http.get('/ProjectStatusManage/setProjectStatus/' + projectId + '/' + periodId + '/' + status, apiConfig.createVat());
        },
        isImportedAnyData: function (periodId,projectId) {
            return $http.get('/ProjectStatusManage/isImportedAnyData/' + periodId + '/' + projectId, apiConfig.createVat());
        },
        isProjectStatusExisted: function (projectId, periodId) {
            return $http.get('/ProjectStatusManage/isProjectStatusExisted/' + projectId + '/' + periodId, apiConfig.createVat());
        },
        getProjectAllStatus: function (projectId) {
            return $http.get('/project/getProjectAllStatus/' + projectId, apiConfig.create());
        }
    };
}]);