Ejemplo n.º 1
0
        public async Task <List <Employee> > GetEmployeesAsync(EmployeeQueryModel employeeQueryModel = null)
        {
            IQueryable <Employee> employees = _dataContext.Employees
                                              .Include(x => x.Boss);

            if (!(employeeQueryModel is null))
            {
                if (employeeQueryModel.BossId.HasValue)
                {
                    employees = employees.Where(x => x.Boss.Id == employeeQueryModel.BossId.Value);
                }
                if (!string.IsNullOrEmpty(employeeQueryModel.FirstName))
                {
                    employees = employees.Where(x => x.FirstName.ToLower() == employeeQueryModel.FirstName.ToLower());
                }
                if (employeeQueryModel.DateFrom.HasValue)
                {
                    employees = employees.Where(x => x.BirthDate >= employeeQueryModel.DateFrom.Value);
                }
                if (employeeQueryModel.DateTo.HasValue)
                {
                    employees = employees.Where(x => x.BirthDate <= employeeQueryModel.DateTo.Value);
                }
            }
            return(await employees.ToListAsync());
        }
Ejemplo n.º 2
0
        public async Task <IList <EmployeeEntity> > Query(EmployeeQueryModel model)
        {
            var paging = model.Paging();

            var query = Db.Find();

            query.WhereIf(model.DepartmentId != null && model.DepartmentId.Value.NotEmpty(), m => m.DepartmentId == model.DepartmentId);
            query.WhereNotNull(model.Name, m => m.Name.Contains(model.Name));
            query.WhereNotNull(model.JobNo, m => m.Id == model.JobNo.Value);

            var joinQuery = query.LeftJoin <AccountEntity>((x, y) => x.CreatedBy == y.Id)
                            .LeftJoin <DepartmentEntity>((t1, t2, t3) => t1.DepartmentId == t3.Id)
                            .LeftJoin <PostEntity>((t1, t2, t3, t4) => t1.PostId == t4.Id);

            if (!paging.OrderBy.Any())
            {
                joinQuery.OrderByDescending((t1, t2, t3, t4) => t1.Id);
            }

            joinQuery.Select((t1, t2, t3, t4) => new { t1, Creator = t2.Name, DepartmentPath = t3.FullPath, PostName = t4.Name });

            var result = await joinQuery.PaginationAsync(paging);

            model.TotalCount = paging.TotalCount;

            return(result);
        }
