public IQueryable <WorkRequestDetailDTO> GetWorkRequestDetailDTOs()
 {
     return(from request in DbContext.WorkRequests
            join capacity in DbContext.vWorkRequestCapacities on request.WorkRequestId equals capacity.WorkRequestId
            select new WorkRequestDetailDTO
     {
         Section = SectionMetadataDTO.MapToDTOFunc(request.Section),
         ApprovalStatus = new ApprovalStatusMetadataDTO
         {
             ApprovalStatusId = request.ApprovalStatus.ApprovalStatusId,
             IsFinal = request.ApprovalStatus.IsFinal,
             StatusName = request.ApprovalStatus.StatusName
         },
         Approver = EmployeeMetadataDTO.MapToDTOFunc(request.Approver),
         Person = EmployeeMetadataDTO.MapToDTOFunc(request.Person),
         Requestor = EmployeeMetadataDTO.MapToDTOFunc(request.Requestor),
         ApproverNotes = request.ApproverNotes,
         EndTime = request.EndTime,
         Office = OfficeMetadataDTO.MapToDTOFunc(request.Office),
         OfficeUsedCapacity = capacity.OfficeUsedCapacity,
         RequestorNotes = request.RequestorNotes,
         SectionUsedCapacity = capacity.SectionUsedCapacity,
         StartTime = request.StartTime,
         WorkRequestId = request.WorkRequestId
     });
 }
        public EmployeeMetadataDTO UpdateOrCreateEmployee(EmployeeMetadataDTO employeeDTO)
        {
            Employee newEmployee = null;

            if (employeeDTO.EmployeeId != Guid.Empty)
            {
                newEmployee = DbContext.Employees.Find(employeeDTO.EmployeeId);
            }
            if (newEmployee != null) // Edit existing
            {
                newEmployee.Avatar     = employeeDTO.Avatar;
                newEmployee.Email      = employeeDTO.Email;
                newEmployee.FirstName  = employeeDTO.FirstName;
                newEmployee.isApprover = employeeDTO.isApprover;
                newEmployee.LastName   = employeeDTO.LastName;
                newEmployee.Title      = employeeDTO.Title;
            }
            else // Create new Employee
            {
                newEmployee            = EmployeeMetadataDTO.MapToBaseFunc(employeeDTO);
                newEmployee.EmployeeId = Guid.NewGuid();
                DbContext.Employees.Add(newEmployee);
            }

            DbContext.SaveChanges();

            return(EmployeeMetadataDTO.MapToDTOFunc(newEmployee));
        }
 public EmployeeMetadataDTO UpdateOrCreateEmployee([FromBody] EmployeeMetadataDTO employeeDTO)
 {
     return(Repository.UpdateOrCreateEmployee(employeeDTO));
 }
        public async ValueTask <EmployeeMetadataDTO> GetEmployeeById(Guid employeeId)
        {
            var employee = await DbContext.Employees.FindAsync(employeeId);

            return(EmployeeMetadataDTO.MapToDTOFunc(employee));
        }
        public EmployeeMetadataDTO GetEmployeeByAuthId(string auth0Id)
        {
            var employee = DbContext.Employees.FirstOrDefault(x => x.Auth0Id == auth0Id);

            return(EmployeeMetadataDTO.MapToDTOFunc(employee));
        }