Compare commits
	
		
			2 Commits
		
	
	
		
			17c56be712
			...
			60517f3f60
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 60517f3f60 | |||
| c2a9a42af5 | 
							
								
								
									
										10
									
								
								Marco.Pms.Model/ViewModels/Projects/OldProjectVM.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Marco.Pms.Model/ViewModels/Projects/OldProjectVM.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
using Marco.Pms.Model.Dtos.Project;
 | 
			
		||||
 | 
			
		||||
namespace Marco.Pms.Model.ViewModels.Projects
 | 
			
		||||
{
 | 
			
		||||
    public class OldProjectVM : ProjectDto
 | 
			
		||||
    {
 | 
			
		||||
        public List<BuildingVM>? Buildings { get; set; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,6 +1,8 @@
 | 
			
		||||
using Marco.Pms.DataAccess.Data;
 | 
			
		||||
using Marco.Pms.Model.Activities;
 | 
			
		||||
using Marco.Pms.Model.Dtos.Project;
 | 
			
		||||
using Marco.Pms.Model.Employees;
 | 
			
		||||
using Marco.Pms.Model.Entitlements;
 | 
			
		||||
using Marco.Pms.Model.Mapper;
 | 
			
		||||
using Marco.Pms.Model.Master;
 | 
			
		||||
using Marco.Pms.Model.MongoDBModels;
 | 
			
		||||
@ -292,6 +294,138 @@ namespace MarcoBMS.Services.Controllers
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [HttpGet("details-old/{id}")]
 | 
			
		||||
        public async Task<IActionResult> DetailsOld([FromRoute] Guid id)
 | 
			
		||||
        {
 | 
			
		||||
            // ProjectDetailsVM vm = new ProjectDetailsVM();
 | 
			
		||||
 | 
			
		||||
            if (!ModelState.IsValid)
 | 
			
		||||
            {
 | 
			
		||||
                var errors = ModelState.Values
 | 
			
		||||
                    .SelectMany(v => v.Errors)
 | 
			
		||||
                    .Select(e => e.ErrorMessage)
 | 
			
		||||
                    .ToList();
 | 
			
		||||
                return BadRequest(ApiResponse<object>.ErrorResponse("Invalid data", errors, 400));
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var project = await _context.Projects.Where(c => c.TenantId == _userHelper.GetTenantId() && c.Id == id).Include(c => c.ProjectStatus).SingleOrDefaultAsync(); // includeProperties: "ProjectStatus,Tenant"); //_context.Stock.FindAsync(id);
 | 
			
		||||
 | 
			
		||||
            if (project == null)
 | 
			
		||||
            {
 | 
			
		||||
                return NotFound(ApiResponse<object>.ErrorResponse("Project not found", "Project not found", 404));
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                //var project = projects.Where(c => c.Id == id).SingleOrDefault();
 | 
			
		||||
                ProjectDetailsVM vm = await GetProjectViewModel(id, project);
 | 
			
		||||
 | 
			
		||||
                OldProjectVM projectVM = new OldProjectVM();
 | 
			
		||||
                if (vm.project != null)
 | 
			
		||||
                {
 | 
			
		||||
                    projectVM.Id = vm.project.Id;
 | 
			
		||||
                    projectVM.Name = vm.project.Name;
 | 
			
		||||
                    projectVM.ShortName = vm.project.ShortName;
 | 
			
		||||
                    projectVM.ProjectAddress = vm.project.ProjectAddress;
 | 
			
		||||
                    projectVM.ContactPerson = vm.project.ContactPerson;
 | 
			
		||||
                    projectVM.StartDate = vm.project.StartDate;
 | 
			
		||||
                    projectVM.EndDate = vm.project.EndDate;
 | 
			
		||||
                    projectVM.ProjectStatusId = vm.project.ProjectStatusId;
 | 
			
		||||
                }
 | 
			
		||||
                projectVM.Buildings = new List<BuildingVM>();
 | 
			
		||||
                if (vm.buildings != null)
 | 
			
		||||
                {
 | 
			
		||||
                    foreach (Building build in vm.buildings)
 | 
			
		||||
                    {
 | 
			
		||||
                        BuildingVM buildVM = new BuildingVM() { Id = build.Id, Description = build.Description, Name = build.Name };
 | 
			
		||||
                        buildVM.Floors = new List<FloorsVM>();
 | 
			
		||||
                        if (vm.floors != null)
 | 
			
		||||
                        {
 | 
			
		||||
                            foreach (Floor floorDto in vm.floors.Where(c => c.BuildingId == build.Id).ToList())
 | 
			
		||||
                            {
 | 
			
		||||
                                FloorsVM floorVM = new FloorsVM() { FloorName = floorDto.FloorName, Id = floorDto.Id };
 | 
			
		||||
                                floorVM.WorkAreas = new List<WorkAreaVM>();
 | 
			
		||||
 | 
			
		||||
                                if (vm.workAreas != null)
 | 
			
		||||
                                {
 | 
			
		||||
                                    foreach (WorkArea workAreaDto in vm.workAreas.Where(c => c.FloorId == floorVM.Id).ToList())
 | 
			
		||||
                                    {
 | 
			
		||||
                                        WorkAreaVM workAreaVM = new WorkAreaVM() { Id = workAreaDto.Id, AreaName = workAreaDto.AreaName, WorkItems = new List<WorkItemVM>() };
 | 
			
		||||
 | 
			
		||||
                                        if (vm.workItems != null)
 | 
			
		||||
                                        {
 | 
			
		||||
                                            foreach (WorkItem workItemDto in vm.workItems.Where(c => c.WorkAreaId == workAreaDto.Id).ToList())
 | 
			
		||||
                                            {
 | 
			
		||||
                                                WorkItemVM workItemVM = new WorkItemVM() { WorkItemId = workItemDto.Id, WorkItem = workItemDto };
 | 
			
		||||
 | 
			
		||||
                                                workItemVM.WorkItem.WorkArea = new WorkArea();
 | 
			
		||||
 | 
			
		||||
                                                if (workItemVM.WorkItem.ActivityMaster != null)
 | 
			
		||||
                                                {
 | 
			
		||||
                                                    workItemVM.WorkItem.ActivityMaster.Tenant = new Tenant();
 | 
			
		||||
                                                }
 | 
			
		||||
                                                workItemVM.WorkItem.Tenant = new Tenant();
 | 
			
		||||
 | 
			
		||||
                                                double todaysAssigned = 0;
 | 
			
		||||
                                                if (vm.Tasks != null)
 | 
			
		||||
                                                {
 | 
			
		||||
                                                    var tasks = vm.Tasks.Where(t => t.WorkItemId == workItemDto.Id).ToList();
 | 
			
		||||
                                                    foreach (TaskAllocation task in tasks)
 | 
			
		||||
                                                    {
 | 
			
		||||
                                                        todaysAssigned += task.PlannedTask;
 | 
			
		||||
                                                    }
 | 
			
		||||
                                                }
 | 
			
		||||
                                                workItemVM.TodaysAssigned = todaysAssigned;
 | 
			
		||||
 | 
			
		||||
                                                workAreaVM.WorkItems.Add(workItemVM);
 | 
			
		||||
                                            }
 | 
			
		||||
                                        }
 | 
			
		||||
 | 
			
		||||
                                        floorVM.WorkAreas.Add(workAreaVM);
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
 | 
			
		||||
                                buildVM.Floors.Add(floorVM);
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        projectVM.Buildings.Add(buildVM);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                return Ok(ApiResponse<object>.SuccessResponse(projectVM, "Success.", 200));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private async Task<ProjectDetailsVM> GetProjectViewModel(Guid? id, Project project)
 | 
			
		||||
        {
 | 
			
		||||
            ProjectDetailsVM vm = new ProjectDetailsVM();
 | 
			
		||||
 | 
			
		||||
            // List<Building> buildings = _unitOfWork.Building.GetAll(c => c.ProjectId == id).ToList();
 | 
			
		||||
            List<Building> buildings = await _context.Buildings.Where(c => c.ProjectId == id).ToListAsync();
 | 
			
		||||
            List<Guid> idList = buildings.Select(o => o.Id).ToList();
 | 
			
		||||
            // List<Floor> floors = _unitOfWork.Floor.GetAll(c => idList.Contains(c.Id)).ToList();
 | 
			
		||||
            List<Floor> floors = await _context.Floor.Where(c => idList.Contains(c.BuildingId)).ToListAsync();
 | 
			
		||||
            idList = floors.Select(o => o.Id).ToList();
 | 
			
		||||
            //List<WorkArea> workAreas = _unitOfWork.WorkArea.GetAll(c => idList.Contains(c.Id), includeProperties: "WorkItems,WorkItems.ActivityMaster").ToList();
 | 
			
		||||
 | 
			
		||||
            List<WorkArea> workAreas = await _context.WorkAreas.Where(c => idList.Contains(c.FloorId)).ToListAsync();
 | 
			
		||||
 | 
			
		||||
            idList = workAreas.Select(o => o.Id).ToList();
 | 
			
		||||
            List<WorkItem> workItems = await _context.WorkItems.Include(c => c.WorkCategoryMaster).Where(c => idList.Contains(c.WorkAreaId)).Include(c => c.ActivityMaster).ToListAsync();
 | 
			
		||||
            //  List <WorkItem> workItems = _unitOfWork.WorkItem.GetAll(c => idList.Contains(c.WorkAreaId), includeProperties: "ActivityMaster").ToList();
 | 
			
		||||
            idList = workItems.Select(t => t.Id).ToList();
 | 
			
		||||
            List<TaskAllocation> tasks = await _context.TaskAllocations.Where(t => idList.Contains(t.WorkItemId) && t.AssignmentDate.Date == DateTime.UtcNow.Date).ToListAsync();
 | 
			
		||||
            vm.project = project;
 | 
			
		||||
            vm.buildings = buildings;
 | 
			
		||||
            vm.floors = floors;
 | 
			
		||||
            vm.workAreas = workAreas;
 | 
			
		||||
            vm.workItems = workItems;
 | 
			
		||||
            vm.Tasks = tasks;
 | 
			
		||||
            return vm;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private Guid GetTenantId()
 | 
			
		||||
        {
 | 
			
		||||
            return _userHelper.GetTenantId();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user