Exemple #1
0
        public List <ProjectTypeMasterViewModel> GetAllProjectType()
        {
            List <ProjectTypeMasterViewModel> ProjectTypeMasterModelLst = new List <ProjectTypeMasterViewModel>();
            var projectTypes = _projectMasterRepository.GetAllAsync().Result.ToList();

            projectTypes.ForEach(item => {
                ProjectTypeMasterModelLst.Add(new ProjectTypeMasterViewModel {
                    Active          = item.Active,
                    ProjectTypeID   = item.Project_Type_ID,
                    ProjectTypeName = item.Project_Type_Name
                });
            });
            return(ProjectTypeMasterModelLst);
        }
Exemple #2
0
        public async Task <List <ProjectMasterViewModel> > FilterProjectResults(int compantId, string[] projectGroups,
                                                                                string[] projectManagers, string[] status, string[] projectTypes,
                                                                                string searchKeyWord, string startDate, string endDate)
        {
            List <ProjectMaster>          lstProjectMasterInfo  = new List <ProjectMaster>();
            List <ProjectMasterViewModel> lstProjectMasterModel = new List <ProjectMasterViewModel>();
            var lstManagers = await _projectMasterRepository.GetAllAsync();

            lstManagers = lstManagers.Where(a => a.Org_ID == compantId).ToList();
            if (lstManagers == null)
            {
                return(new List <ProjectMasterViewModel>());
            }
            if (projectGroups.Length > 0 && projectGroups[0] != null)
            {
                var lstProjectGroups = await _projectGroupRepository.GetAllAsync();

                var commonProjectGroupID = lstProjectGroups.Select(a => a.Project_Goup_ID).Intersect(projectGroups.Where(a => a != null).Select(b => Convert.ToInt32(b)).ToList());
                foreach (var item in commonProjectGroupID)
                {
                    lstProjectMasterInfo.AddRange(lstManagers.Where(a => a.Project_Group_ID != null && a.Project_Group_ID.Contains(item.ToString())));
                }
            }
            if (projectManagers.Length > 0 && projectManagers[0] != null)
            {
                var lstProjectManagers = await _projectManagerMasterRepoisitory.GetAllAsync();

                var commonProjectManagerID = lstProjectManagers.Select(a => a.Manager_ID).Intersect(projectManagers.Where(a => a != null).Select(b => Convert.ToInt32(b)).ToList());
                foreach (var item in commonProjectManagerID)
                {
                    lstProjectMasterInfo.AddRange(lstManagers.Where(a => a.Project_Manager_id != null && a.Project_Manager_id.Contains(item.ToString())));
                }
            }
            if (status.Length > 0 && status[0] != null)
            {
                var lstProjectStatus = await _projectStatusMasterRepository.GetAllAsync();

                var commonProjectTypeID = lstProjectStatus.Select(a => a.Status_ID.ToString()).Intersect(status.Where(a => a != null).ToList());
                foreach (var item in commonProjectTypeID)
                {
                    lstProjectMasterInfo.AddRange(lstManagers.Where(a => a.Project_Type_ID != null && a.Project_Type_ID.ToString().Contains(item)));
                }
            }
            if (projectTypes.Length > 0 && projectTypes[0] != null)
            {
                var lstProjectTypes = await _projectTypeMasterRepository.GetAllAsync();

                var commonProjectTypeID = lstProjectTypes.Select(a => a.Project_Type_ID.ToString()).Intersect(projectTypes.Where(a => a != null).ToList());
                foreach (var item in commonProjectTypeID)
                {
                    lstProjectMasterInfo.AddRange(lstManagers.Where(a => a.Project_Type_ID != null && a.Project_Type_ID.ToString().Contains(item)));
                }
            }
            if (searchKeyWord != null)
            {
                var projectNames = lstManagers.Where(a => a.Project_Name != null && a.Project_Name.ToLower().StartsWith(searchKeyWord.ToLower())).ToList();
                if (projectNames != null)
                {
                    lstProjectMasterInfo.AddRange(projectNames);
                }
            }
            List <ProjectScheduleMasterViewModel> lstProjectSchedules = null;

            if (startDate != null && endDate != null)
            {
                lstProjectSchedules = await _projectScheduleMasterHelper.GetAllSchedules();

                lstProjectSchedules = lstProjectSchedules.Where(a => a.OrgID == compantId).ToList();
                foreach (var item in lstManagers)
                {
                    var projectInfo = lstProjectSchedules.Where(a => Convert.ToDateTime(a.ProjectStart) >= Convert.ToDateTime(startDate) && Convert.ToDateTime(a.ActualCompletion) <= Convert.ToDateTime(endDate));
                    if (projectInfo != null)
                    {
                        lstProjectMasterInfo.AddRange(lstManagers.Where(a => a.Project_ID == item.Project_ID));
                    }
                }
            }
            else if (startDate != null && endDate == null)
            {
                lstProjectSchedules = await _projectScheduleMasterHelper.GetAllSchedules();

                lstProjectSchedules = lstProjectSchedules.Where(a => a.OrgID == compantId).ToList();
                foreach (var item in lstManagers)
                {
                    var projectInfo = lstProjectSchedules.Where(a => Convert.ToDateTime(a.ProjectStart) >= Convert.ToDateTime(startDate));
                    if (projectInfo != null)
                    {
                        lstProjectMasterInfo.AddRange(lstManagers.Where(a => a.Project_ID == item.Project_ID));
                    }
                }
            }
            else if (startDate == null && endDate != null)
            {
                lstProjectSchedules = await _projectScheduleMasterHelper.GetAllSchedules();

                lstProjectSchedules = lstProjectSchedules.Where(a => a.OrgID == compantId).ToList();
                foreach (var item in lstManagers)
                {
                    var projectInfo = lstProjectSchedules.Where(a => Convert.ToDateTime(a.ActualCompletion) <= Convert.ToDateTime(endDate));
                    if (projectInfo != null)
                    {
                        lstProjectMasterInfo.AddRange(lstManagers.Where(a => a.Project_ID == item.Project_ID));
                    }
                }
            }
            if (lstProjectMasterInfo.Count == 0)
            {
                lstProjectMasterInfo = lstManagers.ToList();
            }
            foreach (var item in lstProjectMasterInfo.Distinct())
            {
                lstProjectMasterModel.Add(new ProjectMasterViewModel
                {
                    ProjectID        = item.Project_ID,
                    City             = item.City,
                    ContractPrice    = item.Contract_Price,
                    InternalNotes    = item.Internal_Notes,
                    JobsitePrefix    = item.Project_Prefix,
                    LotInfo          = item.Lot_Info,
                    Permit           = item.Permit_No,
                    ProjectGroupID   = item.Project_Group_ID?.Split(","),
                    ProjectManagerID = item.Project_Manager_id?.Split(","),
                    ProjectName      = item.Project_Name,
                    ProjectStatusID  = item.Status_ID?.Split(","),
                    ProjectTypeID    = item.Project_Type_ID?.Split(","),
                    State            = item.State,
                    StreetAddress    = item.Address,
                    SubNotes         = item.Sub_Notes,
                    UserID           = item.User_ID,
                    Zip = item.Zip,
                    ProjectScheduleMasterModel = await _projectScheduleMasterHelper.GetProjectScheduleByProjectID(item.Project_ID),
                    OwnerMasterModel           = await _ownerMasterHelper.GetOwnerInfoByInfo(item.Project_ID)
                });
            }
            ;
            return(lstProjectMasterModel);
        }