コード例 #1
0
        public ActionResult <IResult> GetEmployees(SearchSortModel search)
        {
            _logger.LogInformation("get All Employees");
            var result = _employeeService.GetEmployeeList(search);

            return(StatusCode((int)result.StatusCode, result));
        }
コード例 #2
0
        public ActionResult <IResult> GetDeclarationsByUserId([FromBody] SearchSortModel search)
        {
            _logger.LogInformation("get all declarations by UserId");
            var result = _healthTrackService.GetDeclarationsByUserId(search);

            return(StatusCode((int)result.StatusCode, result));
        }
コード例 #3
0
        public ActionResult <IResult> GetAllDeclarations(SearchSortModel search)
        {
            _logger.LogInformation("get all declarations");
            var result = _healthTrackService.GetAllDeclarations(search);

            return(StatusCode((int)result.StatusCode, result));
        }
コード例 #4
0
        /// <summary>
        /// Get all Locations.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public IResult GetAllLocations(SearchSortModel search)
        {
            if (string.IsNullOrEmpty(search.SortColumn))
            {
                search.SortColumn = "LocationName";
            }
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var locationViewModels = new List <LocationViewModel>();
                var locations          = _locationRepository.GetAllLocations(search);
                if (locations != null && locations.Any())
                {
                    search.SearchResult = locationViewModels.MapFromModel <Location, LocationViewModel>(locations);
                }
                else
                {
                    search.SearchResult = locationViewModels;
                    result.Message      = CommonErrorMessages.NoResultFound;
                }
                result.Body = search;
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
コード例 #5
0
        public ActionResult <IResult> GetAllRequestsByUserId(SearchSortModel search)
        {
            _logger.LogInformation("Get all requests by userId");
            var result = _requestService.GetRequestsListByUserId(search);

            return(StatusCode((int)result.StatusCode, result));
        }
コード例 #6
0
        /// <summary>
        /// Get All Partners.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public IResult GetAllPartners(SearchSortModel search)
        {
            if (string.IsNullOrEmpty(search.SortColumn))
            {
                search.SortColumn = Constants.CreatedDate;
            }
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var partnerViewModels = new List <PartnerViewModel>();
                var allPartner        = _partnerRepository.GetAllPartners(search);
                if (allPartner != null && allPartner.Any())
                {
                    search.SearchResult = partnerViewModels.MapFromModel <Partner, PartnerViewModel>(allPartner);
                }
                else
                {
                    search.SearchResult = partnerViewModels;
                    result.Message      = CommonErrorMessages.NoResultFound;
                }
                result.Body = search;
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
コード例 #7
0
        public ActionResult <IResult> GetAllRequests([FromBody] SearchSortModel search)
        {
            _logger.LogInformation("Get all requests");
            var result = _requestService.GetRequestsList(search);

            return(StatusCode((int)result.StatusCode, result));
        }
コード例 #8
0
        /// <summary>
        /// Get All Request Info
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public IResult GetRequests(SearchSortModel search)
        {
            if (string.IsNullOrEmpty(search.SortColumn))
            {
                search.SortColumn = "RequestedBy";
            }

            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var requestViewModels = new List <RequestViewModel>();
                var allRequest        = _requestRepository.GetAllRequests(search);
                if (allRequest != null && allRequest.Any())
                {
                    requestViewModels = allRequest.Select(t =>
                    {
                        var requestViewModel = new RequestViewModel();
                        requestViewModel.MapFromModel(t);
                        if (t.Files != null && t.Files.Any())
                        {
                            requestViewModel.Files = new List <string>();
                            t.Files.ForEach(x => requestViewModel.Files.Add(x.ToString()));
                        }
                        if (t.MailUsers != null && t.MailUsers.Any())
                        {
                            var mailUsers = new List <MailUserDetails>();
                            requestViewModel.MailUsers = mailUsers.MapFromModel <MailUserDetails, MailUser>(t.MailUsers);
                        }
                        return(requestViewModel);
                    }).ToList();
                    search.SearchResult = requestViewModels;
                }
                else
                {
                    search.SearchResult = requestViewModels;
                    result.Message      = CommonErrorMessages.NoResultFound;
                }
                result.Body = search;
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
コード例 #9
0
        /// <summary>
        /// Returns employees
        /// </summary>
        /// <returns></returns>
        public IResult GetEmployeeList(SearchSortModel search)
        {
            var employeeViewModels = new List <EmployeeViewModel>();
            var result             = new Result
            {
                Operation  = Operation.Read,
                Status     = Status.Success,
                StatusCode = HttpStatusCode.OK
            };

            try
            {
                var employees = _employeeRepository.GetAllEmployees(search);
                if (employees.Any())
                {
                    employeeViewModels = employees.Select(t =>
                    {
                        var employeeViewModel = new EmployeeViewModel();
                        employeeViewModel.MapFromModel(t);
                        var roles = new List <EmployeeRoleViewModel>();
                        roles     = t.EmployeeRoles.Select(r =>
                        {
                            var role        = new EmployeeRoleViewModel();
                            role.Id         = r.Id;
                            role.RoleId     = r.RoleId;
                            role.RoleName   = r.Role.Name;
                            role.EmployeeId = r.EmployeeId;
                            return(role);
                        }).ToList();

                        employeeViewModel.Roles = roles;
                        return(employeeViewModel);
                    }).ToList();
                }
                else
                {
                    result.Message = "No records found";
                }
                search.SearchResult = employeeViewModels;
                result.Body         = search;
            }
            catch (Exception ex)
            {
                result.Status     = Status.Error;
                result.Message    = ex.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;
            }
            return(result);
        }
コード例 #10
0
        /// <summary>
        /// Get All Locations.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public List <Location> GetAllLocations(SearchSortModel search)
        {
            var query = from location in Query
                        select location;

            if (!string.IsNullOrEmpty(search.SearchString))
            {
                query = query.Where(t => t.LocationName.ToLower().Contains(search.SearchString));
            }

            query = Sort(query, search.SortColumn, search.SortDirection.ToString());
            var data = Page(query, search.Page, search.PageSize).ToList();

            return(data);
        }
コード例 #11
0
        /// <summary>
        /// Get All Partners.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public List <Partner> GetAllPartners(SearchSortModel search)
        {
            var query = from partner in Query
                        select partner;

            if (!string.IsNullOrEmpty(search.SearchString))
            {
                query = query.Where(t => t.Name.ToLower().Contains(search.SearchString) ||
                                    t.Email.ToLower().Contains(search.SearchString)
                                    );
            }
            query = Sort(query, search.SortColumn, search.SortDirection.ToString());
            var data = Page(query, search.Page, search.PageSize).ToList();

            return(data);
        }
コード例 #12
0
        /// <summary>
        /// Get All Materials
        /// </summary>
        /// <returns></returns>
        public IResult GetAllMaterials(SearchSortModel search)
        {
            if (string.IsNullOrEmpty(search.SortColumn))
            {
                search.SortColumn = Constants.CreatedDate;
            }

            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                List <MaterialViewModel> materialViewModels = new List <MaterialViewModel>();
                var allMaterial = _materialRepository.GetAllMaterials(search);
                if (allMaterial != null && allMaterial.Any())
                {
                    materialViewModels = allMaterial.Select(t =>
                    {
                        var materialViewModel = new MaterialViewModel();
                        materialViewModel.MapFromModel(t);
                        if (t.TechnicalSpecifications == null || !t.TechnicalSpecifications.Any())
                        {
                            return(materialViewModel);
                        }
                        var techSpecs = new List <TechSpecsViewModel>();
                        materialViewModel.TechnicalSpecifications = techSpecs.MapFromModel <TechnicalSpecification, TechSpecsViewModel>(t.TechnicalSpecifications);
                        return(materialViewModel);
                    }).ToList();
                    search.SearchResult = materialViewModels;
                }
                else
                {
                    search.SearchResult = materialViewModels;
                    result.Message      = CommonErrorMessages.NoResultFound;
                }
                result.Body = search;
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
コード例 #13
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public IResult GetCovidDeclarations(SearchSortModel search)
        {
            var covidHealthViewModelList = new List <CovidHealthTrackViewModel>();
            var result = new Result
            {
                Operation  = Operation.Read,
                Status     = Status.Success,
                StatusCode = HttpStatusCode.OK
            };

            try
            {
                var declarationList = _healthTrackRepository.GetCovidDeclarations(search);
                if (declarationList.Any())
                {
                    covidHealthViewModelList = declarationList.Select(declaration =>
                    {
                        var healthViewModel = new CovidHealthTrackViewModel();
                        healthViewModel.MapFromModel(declaration);
                        var employeeVm = new EmployeeViewModel();
                        employeeVm.MapFromModel(declaration.Employee);
                        healthViewModel.Employee = employeeVm;
                        return(healthViewModel);
                    }).ToList();

                    search.SearchResult = covidHealthViewModelList;
                    result.Body         = search;
                }
                else
                {
                    result.Status     = Status.Fail;
                    result.StatusCode = HttpStatusCode.NotFound;
                    result.Message    = "No declaration exists";
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                result.Status     = Status.Error;
                result.Message    = ex.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;
            }
            return(result);
        }
コード例 #14
0
        public IResult GetStats()
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var latestSearchModel = new SearchSortModel
                {
                    SortColumn    = Constants.CreatedDate,
                    SortDirection = SortDirection.Desc,
                    Page          = 1,
                    PageSize      = 5
                };

                result.Body = new Statistics
                {
                    NumBoms           = _billOfMaterialsManagerService.CountNumBillOfMaterial(),
                    NumBomsCompleted  = _billOfMaterialsManagerService.CountBOMNumCompleted(),
                    NumBomsInProgress = _billOfMaterialsManagerService.CountBOMNumInProgress(),

                    NumEquipments                  = _equipmentManagerService.CountNumEquipments(),
                    NumEquipmentForPartner         = _equipmentManagerService.CountNumEquipmentsPerPartner(),
                    NumEquipmentsWithDocumentation = _equipmentManagerService.CountNumEquipmentsWithDocument(),
                    NumRecentEquipments            = _equipmentManagerService.CountNumEquipmentsAddedLastWeek(),

                    NumMaterials = _materialManagerService.CountNumMaterials(),
                    NumMaterialsWithDocumentation = _materialManagerService.CountNumMaterialsWithDocument(),
                    NumRecentMaterials            = _materialManagerService.CountNumMaterialsAddedLastWeek(),

                    LastFiveRequests = _billOfMaterialsManagerService.GetSearchedBom(latestSearchModel, string.Empty)
                };
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
コード例 #15
0
        /// <summary>
        /// Get All Equipments.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public List <Equipment> GetAllEquipments(SearchSortModel search)
        {
            var query = from equipment in Query
                        select equipment;

            if (!string.IsNullOrEmpty(search.SearchString))
            {
                query = query.Where(t => t.EquipmentNumber.ToLower().Contains(search.SearchString) ||
                                    t.SerialNumber.ToLower().Contains(search.SearchString) ||
                                    t.Owner.ToLower().Contains(search.SearchString) ||
                                    t.License.ToLower().Contains(search.SearchString) ||
                                    t.Location.ToLower().Contains(search.SearchString)
                                    );
            }
            query = Sort(query, search.SortColumn, search.SortDirection.ToString());
            var data = Page(query, search.Page, search.PageSize).ToList();

            return(data);
        }
コード例 #16
0
        /// <summary>
        /// Get All Bom Templates.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public IResult GetBomTemplates(SearchSortModel search)
        {
            if (string.IsNullOrEmpty(search.SortColumn))
            {
                search.SortColumn = Constants.CreatedDate;
            }
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var query = (from bomTemplate in _bomRepository.Query.Where(x => x.Type == BomType.Template)
                             join bom in _bomRepository.Query on bomTemplate.BomId equals bom.TemplateId.Value into boms
                             select new
                {
                    bomTemplate,
                    boms
                }).OrderByDescending(t => t.bomTemplate.ModifiedDate).ToList();
                if (query != null && query.Any())
                {
                    result.Body = query.Select(x => new BomTemplateViewModel
                    {
                        BomTemplateId   = x.bomTemplate.BomId.ToString(),
                        BomTemplateName = x.bomTemplate.Name,
                        Count           = x.boms.Count()
                    }).ToList();
                }
                else
                {
                    result.Message = CommonErrorMessages.NoResultFound;
                }
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
コード例 #17
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public IResult GetRequestsList(SearchSortModel search)
        {
            var requestViewModels = new List <ComeToOfficeRequestViewModel>();
            var result            = new Result
            {
                Operation  = Operation.Read,
                Status     = Status.Success,
                StatusCode = HttpStatusCode.OK
            };

            try
            {
                var requests = _requestRepository.GetRequestsList(search);
                if (requests.Any())
                {
                    requestViewModels = requests.Select(t =>
                    {
                        var requestViewModel = new ComeToOfficeRequestViewModel();
                        requestViewModel.MapFromModel(t);
                        var employeeVm = new EmployeeViewModel();
                        employeeVm.MapFromModel(t.Employee);
                        requestViewModel.Employee = employeeVm;

                        return(requestViewModel);
                    }).ToList();
                }
                else
                {
                    result.Message = "No records found";
                }
                search.SearchResult = requestViewModels;
                result.Body         = search;
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                result.Status     = Status.Error;
                result.Message    = ex.Message;
                result.StatusCode = HttpStatusCode.InternalServerError;
            }
            return(result);
        }
コード例 #18
0
        /// <summary>
        /// Get All Requests.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public List <Request> GetAllRequests(SearchSortModel search)
        {
            var query = from request in Query
                        select request;

            if (!string.IsNullOrEmpty(search.SearchString))
            {
                query = query.Where(t => t.Description.ToLower().Contains(search.SearchString) ||
                                    t.RequestedBy.ToLower().Contains(search.SearchString) ||
                                    t.Company.ToLower().Contains(search.SearchString) ||
                                    t.PhoneNumber.ToLower().Contains(search.SearchString) ||
                                    t.MailUsers.Any(x => x.Name.Contains(search.SearchString) || x.Email.Contains(search.SearchString))
                                    );
                // TODO : Search by file name
            }
            query = Sort(query, search.SortColumn, search.SortDirection.ToString());
            var data = Page(query, search.Page, search.PageSize).ToList();

            return(data);
        }
コード例 #19
0
        /// <summary>
        /// Get All Materials.
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public List <Material> GetAllMaterials(SearchSortModel search)
        {
            var query = from material in Query
                        select material;

            if (!string.IsNullOrEmpty(search.SearchString))
            {
                query = query.Where(t => t.Materialnumber.ToLower().Contains(search.SearchString) ||
                                    t.Description.ToLower().Contains(search.SearchString) ||
                                    t.ManufactorPartNumber.ToLower().Contains(search.SearchString) ||
                                    t.Type.ToLower().Contains(search.SearchString) ||
                                    t.ManufactorName.ToLower().Contains(search.SearchString)
                                    );
            }

            query = Sort(query, search.SortColumn, search.SortDirection.ToString());
            var data = Page(query, search.Page, search.PageSize).ToList();

            return(data);
        }
コード例 #20
0
        /// <summary>
        /// Get all Bill Of Materials.
        /// </summary>
        /// <param name="search"></param>
        /// <param name="userId"></param>
        /// <param name="bomType"></param>
        /// <returns></returns>
        public List <BillOfMaterial> GetAllBillOfMaterial(SearchSortModel search, string userId, BomType bomType = BomType.Bom)
        {
            var query = from bom in Query
                        where bom.Type == bomType
                        select bom;

            if (!string.IsNullOrEmpty(search.SearchString))
            {
                query = query.Where(t => t.Name.ToLower().Contains(search.SearchString) ||
                                    t.Description.ToLower().Contains(search.SearchString));
            }

            if (!string.IsNullOrEmpty(userId))
            {
                query = query.Where(t => t.CreatedBy.ToLower().Contains(userId.ToLower()));
            }

            query = Sort(query, search.SortColumn, search.SortDirection.ToString());
            var data = Page(query, search.Page, search.PageSize).ToList();

            return(data);
        }
コード例 #21
0
        /// <summary>
        /// Get list of bom's viewmodel for logged user
        /// </summary>
        /// <param name="search"></param>
        /// <param name="userid"></param>
        /// <returns></returns>
        public List <BillOfMaterialViewModel> GetSearchedBom(SearchSortModel search, string userid)
        {
            var bomViewModels = new List <BillOfMaterialViewModel>();
            var allBoms       = _bomRepository.GetAllBillOfMaterial(search, userid);

            if (allBoms.Any())
            {
                bomViewModels = allBoms.Select(t =>
                {
                    var bomViewModel = new BillOfMaterialViewModel();
                    bomViewModel.MapFromModel(t);
                    bomViewModel.TemplateId = t.TemplateId.ToString();
                    if (t.BomUser == null)
                    {
                        return(bomViewModel);
                    }
                    var bomUserViewModel = new BomUserViewModel();
                    bomViewModel.BomUser = (BomUserViewModel)bomUserViewModel.MapFromModel(t.BomUser);
                    return(bomViewModel);
                }).ToList();
            }
            return(bomViewModels);
        }
コード例 #22
0
        /// <summary>
        /// Get Bill Of Material For Particular User.
        /// </summary>
        /// <param name="search"></param>
        /// <param name="userid"></param>
        /// <returns></returns>
        public IResult GetBillOfMaterialsForUser(SearchSortModel search, string userid)
        {
            if (string.IsNullOrEmpty(search.SortColumn))
            {
                search.SortColumn = Constants.CreatedDate;
            }
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                if (!string.IsNullOrEmpty(userid))
                {
                    var bomViewModels = GetSearchedBom(search, userid);
                    if (!bomViewModels.Any())
                    {
                        result.Message = CommonErrorMessages.NoResultFound;
                    }
                    search.SearchResult = bomViewModels;
                    result.Body         = search;
                }
                else
                {
                    result.Status  = Status.Fail;
                    result.Message = CommonErrorMessages.NoIdentifierProvided;
                }
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }
コード例 #23
0
        public IResult Materials(SearchSortModel search)
        {
            var materialList = _materialManager.GetAllMaterials(search);

            return(materialList);
        }
コード例 #24
0
        public IResult BomTemplates(SearchSortModel search)
        {
            var bomTemplates = _billOfMaterialsManager.GetBomTemplates(search);

            return(bomTemplates);
        }
コード例 #25
0
        public IResult BillOfMaterialsForUser(SearchSortModel search, string userid)
        {
            var boms = _billOfMaterialsManager.GetBillOfMaterialsForUser(search, userid);

            return(boms);
        }
コード例 #26
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        //public async Task<List<Employee>> GetAllEmployees()
        //{
        //    return await _context.Employee.Include(e => e.EmployeeRoles).ThenInclude(e => e.Role).ToListAsync();
        //}


        public List <Employee> GetAllEmployees(SearchSortModel search)
        {
            var query = _context.Employee.Include(e => e.EmployeeRoles).ThenInclude(e => e.Role).AsQueryable();


            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "employeename")
            {
                query = query.Where(t => t.Name.ToLower().Contains(search.SearchString));
            }
            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "email")
            {
                query = query.Where(t => t.Email.ToLower().Contains(search.SearchString));
            }
            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "role")
            {
                query = query.Where(t => t.EmployeeRoles.Any(r => r.RoleId == Convert.ToInt32(search.SearchString)));
            }

            if (search.userId != 0 && search.roleId != 0)
            {
                if (search.roleId == 1)
                {
                    query = query.Where(t => t.Id != search.userId && (
                                            t.EmployeeRoles.Any(role => role.RoleId == 2 || role.RoleId == 3)));
                }
                if (search.roleId == 2)
                {
                    query = query.Where(t => t.Id != search.userId && (
                                            t.EmployeeRoles.Any(role => role.RoleId == 3)));
                }
            }

            search.TotalRecords = query.Count();

            switch (search.SortDirection.ToString().ToLower())
            {
            case "asc":
                if (search.SortColumn.ToLower() == "employeecode")
                {
                    query = query.OrderBy(dec => dec.EmployeeCode);
                }
                else if (search.SortColumn.ToLower() == "employeename")
                {
                    query = query.OrderBy(dec => dec.Name);
                }
                else
                {
                    query = query.OrderBy(dec => dec.EmployeeCode);
                }
                break;

            default:
                if (search.SortColumn.ToLower() == "employeecode")
                {
                    query = query.OrderByDescending(dec => dec.EmployeeCode);
                }
                else if (search.SortColumn.ToLower() == "employeename")
                {
                    query = query.OrderByDescending(dec => dec.Name);
                }
                else
                {
                    query = query.OrderByDescending(dec => dec.EmployeeCode);
                }
                break;
            }

            query = PagingExtensions.Page(query, search.Page, search.PageSize);

            var data = query
                       .Select(user => new Employee
            {
                Id           = user.Id,
                EmployeeCode = user.EmployeeCode,
                CurrentResidentialAddress = user.CurrentResidentialAddress,
                Email    = user.Email,
                Name     = user.Name,
                Password = user.Password,
                PermanentResidentialAddress = user.PermanentResidentialAddress,
                EmployeeRoles = user.EmployeeRoles,
                Status        = user.Status
            })
                       .ToList();

            return(data);
        }
コード例 #27
0
        public IResult Equipments(SearchSortModel search)
        {
            var equipmentList = _equipmentManager.GetAllEquipments(search);

            return(equipmentList);
        }
コード例 #28
0
 /// <summary>
 /// Get All Files.
 /// </summary>
 /// <param name="searchSortModel"></param>
 /// <returns></returns>
 public IResult GetFiles(SearchSortModel searchSortModel)
 {
     throw new NotImplementedException();
 }
コード例 #29
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public List <HealthTrack> GetAllDeclarations(SearchSortModel search)
        {
            var query = _context.HealthTrack.Include(s => s.HealthTrackSymptoms).ThenInclude(s => s.Symptom).Include(q => q.HealthTrackQuestions).ThenInclude(q => q.Question).Include("Location").Include("Zone").Include(x => x.Employee).ThenInclude(x => x.EmployeeRoles).AsQueryable();

            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "employeename")
            {
                query = query.Where(t => t.Employee.Name.ToLower().Contains(search.SearchString));
            }
            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "employeeid")
            {
                query = query.Where(t => t.Id == Convert.ToInt32(search.SearchString));
            }
            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "date")
            {
                query = query.Where(t => t.CreatedDate == Convert.ToDateTime(search.SearchString));
            }
            if (search.userId != 0 && search.roleId != 0)
            {
                if (search.roleId == 1)
                {
                    query = query.Where(t => t.EmployeeId != search.userId && (
                                            t.Employee.EmployeeRoles.Any(role => role.RoleId == 2 || role.RoleId == 3)));
                }
            }

            search.TotalRecords = query.Count();

            switch (search.SortDirection.ToString().ToLower())
            {
            case "asc":
                if (search.SortColumn == "id")
                {
                    query = query.OrderBy(dec => dec.Id);
                }
                else if (search.SortColumn == "employeename")
                {
                    query = query.OrderBy(dec => dec.Employee.Name);
                }
                else
                {
                    query = query.OrderBy(dec => dec.CreatedDate);
                }
                break;

            default:
                if (search.SortColumn == "id")
                {
                    query = query.OrderByDescending(dec => dec.Id);
                }
                else if (search.SortColumn == "employeename")
                {
                    query = query.OrderByDescending(dec => dec.Employee.Name);
                }
                else
                {
                    query = query.OrderByDescending(dec => dec.CreatedDate);
                }
                break;
            }

            var data = query
                       .Select(declaration => new HealthTrack
            {
                Id = declaration.Id,
                ResidentialAddress         = declaration.ResidentialAddress,
                PreExistHealthIssue        = declaration.PreExistHealthIssue,
                ContactWithCovidPeople     = declaration.ContactWithCovidPeople,
                TravelOustSideInLast15Days = declaration.TravelOustSideInLast15Days,
                RequestNumber        = declaration.RequestNumber,
                LocationId           = declaration.LocationId,
                CreatedDate          = declaration.CreatedDate,
                ZoneId               = declaration.ZoneId,
                EmployeeId           = declaration.EmployeeId,
                Employee             = declaration.Employee,
                HealthTrackQuestions = declaration.HealthTrackQuestions,
                HealthTrackSymptoms  = declaration.HealthTrackSymptoms
            })
                       .ToList();

            return(data);
        }
