# Pastebin Ot7DJcyj angular.module('prioritizeApp').factory('projectService', ['$http', 'attachmentService','taskService','attachmentListService','taskListService','APIUrls', function ($http, attachmentService, taskService,attachmentListService, taskListService, APIUrls) { function Project() { var proj = this; proj.projectId = ''; proj.name = ''; proj.description = ''; proj.requestById = ''; proj.projectManagerId = ''; proj.departmentId = ''; proj.priority = ''; proj.createDate = ''; proj.status = ''; proj.tasks = []; proj.attachments = []; proj.AddTask = function () { proj.tasks.push(taskService.Task({ taskId: 0, projectId: proj.projectId, status: 'A' })); }; proj.AddAttachment = function () { proj.attachments.push(attachmentService.Attachment({ projectId: proj.projectId, })); }; proj.ReloadProject = function () { return $http.get(APIUrls.getUrl('projects') + '/' + proj.projectId). then(function (response) { for ( var i = 0; i < response.data.length; i++) { var obj = response.data[i]; for (var prop in obj) { proj[prop] = obj[prop]; } } }); }; proj.DenyProject = function () { return $http.post(APIUrls.getUrl('projectProposeDeny', proj.projectId)); }; proj.ReloadTasks = function () { //clear tasks //while(proj.tasks.length > 0) { // proj.tasks.pop(); //} //load tasks var Tasks = taskListService.Tasks(); Tasks.GetTasksByProjectId(proj.projectId); proj.tasks = Tasks.tasks; //for ( var i = 0; i < Tasks.length; i++) { // proj.tasks.push(Tasks[i]); //} }; proj.ReloadAttachments = function () { //clear attachments while(proj.attachments.length > 0) { proj.attachments.pop(); } //load attachments var Attachments = attachmentListService.Attachments(); Attachments.GetAttachmentsByProjectId(proj.projectId); for ( var i = 0; i < Attachments.length; i++) { proj.attachments.push(Attachments[i]); } }; proj.ProposeProjectAndTasks = function () { return $http.post(APIUrls.getUrl('projectPropose'),proj); }; } return { Project: function () { var project = new Project(); var date = new Date(); project.createDate = date.toDateString(); project.projectId = 0; return project; }, ProjectById: function (id) { var project = new Project(); project.projectId = id; project.ReloadProject(); project.ReloadTasks(); project.ReloadAttachments(); return project; }, }; }]);