Ejemplo n.º 3
0
        public void LoadEmployeeCost(EmployeeModel employee)
        {
            EmployeeQueryModel queryModel = employee as EmployeeQueryModel;

            if (queryModel == null)
            {
                return;
            }

            using (TeamDBContext context = new TeamDBContext())
            {
                DatabaseAccess dba = context.DatabaseAccess();
                DbCommand      cmd = dba.CreateCommand("SELECT lc.UnitPrice AS PositionUnitPrice, lc.UnitValue AS PositionUnitValue, lc2.UnitPrice AS UserUnitPrice, lc2.UnitValue AS UserUnitValue FROM auth_User u INNER JOIN auth_UserExtend ue ON u.UserId = ue.UserId LEFT JOIN LaborCost lc ON ue.Position = lc.TargetId AND lc.TargetType = 1 LEFT JOIN LaborCost lc2 ON u.UserId = lc2.TargetId AND lc2.TargetType = 2 WHERE ue.UserId = @UserId");
                dba.AddInParameter(cmd, "UserId", DbType.Guid, queryModel.UserId);
                using (DbDataReader reader = dba.ExecuteReader(cmd))
                {
                    if (reader.Read())
                    {
                        queryModel.PositionUnitPrice = reader.GetDecimalOrDefault("PositionUnitPrice");
                        queryModel.PositionUnitValue = reader.GetDecimalOrDefault("PositionUnitValue");
                        queryModel.UserUnitPrice     = reader.GetDecimalOrDefault("UserUnitPrice");
                        queryModel.UserUnitValue     = reader.GetDecimalOrDefault("UserUnitValue");
                    }
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creating response object after reading Employee(s) details from database
        /// </summary>
        /// <param name="query"></param>
        /// <param name="parameters"></param>
        /// <returns>List<EmployeeQueryModel></returns>
        public List <EmployeeQueryModel> ReadEmployeeDetails(string query, Dictionary <string, string> parameters)
        {
            List <EmployeeQueryModel> employeeList = new List <EmployeeQueryModel>();

            try
            {
                //Read the employee details from the DB
                using (IDataReader dataReader = ExecuteDataReader(query, ParameterHelper.CreateSqlParameter(parameters)))
                {
                    if (dataReader != null)
                    {
                        while (dataReader.Read())
                        {
                            DataTable          dataTable        = dataReader.GetSchemaTable();
                            EmployeeQueryModel employeeResponse = new EmployeeQueryModel
                            {
                                UserId                 = (dataTable.Select("ColumnName = 'userId'").Count() == 1) ? (int?)dataReader["userId"] : null,
                                SupervisorId           = (dataTable.Select("ColumnName = 'supervisorId'").Count() == 1) ? (int?)dataReader["supervisorId"] : null,
                                TotalEmployees         = (dataTable.Select("ColumnName = 'employeeCount'").Count() == 1) ? (int?)dataReader["employeeCount"] : null,
                                EmployeeName           = (dataTable.Select("ColumnName = 'employeeName'").Count() == 1) ? Convert.ToString(dataReader["employeeName"]) : null,
                                Role                   = (dataTable.Select("ColumnName = 'Role'").Count() == 1) ? Convert.ToString(dataReader["Role"]) : null,
                                UserName               = (dataTable.Select("ColumnName = 'UserName'").Count() == 1) ? Convert.ToString(dataReader["UserName"]) : null,
                                AlternateName          = (dataTable.Select("ColumnName = 'UserName2'").Count() == 1) ? Convert.ToString(dataReader["UserName2"]) : null,
                                Email                  = (dataTable.Select("ColumnName = 'email'").Count() == 1) ? Convert.ToString(dataReader["email"]) : null,
                                Address                = (dataTable.Select("ColumnName = 'Address'").Count() == 1) ? Convert.ToString(dataReader["Address"]) : null,
                                Phone                  = (dataTable.Select("ColumnName = 'Phone'").Count() == 1) ? Convert.ToString(dataReader["Phone"]) : null,
                                SupervisorName         = (dataTable.Select("ColumnName = 'SupervisorName'").Count() == 1) ? Convert.ToString(dataReader["SupervisorName"]) : null,
                                UserCreatedDate        = (dataTable.Select("ColumnName = 'DateCreated'").Count() == 1) ? Convert.ToString(dataReader["DateCreated"]) : null,
                                Userpermission         = (dataTable.Select("ColumnName = 'UserPerms'").Count() == 1) ? (bool?)(dataReader["UserPerms"]) : null,
                                SettingsPermission     = (dataTable.Select("ColumnName = 'settingsperms'").Count() == 1) ? (bool?)dataReader["settingsperms"] : null,
                                CoursePermission       = (dataTable.Select("ColumnName = 'courseperms'").Count() == 1) ? (bool?)dataReader["courseperms"] : null,
                                TranscriptPermission   = (dataTable.Select("ColumnName = 'Transcriptperms'").Count() == 1) ? (bool?)dataReader["Transcriptperms"] : null,
                                CompanyPermission      = (dataTable.Select("ColumnName = 'companyperms'").Count() == 1) ? (bool?)dataReader["companyperms"] : null,
                                ForumPermission        = (dataTable.Select("ColumnName = 'forumperms'").Count() == 1) ? (bool?)dataReader["forumperms"] : null,
                                ComPermission          = (dataTable.Select("ColumnName = 'comperms'").Count() == 1) ? (bool?)dataReader["comperms"] : null,
                                ReportsPermission      = (dataTable.Select("ColumnName = 'reportsperms'").Count() == 1) ? (bool?)dataReader["reportsperms"] : null,
                                AnnouncementPermission = (dataTable.Select("ColumnName = 'announcementperms'").Count() == 1) ? (bool?)dataReader["announcementperms"] : null,
                                SystemPermission       = (dataTable.Select("ColumnName = 'systemperms'").Count() == 1) ? (bool?)dataReader["systemperms"] : null
                            };
                            // Adding each employee details in array list
                            employeeList.Add(employeeResponse);
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }
                return(employeeList);
            }
            catch (Exception readEmployeeDetailsException)
            {
                LambdaLogger.Log(readEmployeeDetailsException.ToString());
                return(null);
            }
        }
Ejemplo n.º 5
0
        public EmployeeModel CreateEmployeeModel(Guid employeeId, string userName)
        {
            Guard.ArgumentNotNullOrEmpty(userName, "userName");

            EmployeeModel employeeInfo = new EmployeeQueryModel
            {
                UserId     = employeeId,
                EmployeeId = employeeId,
                UserName   = userName
            };

            return(employeeInfo);
        }
Ejemplo n.º 6
0
        public PagingResultModel <EmployeeResultModel> GetEmployees(EmployeeQueryModel query)
        {
            var where = ExpressionExtension.TrueExpression <SystemUser>()
                        .AndIfHaveValue(query.Name, u => u.Name.Contains(query.Name))
                        .AndIfHaveValue(query.PhoneNumber, u => u.PhoneNumber.Contains(query.PhoneNumber));
            var userQuery = _userRepository.GetUsers().Where(@where);

            if (query.DepartmentId != null)
            {
                userQuery = from u in userQuery
                            join uc in _userRepository.GetUserClaims() on u.Id equals uc.UserId
                            where uc.ClaimType == CustomClaimTypes.UserDepartment &&
                            uc.ClaimValue == query.DepartmentId.ToString()
                            select u;
            }

            if (query.PositionId != null)
            {
                userQuery = from u in userQuery
                            join uc in _userRepository.GetUserClaims() on u.Id equals uc.UserId
                            where uc.ClaimType == CustomClaimTypes.UserPosition &&
                            uc.ClaimValue == query.PositionId.ToString()
                            select u;
            }

            var users = from u in userQuery
                        let pquery = from uc in _userRepository.GetUserClaims()
                                     where u.Id == uc.UserId && uc.ClaimType == CustomClaimTypes.UserPosition
                                     select uc.ClaimValue
                                     let dquery = from uc in _userRepository.GetUserClaims()
                                                  where u.Id == uc.UserId && uc.ClaimType == CustomClaimTypes.UserDepartment
                                                  select uc.ClaimValue
                                                  orderby u.Id descending
                                                  select new EmployeeResultModel
            {
                Id           = u.Id,
                PhoneNumber  = u.PhoneNumber,
                Avatar       = u.Avatar,
                Name         = u.Name,
                Sex          = (int)u.Sex,
                DepartmentId = dquery.FirstOrDefault(),
                PositionIds  = string.Join(',', pquery)
            };
            var skip = query.Size * (query.Page - 1);

            return(new PagingResultModel <EmployeeResultModel>
            {
                Data = users.Skip(skip).Take(query.Size).ToList(),
                Count = users.Count()
            });
        }
Ejemplo n.º 7
0
        public async Task <IResultModel> Query(EmployeeQueryModel model)
        {
            if (model.JobNo != null)
            {
                model.JobNo = model.JobNo - 1000000;
            }

            var result = new QueryResultModel <EmployeeEntity>
            {
                Rows  = await _repository.Query(model),
                Total = model.TotalCount
            };

            return(ResultModel.Success(result));
        }
Ejemplo n.º 8
0
        public async Task <IResultModel> QueryWithSameDepartment(Guid accountId, EmployeeQueryModel model)
        {
            var result   = new QueryResultModel <EmployeeEntity>();
            var employee = await _repository.GetByAccountId(accountId);

            if (employee == null || employee.DepartmentId.IsEmpty())
            {
                return(ResultModel.Success(result));
            }

            model.DepartmentId = employee.DepartmentId;

            result.Rows = await _repository.Query(model);

            result.Rows.Remove(result.Rows.FirstOrDefault(m => m.Id == employee.Id));

            result.Total = model.TotalCount;

            return(ResultModel.Success(result));
        }
Ejemplo n.º 9
0
        T ReadEmployeeInfo <T>(DbDataReader reader, bool enableReadCost = true)
            where T : EmployeeModel, new()
        {
            EmployeeModel employeeInfo = new T()
            {
                UserId           = Guid.Parse(reader["UserId"].ToString()),
                UserName         = reader["UserName"].ToString(),
                Enabled          = Convert.ToBoolean(reader["Enabled"]),
                UserCode         = reader.GetStringOrNull("UserCode"),
                RealName         = reader.GetStringOrNull("RealName"),
                Organization     = reader.GetStringOrNull("Organization"),
                OrganizationName = reader.GetStringOrNull("OrganizationName"),
                Department       = reader.GetStringOrNull("Department"),
                DepartmentName   = reader.GetStringOrNull("DepartmentName"),
                Position         = reader.GetStringOrNull("Position"),
                PositionName     = reader.GetStringOrNull("PositionName"),
                Status           = reader.GetStringOrNull("Status"),
                StatusName       = reader.GetStringOrNull("StatusName"),

                Gender          = reader.GetBooleanOrDefault("Gender", true).Value,
                Birthday        = reader.GetDateTimeOrDefault("Birthday"),
                CellPhoneNumber = reader.GetStringOrNull("CellPhoneNumber"),
                LinePhoneNumber = reader.GetStringOrNull("LinePhoneNumber"),
                Email           = reader.GetStringOrNull("Email"),
                Email2          = reader.GetStringOrNull("Email2"),
                QQ      = reader.GetStringOrNull("QQ"),
                Address = reader.GetStringOrNull("Address")
            };

            if (employeeInfo is EmployeeQueryModel && enableReadCost)
            {
                EmployeeQueryModel empQueryInfo = employeeInfo as EmployeeQueryModel;
                empQueryInfo.PositionUnitPrice = reader.GetDecimalOrDefault("PositionUnitPrice");
                empQueryInfo.PositionUnitValue = reader.GetDecimalOrDefault("PositionUnitValue");
                empQueryInfo.UserUnitPrice     = reader.GetDecimalOrDefault("UserUnitPrice");
                empQueryInfo.UserUnitValue     = reader.GetDecimalOrDefault("UserUnitValue");
            }

            employeeInfo.EmployeeId = employeeInfo.UserId;
            return(employeeInfo as T);
        }
Ejemplo n.º 10
0
 public Task <IResultModel> Query([FromQuery] EmployeeQueryModel model)
 {
     return(_service.Query(model));
 }
Ejemplo n.º 11
0
 public Task <IResultModel> QueryWithSameDepartment([FromQuery] EmployeeQueryModel model)
 {
     return(_service.QueryWithSameDepartment(_loginInfo.AccountId, model));
 }
Ejemplo n.º 12
0
 public IActionResult Get([FromQuery] EmployeeQueryModel employeeQuery)
 {
     return(Ok(_employeeService.GetEmployees(employeeQuery)));
 }
Ejemplo n.º 13
0
 public async Task <IActionResult> GetAll([FromQuery] EmployeeQueryModel employeeQueryModel)
 {
     _logger.LogInformation("Getting employees");
     return(Ok(await _employeeService.GetEmployeesAsync(employeeQueryModel)));
 }