コード例 #30
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public List <CovidHealthTrack> GetCovidDeclarations(SearchSortModel search)
        {
            var query = _context.CovidHealthTrack.Include(h => h.Employee).ThenInclude(e => e.EmployeeRoles).Include("Location");

            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "employeename")
            {
                query = query.Where(t => t.Employee.Name.ToLower().Contains(search.SearchString));
            }
            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "employeeid")
            {
                query = query.Where(t => t.Employee.EmployeeCode == Convert.ToInt32(search.SearchString));
            }
            if (!string.IsNullOrEmpty(search.SearchString) && search.PropertyName.ToLower() == "date")
            {
                query = query.Where(t => t.CreatedDate.Date == Convert.ToDateTime(search.SearchString).Date);
            }
            if (search.userId != 0 && search.roleId != 0)
            {
                if (search.roleId == 1)
                {
                    query = query.Where(t => t.EmployeeId != search.userId && (
                                            t.Employee.EmployeeRoles.Any(role => role.RoleId == 2 || role.RoleId == 3)));
                }
            }

            search.TotalRecords = query.Count();

            switch (search.SortDirection.ToString().ToLower())
            {
            case "asc":
                if (search.SortColumn == "id")
                {
                    query = query.OrderBy(dec => dec.Id);
                }
                else if (search.SortColumn == "employeename")
                {
                    query = query.OrderBy(dec => dec.Employee.Name);
                }
                else
                {
                    query = query.OrderBy(dec => dec.CreatedDate);
                }
                break;

            default:
                if (search.SortColumn == "id")
                {
                    query = query.OrderByDescending(dec => dec.Id);
                }
                else if (search.SortColumn == "employeename")
                {
                    query = query.OrderByDescending(dec => dec.Employee.Name);
                }
                else
                {
                    query = query.OrderByDescending(dec => dec.CreatedDate);
                }
                break;
            }

            query = PagingExtensions.Page(query, search.Page, search.PageSize);

            var data = query
                       .Select(declaration => new CovidHealthTrack
            {
                Id = declaration.Id,
                CovidConfirmationDate  = declaration.CovidConfirmationDate,
                DateOfSymptoms         = declaration.DateOfSymptoms,
                FamilyMembersCount     = declaration.FamilyMembersCount,
                HospitalizationNeed    = declaration.HospitalizationNeed,
                OfficeLastDay          = declaration.OfficeLastDay,
                OthersInfectedInFamily = declaration.OthersInfectedInFamily,
                Status      = declaration.Status,
                LocationId  = declaration.LocationId,
                CreatedDate = declaration.CreatedDate,
                EmployeeId  = declaration.EmployeeId,
                Employee    = declaration.Employee
            })
                       .ToList();

            return(data);
        }