コード例 #1
0
ファイル: ProjectService.cs プロジェクト: zquall/Makiwara
 public ProjectResponse GetProjectByCode(ProjectRequest request)
 {
     var response = new ProjectResponse();
     if (request.ProjectCode != string.Empty)
     {
         var projectFound = Olympus._Enterprise.Projects.Where(x => x.Code == request.ProjectCode).SingleOrDefault();
         if (projectFound != null)
         {
             //response.Project = MapperPaths.Map(projectFound);
             response.Project = Mapper.Map<ProjectDto>(projectFound);
         }
     }
     return response;
 }
コード例 #2
0
ファイル: ProjectService.cs プロジェクト: zquall/Makiwara
        // Get Project Inform list
        public ProjectResponse GetActiveProjects()
        {
            var response = new ProjectResponse { ProjectList = new List<ProjectDto>() };

            // Search active project informs
            var projectsFound = Olympus._Enterprise.Projects.Where(x => x.StateId == (int)EnumCatalog.State.Active)
                             .OrderByDescending(y => y.Code)
                             .ToList();
            if (projectsFound.Count > 0)
            {
                // Detach all childs before mapping to avoid
                // sending not needed data on the request
                foreach (var project in projectsFound)
                {
                    Olympus._Enterprise.Detach(project);
                }
                response.ProjectList = Mapper.Map<List<Project>, List<ProjectDto>>(projectsFound);
            }
            return response;
        }
コード例 #3
0
        public ProjectResponse UpdateInventoyOutputs(ProjectRequest request)
        {
            var inventoryOutputs = GetInventoryOutputs(request.Project.Code);
            var response = new ProjectResponse();

            foreach(var tmpTask in request.Project.Tasks)
            {
                var taskOutputs = inventoryOutputs.Where(x => x.idTask.Equals(tmpTask)).ToList(); //Salidas de la tarea que se analiza

                //Se sacan los recursos de las salidas que pertenecen a una tarea especifica
                var resources = new List<SAL_DETALLE>();
                foreach(var tmpOutput in taskOutputs)
                    resources.AddRange(tmpOutput.SAL_DETALLE);

                //Se suman las salidas de cada recurso y se le asigna a lo real usado
                foreach(var tmpResource in tmpTask.Resources)
                {
                    tmpResource.RealUsed = resources.Where(x => x.INV_Codigo.Equals(tmpResource.Code)).Sum(y => y.SAL_Cantidad);
                }
            }
            response.Project = request.Project;
            return response;
        }
コード例 #4
0
ファイル: ProjectService.cs プロジェクト: zquall/Makiwara
        public ProjectResponse CopyProject(ProjectRequest request)
        {
            var response = new ProjectResponse {Project = CopyProject(request.Project)};

            return response;
        }
コード例 #5
0
ファイル: ProjectService.cs プロジェクト: zquall/Makiwara
        public ProjectResponse SearchTask(int projectId)
        {
            var response = new ProjectResponse { TaskList = new List<TaskDto>() };

            var tasksFound = Olympus._Enterprise.Tasks
                                      .Where(x => x.ProjectId == projectId)
                                      .OrderBy(y => y.RowNumber)
                                      .ToList();

            foreach (var task in tasksFound)
            {
                var tmpTask = Mapper.Map<TaskDto>(task);
                response.TaskList.Add(tmpTask);
            }
            return response;
        }
コード例 #6
0
ファイル: ProjectService.cs プロジェクト: zquall/Makiwara
        public ProjectResponse SearchProject(ProjectRequest request)
        {
            var response = new ProjectResponse {ProjectList = new List<ProjectDto>()};

            var projectsFound = Olympus._Enterprise.Projects
                                      .Where(x => x.Name.Contains(request.SearchProjectQuery) ||
                                                  x.Customer.Name.Contains(request.SearchProjectQuery) ||
                                                  x.Code.Contains(request.SearchProjectQuery) &&
                                                  x.StateId == 1)
                                      .OrderBy(y => y.Code)
                                      .Take(Convert.ToInt32(Properties.Resources.MaximunResultRows))
                                      .ToList();

            foreach (var project in projectsFound)
            {
                var tmpResourceType = Mapper.Map<ProjectDto>(project);
                response.ProjectList.Add(tmpResourceType);
            }
            return response;
        }
コード例 #7
0
ファイル: ProjectService.cs プロジェクト: zquall/Makiwara
        public ProjectResponse SaveProject(ProjectRequest request)
        {
            var budgetAdapter = new BudgetAdapter();

            var response = new ProjectResponse();

            if (request.Project != null)
            {
                Project project = null;
                // Check if Edit or Add
                if (request.Project.Id > 0)
                {   // Edit
                    project = Olympus._Enterprise.Projects.Where(x => x.Id == request.Project.Id).SingleOrDefault();
                    Mapper.Map(request.Project, project);
                    if (request.Project.Tasks != null)
                        SaveTasks(request.Project.Tasks, project);
                }
                else
                {   // Add
                    if (request.Project.Code != null)
                    {   // Check some info from AlienDB
                        project = new Project();
                        Mapper.Map(request.Project, project);
                        if (request.Project.Tasks != null)
                            SaveTasks(request.Project.Tasks, project);
                        Olympus._Enterprise.Projects.AddObject(project);
                    }
                }
                Olympus._Enterprise.SaveChanges();

                if (project != null) //Save the Budget in DIALCOM
                {
                    response.ProjectId = project.Id;
                    var tmpTaskList = SearchTask(project.Id).TaskList;
                    request.ProjectId = project.Id;
                    var tmpProject = GetProject(request).Project;
                    budgetAdapter.SaveBudget(tmpProject, tmpTaskList);
                }
            }
            return response;
        }