コード例 #1
0
        public async Task <int> SyncUsers(string userid, string token)
        {
            // 先到clockify获取数据
            var ls = await _clockifyService.GetUsers(userid, token);

            var employees      = new List <Employee>();
            var employeeTitles = new List <EmployeeTitle>();

            foreach (var l in ls)
            {
                employees.Add(new Employee()
                {
                    Gid             = l.id,
                    FullName        = l.name,
                    Email           = l.email,
                    ProfilePicture  = l.profilePicture,
                    Status          = l.status,
                    CreatedDate     = DateTime.Now,
                    CreatedUserID   = userid,
                    CreatedUserName = userid,
                    IsDeleted       = false,
                    UpdatedDate     = DateTime.Now,
                    UpdatedUserID   = userid,
                    UpdatedUserName = userid
                });

                employeeTitles.Add(new EmployeeTitle()
                {
                    EmployeeGid = l.id,
                    IsDeleted   = false,
                    IsLatest    = true,
                    Month       = DateTime.Now.ToString("yyyyMM"),
                    RoleId      = 0
                });
            }

            // 然后在本地插入或者同步数据
            await _employeeService.Clear();

            await _employeeTitleService.SqlExecuteNonQuery($"delete from EmployeeTitle where Month>='{DateTime.Now.ToString("yyyyMM")}' and Month<'{DateTime.Now.AddMonths(1).ToString("yyyyMM")}'");

            var affectedRecordCount = await _employeeService.AddManyAsync(employees);

            affectedRecordCount = await _employeeTitleService.AddManyAsync(employeeTitles);

            return(affectedRecordCount);
        }