public void Visit(Element element)
            {
                BaseEmployee employee = element as BaseEmployee;

                employee.Income *= 1.10;
                Console.WriteLine("{0} {1}'s new income: {2:C}", employee.GetType().Name, employee.Name, employee.Income);
            }
            public void Visit(Element element)
            {
                BaseEmployee employee = element as BaseEmployee;

                employee.VacationDays += 3;
                Console.WriteLine("{0} {1}'s new vacation days: {2}", employee.GetType().Name, employee.Name, employee.VacationDays);
            }
Example #3
0
        public Response CreateEmployeeWithAttribute(BaseEmployee employee)
        {
            Response response = new Response();

            try
            {
                PropertyInfo employeePropertyWithAttribute = employee.GetType().GetProperties().Where(e => e.CustomAttributes.Any(a => a.AttributeType == typeof(HourlySalary))).First();
                employee.GetType().GetProperty(employeePropertyWithAttribute.Name).SetValue(employee, 300);

                bool isSuccess = SaveEmploye(employee);

                if (isSuccess)
                {
                    response.IsSuccess     = true;
                    response.Message       = "Create employee with attribute seccessfuly";
                    response.AverageSalary = employee.AverageSalary;
                }
                else
                {
                    response.IsSuccess = false;
                    response.Message   = "Create employee with attribute error";
                }
            }
            catch (Exception ex)
            {
                response.IsSuccess = false;
                response.Message   = $"Create employee with attribute error: {ex.Message}";
            }
            return(response);
        }
        public void AlterUser(int empid, int userid)
        {
            Action <ClientRequestData> requestAction = ((ClientRequestData request) =>
            {
                request.AddData(empid);
                request.AddData(userid);
            });
            ServiceResponseData retdata  = InvokeWcfService("MainFrame.Service", "EmpUserController", "AlterUser", requestAction);
            BaseEmployee        _currEmp = retdata.GetData <BaseEmployee>(0);
            int currDeptId = retdata.GetData <int>(1);

            BaseUser         _currUser  = retdata.GetData <BaseUser>(2);
            List <BaseGroup> _grouplist = retdata.GetData <List <BaseGroup> >(3);
            List <BaseDept>  _deptlist  = retdata.GetData <List <BaseDept> >(4);

            List <BaseGroup> _usergroup = retdata.GetData <List <BaseGroup> >(5);
            List <BaseDept>  _empdept   = retdata.GetData <List <BaseDept> >(6);

            BaseDept currdept = retdata.GetData <BaseDept>(7);

            ((IfrmAddUser)iBaseView["frmAddUser"]).loadAddUserView(_currEmp, currDeptId, _currUser, _grouplist, _deptlist, _usergroup, _empdept);

            (iBaseView["frmAddUser"] as Form).Text = "修改用户";
            (iBaseView["frmAddUser"] as Form).ShowDialog();
        }
Example #5
0
 protected override bool InitCache()
 {
     try
     {
         string con     = ConfigContext.GetInstance().DataBaseSettingProvider.SimpleManagerConnstring;
         string sGetSql = "select [userid],[username],[userpassword],[useremail],[userinfo],[usergroupid],[userCName] from GameOa.dbo.oa_user ";
         using (SqlDataReader aReader = SqlHelper.ExecuteReader(con, CommandType.Text, sGetSql))
         {
             if (aReader == null)
             {
                 throw new Exception();
             }
             List <BaseEmployee> listBaseEmp = new List <BaseEmployee>();
             if (aReader.HasRows)
             {
                 while (aReader.Read())
                 {
                     BaseEmployee oTmpEmployee = new BaseEmployee(Convert.ToInt32(aReader["userid"]));
                     oTmpEmployee.InitData(aReader);
                     listBaseEmp.Add(oTmpEmployee);
                 }
             }
             this.addCache(listBaseEmp);
             return(true);
         }
     }
     catch (Exception ex)
     {
         this.SaveLog(ex);
         return(false);
     }
 }
Example #6
0
        public StaffEmployeeServiceTests()
        {
            var id = Guid.NewGuid();

            _staff    = new StaffEmployee(id, "Петр", "Петров", Departments.IT, 200_000);
            _autorize = new AutorizeToken(Role.Developer, id);
        }
        public string SaveEmpAndDetail(int workId, BaseEmployee emp, BaseEmployeeDetails empDetail)
        {
            try
            {
                var retdata = InvokeWcfService(
                    "BaseProject.Service",
                    "EmpController",
                    "SaveEmpAndDetail",
                    (request) =>
                {
                    request.AddData(workId);
                    request.AddData(emp);
                    request.AddData(empDetail);
                });

                var ret = retdata.GetData <string>(0);
                MessageBoxShowSimple("保存人员成功!");
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(string.Empty);
        }
        /// <summary>
        /// Дать авторизацию сотруднику
        /// </summary>
        /// <param name="employee"></param>
        /// <returns></returns>
        public AutorizeToken GetAuthorization(BaseEmployee employee)
        {
            //Проверяем входные параметры
            if (employee == null)
            {
                return(null);
            }
            //Получаем должность сотрудника
            var position = employee.Position;
            //Присваиваем роль в соответствии с должностью
            var role = Role.None;

            switch (position)
            {
            case Positions.Developer:
                role = Role.Developer;
                break;

            case Positions.Director:
                role = Role.Director;
                break;

            case Positions.Freelance:
                role = Role.Freelancer;
                break;

            default:
                break;
            }

            return(new AutorizeToken(role, employee.Id));
        }
Example #9
0
        public bool Add(BaseEmployee model, DbOperator dbOperator)
        {
            model.DataStatus     = DataStatus.Normal;
            model.LastUpdateTime = DateTime.Now;
            model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into BaseEmployee(EmployeeID,EmployeeName,Sex,CertifType,CertifNo,MobilePhone,HomePhone,Email,FamilyAddr,");
            strSql.Append("RegTime,EmployeeType,Remark,AreaName,DeptID,VID,LastUpdateTime,HaveUpdate,DataStatus)");
            strSql.Append(" values(@EmployeeID,@EmployeeName,@Sex,@CertifType,@CertifNo,@MobilePhone,@HomePhone,@Email,@FamilyAddr,");
            strSql.Append("@RegTime,@EmployeeType,@Remark,@AreaName,@DeptID,@VID,@LastUpdateTime,@HaveUpdate,@DataStatus)");
            dbOperator.ClearParameters();
            dbOperator.AddParameter("EmployeeID", model.EmployeeID);
            dbOperator.AddParameter("EmployeeName", model.EmployeeName);
            dbOperator.AddParameter("Sex", model.Sex);
            dbOperator.AddParameter("CertifType", (int)model.CertifType);
            dbOperator.AddParameter("CertifNo", model.CertifNo);
            dbOperator.AddParameter("MobilePhone", model.MobilePhone);
            dbOperator.AddParameter("HomePhone", model.HomePhone);
            dbOperator.AddParameter("Email", model.Email);
            dbOperator.AddParameter("FamilyAddr", model.FamilyAddr);
            dbOperator.AddParameter("RegTime", model.RegTime);
            dbOperator.AddParameter("EmployeeType", (int)model.EmployeeType);
            dbOperator.AddParameter("Remark", model.Remark);
            dbOperator.AddParameter("AreaName", model.AreaName);
            dbOperator.AddParameter("DeptID", model.DeptID);
            dbOperator.AddParameter("VID", model.VID);
            dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
            dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
            dbOperator.AddParameter("DataStatus", (int)model.DataStatus);
            return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0);
        }
        public ServiceResponseData AlterUser()
        {
            int empid  = requestData.GetData <int>(0);
            int userid = requestData.GetData <int>(1);

            BaseEmployee     _currEmp   = (BaseEmployee)NewObject <BaseEmployee>().getmodel(empid);
            BaseUser         _currUser  = (BaseUser)NewObject <BaseUser>().getmodel(userid);
            List <BaseGroup> _grouplist = NewObject <BaseGroup>().getlist <BaseGroup>();
            List <BaseDept>  _deptlist  = NewObject <BaseDept>().getlist <BaseDept>();

            List <BaseGroup> _usergroup = NewObject <Group>().GetGroupList(userid);
            List <BaseDept>  _empdept   = NewObject <Dept>().GetHaveDept(empid);
            BaseDept         currdept   = NewObject <Dept>().GetDefaultDept(empid);

            responseData.AddData(_currEmp);
            responseData.AddData(currdept == null ? -1 : currdept.DeptId);
            responseData.AddData(_currUser);
            responseData.AddData(_grouplist);
            responseData.AddData(_deptlist);
            responseData.AddData(_usergroup);
            responseData.AddData(_empdept);
            responseData.AddData(currdept);

            return(responseData);
        }
Example #11
0
        public JsonResult Inouting(string cardNo, int forward)
        {
            var model = ContextFactory.ContextHelper.BaseEmployees.FirstOrDefault(c => c.IsDimission != 0 && c.CardNo.Equals(cardNo));

            if (model == null)
            {
                return(Json("error"));
            }



            if (!_doorInoutService.IsAddEntity(new DoorInout()
            {
                CardNo = cardNo,
                Forward = forward,
                EventTime = DateTime.Now,
                Record = ManageProvider.Provider.Current().UserId
            }))
            {
                return(Json("error"));
            }
            var employee = new BaseEmployee
            {
                EmpNo        = model.EmpNo,
                RealName     = model.RealName,
                DepartmentId = model.DepartmentId,
            };
            var serializer = new JavaScriptSerializer();

            return(Json(serializer.Serialize(employee)));
        }
Example #12
0
    protected override bool InitCache()
    {
        try
        {
            string con = ConfigContext.GetInstance().DataBaseSettingProvider.SimpleManagerConnstring;
            string sGetSql = "select [userid],[username],[userpassword],[useremail],[userinfo],[usergroupid],[userCName] from GameOa.dbo.oa_user ";
                using (SqlDataReader aReader = SqlHelper.ExecuteReader(con, CommandType.Text, sGetSql))
                {
                    if (aReader == null) throw new Exception();
                    List<BaseEmployee> listBaseEmp = new List<BaseEmployee>();
                    if (aReader.HasRows)
                    {
                        while (aReader.Read())
                        {
                            BaseEmployee oTmpEmployee = new BaseEmployee(Convert.ToInt32(aReader["userid"]));
                            oTmpEmployee.InitData(aReader);
                            listBaseEmp.Add(oTmpEmployee);
                        }
                    }
                    this.addCache(listBaseEmp);
                    return true;
                }

        }
        catch (Exception ex)
        {
            this.SaveLog(ex);
            return false;
        }
    }
Example #13
0
        /// <summary>
        /// 表单分析
        /// </summary>
        /// <param name="baseEmployee"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        public bool WorkFlowAnalysis(BaseEmployee baseEmployee, DateTime startTime, DateTime endTime)
        {
            //List<FormWorkLeave> all = DataFactory.Database().FindList<FormWorkLeave>($"AND EmpNo='{baseEmployee.EmpNo}' and StartTime BETWEEN '{startTime}' AND '{endTime}'");


            return(true);
        }
Example #14
0
 public bool Update(BaseEmployee model)
 {
     using (DbOperator dbOperator = ConnectionManager.CreateConnection())
     {
         return(Update(model, dbOperator));
     }
 }
Example #15
0
        /// <summary>
        /// Преобразование DTO сотрудника в бизнес модель
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public static BaseEmployee ToBaseEmployee(this Employee e)
        {
            var          position = e.Positions;
            BaseEmployee employee = default;

            switch (position)
            {
            case Positions.None:
                break;

            case Positions.Director:
                employee = new DirectorEmployee(e.Id, e.NamePerson, e.SurnamePerson, e.Department, e.BaseSalary);
                break;

            case Positions.Developer:
                employee = new StaffEmployee(e.Id, e.NamePerson, e.SurnamePerson, e.Department, e.BaseSalary);
                break;

            case Positions.Freelance:
                employee = new FreeLancerEmployee(e.Id, e.NamePerson, e.SurnamePerson, e.Department, e.BaseSalary);
                break;

            default:
                break;
            }
            return(employee);
        }
Example #16
0
        public bool Update(BaseEmployee model, DbOperator dbOperator)
        {
            model.LastUpdateTime = DateTime.Now;
            model.HaveUpdate     = SystemDefaultConfig.DataUpdateFlag;

            StringBuilder strSql = new StringBuilder();

            strSql.Append("update BaseEmployee set EmployeeName=@EmployeeName,Sex=@Sex,CertifType=@CertifType,CertifNo=@CertifNo,MobilePhone=@MobilePhone,HomePhone=@HomePhone,Email=@Email,FamilyAddr=@FamilyAddr,");
            strSql.Append("EmployeeType=@EmployeeType,Remark=@Remark,AreaName=@AreaName,DeptID=@DeptID,VID=@VID,LastUpdateTime=@LastUpdateTime,HaveUpdate=@HaveUpdate");
            strSql.Append(" where EmployeeID=@EmployeeID");

            dbOperator.ClearParameters();
            dbOperator.AddParameter("EmployeeID", model.EmployeeID);
            dbOperator.AddParameter("EmployeeName", model.EmployeeName);
            dbOperator.AddParameter("Sex", model.Sex);
            dbOperator.AddParameter("CertifType", (int)model.CertifType);
            dbOperator.AddParameter("CertifNo", model.CertifNo);
            dbOperator.AddParameter("MobilePhone", model.MobilePhone);
            dbOperator.AddParameter("HomePhone", model.HomePhone);
            dbOperator.AddParameter("Email", model.Email);
            dbOperator.AddParameter("FamilyAddr", model.FamilyAddr);
            dbOperator.AddParameter("EmployeeType", (int)model.EmployeeType);
            dbOperator.AddParameter("Remark", model.Remark);
            dbOperator.AddParameter("AreaName", model.AreaName);
            dbOperator.AddParameter("DeptID", model.DeptID);
            dbOperator.AddParameter("VID", model.VID);
            dbOperator.AddParameter("LastUpdateTime", model.LastUpdateTime);
            dbOperator.AddParameter("HaveUpdate", model.HaveUpdate);
            return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0);
        }
        /// <summary>
        /// Добавить сотрудника
        /// </summary>
        /// <param name="employee"></param>
        /// <returns></returns>
        public async Task <bool> InsertEmployeeAsync(BaseEmployee employee)
        {
            //Проверяем права доступа
            if (_autorize == null)
            {
                return(false);
            }
            //Проверяем входные параметры на null
            if (employee == null)
            {
                return(false);
            }

            //Проверяем сотрудника на уникальность
            var employeesList = await GetAllEmployeeAsync();

            if (employeesList.ToList().Contains(employee))
            {
                return(false);
            }

            //Пытаемся добавить сотрудника в хранилище,
            //если результат не null возвращаем true, иначе false
            var result = await _employeeRepository.InsertEmployeeAsync(employee);

            if (result != null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public FreelancerEmployeeServiceTests()
        {
            var id = Guid.NewGuid();

            _freelancer = new FreeLancerEmployee(id, "Петр", "Петров", Departments.IT, 1_000);
            _autorize   = new AutorizeToken(Role.Freelancer, id);
        }
Example #19
0
 public Job(string name, int workHoursRequired, BaseEmployee employee)
 {
     this.Name = name;
     this.WorkHoursRequired = workHoursRequired;
     this.Employee          = employee;
     this.IsDone            = false;
 }
Example #20
0
 private decimal CalculateAnnualSalary(BaseEmployee employee)
 {
     return(employee.ContractType switch
     {
         ContractTypeEnum.HourlySalaryEmployee => 120 * employee.Salary * 12,
         ContractTypeEnum.MonthlySalaryEmployee => employee.Salary * 12,
         _ => 0
     });
Example #21
0
        /// <summary>
        /// 临时卡分析
        /// </summary>
        /// <param name="baseEmployee"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        public bool TemporaryCardAnalysis(BaseEmployee baseEmployee, DateTime startTime, DateTime endTime)
        {
            //查询当月临时卡补卡记录



            return(true);
        }
        /// <summary>
        /// Получить асинхронно список всех сотрудников
        /// </summary>
        /// <returns></returns>
        public async Task <IEnumerable <BaseEmployee> > GetEmployeesListAsync()
        {
            //Создаем новый список сотрудников
            List <BaseEmployee> result = new List <BaseEmployee>();

            //Считываем все строки из файла в текстовый массив
            string[] dataLines = await base.ReadAsync();

            foreach (var line in dataLines)
            {
                //Получаем модель сотрудника в виде текстового массива
                string[] model = line.Split(DataSearator);
                //Преобразуем данные массива
                Guid.TryParse(model[0], out Guid id);
                string name          = model[1];
                string surnamePerson = model[2];
                var    department    = (Departments)Enum.Parse(typeof(Departments), model[3]);
                var    position      = (Positions)Enum.Parse(typeof(Positions), model[4]);
                decimal.TryParse(model[5], out decimal salary);

                //Создаем нового сотрудника и в зависимости от позиции создаем тип сотрудника
                BaseEmployee employee = null;
                switch (position)
                {
                case Positions.None:
                    employee = new StaffEmployee(id, name, surnamePerson, department, position, salary);
                    break;

                case Positions.Developer:
                    employee = new StaffEmployee(id, name, surnamePerson, department, salary);
                    break;

                case Positions.Director:
                    employee = new DirectorEmployee(id, name, surnamePerson, department, salary);
                    break;

                case Positions.Freelance:
                    employee = new FreeLancerEmployee(id, name, surnamePerson, department, salary);
                    break;

                default:
                    break;
                }

                //Если сотрудник создан, добавляем его в результирующий список
                if (employee != null)
                {
                    result.Add(employee);
                }
            }
            //Если результирующий список пустой, возвращаем null
            if (result.Count == 0)
            {
                return(null);
            }

            return(result);
        }
        public string NewUser()
        {
            BaseEmployee     _currEmp   = NewObject <BaseEmployee>();
            BaseUser         _currUser  = NewObject <BaseUser>();
            List <BaseGroup> _grouplist = NewObject <BaseGroup>().getlist <BaseGroup>();
            List <BaseDept>  _deptlist  = NewObject <BaseDept>().getlist <BaseDept>();

            return(ToJson(_currEmp, _currUser, _grouplist, _deptlist));
        }
Example #24
0
 public static EmployeeViewModel MapToModel(this BaseEmployee employee)
 {
     return(new EmployeeViewModel(employee.Id,
                                  employee.Name,
                                  employee.Salary,
                                  employee.ContractType.ToString(),
                                  employee.Role,
                                  employee.AnnualSalary));
 }
        public DirectorEmployeeTests()
        {
            var id = Guid.NewGuid();

            _director = new DirectorEmployee(id, "Петр", "Петров", Departments.Managment, 200_000);
            _autorize = new AutorizeToken(Role.Director, id);

            _staff      = new StaffEmployee(id, "Иван", "Иванов", Departments.IT, 100_000);
            _freelancer = new FreeLancerEmployee(id, "Василий", "Васин", Departments.IT, 1_000);
        }
Example #26
0
        public DialogResult NewUser()
        {
            BaseEmployee     _currEmp   = NewObject <BaseEmployee>();
            BaseUser         _currUser  = NewObject <BaseUser>();
            List <BaseGroup> _grouplist = NewObject <BaseGroup>().getlist <BaseGroup>();
            List <BaseDept>  _deptlist  = NewObject <BaseDept>().getlist <BaseDept>();

            ((IfrmAddUser)iBaseView["frmAddUser"]).loadAddUserView(_currEmp, -1, _currUser, _grouplist, _deptlist, null, null);
            (iBaseView["frmAddUser"] as Form).Text = "新增用户";
            return((iBaseView["frmAddUser"] as Form).ShowDialog());
        }
Example #27
0
        public static bool Add(BaseEmployee employee, EmployeePlate plate, BaseCard card, ParkGrant parkGrant, DbOperator dbOperator)
        {
            if (employee == null)
            {
                throw new ArgumentNullException("employee");
            }
            if (plate == null)
            {
                throw new ArgumentNullException("plate");
            }
            if (card == null)
            {
                throw new ArgumentNullException("card");
            }
            if (parkGrant == null)
            {
                throw new ArgumentNullException("parkGrant");
            }

            bool result = BaseEmployeeServices.AddOrUpdateBaseEmployee(employee, dbOperator);

            if (!result)
            {
                throw new MyException("保存人员信息失败");
            }

            result = BaseCardServices.AddOrUpdateCard(card, dbOperator);
            if (!result)
            {
                throw new MyException("保存卡信息失败");
            }

            result = EmployeePlateServices.AddOrUpdateEmployeePlate(plate, dbOperator);
            if (!result)
            {
                throw new MyException("保存车牌信息失败");
            }

            parkGrant.PlateID = plate.PlateID;
            parkGrant.CardID  = card.CardID;
            result            = AddOrderUpdateParkGrant(parkGrant, dbOperator);
            if (!result)
            {
                throw new MyException("保存授权失败");
            }
            if (result)
            {
                OperateLogServices.AddOperateLog <BaseEmployee>(employee, OperateType.Add);
                OperateLogServices.AddOperateLog <EmployeePlate>(plate, OperateType.Add);
                OperateLogServices.AddOperateLog <BaseCard>(card, OperateType.Add);
                OperateLogServices.AddOperateLog <ParkGrant>(parkGrant, OperateType.Add);
            }
            return(result);
        }
        public DialogResult NewUser()
        {
            Object           retdata    = InvokeWCFService("EmpUserController", "NewUser");
            BaseEmployee     _currEmp   = ToObject <BaseEmployee>(ToArray(retdata)[0]);
            BaseUser         _currUser  = ToObject <BaseUser>(ToArray(retdata)[1]);
            List <BaseGroup> _grouplist = ToListObj <BaseGroup>(ToArray(retdata)[2]);
            List <BaseDept>  _deptlist  = ToListObj <BaseDept>(ToArray(retdata)[3]);

            ((IfrmAddUser)iBaseView["frmAddUser"]).loadAddUserView(_currEmp, -1, _currUser, _grouplist, _deptlist, null, null);
            (iBaseView["frmAddUser"] as Form).Text = "新增用户";
            return((iBaseView["frmAddUser"] as Form).ShowDialog());
        }
Example #29
0
 /// <summary>
 /// Преобразование бизнес модели сотрудника в DTO
 /// </summary>
 /// <param name="e"></param>
 /// <returns></returns>
 public static Employee ToEmployeeModel(this BaseEmployee e)
 {
     return(new Employee
     {
         Id = e.Id,
         NamePerson = e.NamePerson,
         SurnamePerson = e.SurnamePerson,
         Department = e.Department,
         Positions = e.Position,
         BaseSalary = e.BaseSalary
     });
 }
Example #30
0
        public static bool Add(BaseEmployee model)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }

            IBaseEmployee factory = BaseEmployeeFactory.GetFactory();

            model.EmployeeID = GuidGenerator.GetGuidString();
            return(factory.Add(model));
        }
        public DialogResult NewUser()
        {
            ServiceResponseData retdata    = InvokeWcfService("MainFrame.Service", "EmpUserController", "NewUser");
            BaseEmployee        _currEmp   = retdata.GetData <BaseEmployee>(0);
            BaseUser            _currUser  = retdata.GetData <BaseUser>(1);
            List <BaseGroup>    _grouplist = retdata.GetData <List <BaseGroup> >(2);
            List <BaseDept>     _deptlist  = retdata.GetData <List <BaseDept> >(3);

            ((IfrmAddUser)iBaseView["frmAddUser"]).loadAddUserView(_currEmp, -1, _currUser, _grouplist, _deptlist, null, null);
            (iBaseView["frmAddUser"] as Form).Text = "新增用户";
            return((iBaseView["frmAddUser"] as Form).ShowDialog());
        }