public void UploadDepartments()
        {
            var list = _Repository.FindBy(null, null, 1, int.MaxValue);

            var accessToken = _commonService.GetContactsAccessToken();
            var departments = _contactsService.GetDepartments(accessToken);

            var sbError = new StringBuilder();

            foreach (var dep in list)
            {
                if (dep.DepartmentId == 1)
                {
                    continue;
                }

                try
                {
                    var item  = departments.FirstOrDefault(x => x.Id == dep.DepartmentId);
                    var model = new Domain.Weixin.Model.Department(dep.DepartmentId, dep.Name, dep.ParentId, dep.SortOrder);

                    if (item != null)
                    {
                        _contactsService.UpdateDepartment(accessToken, model);
                    }
                    else
                    {
                        _contactsService.CreateDepartment(accessToken, model);
                    }
                }
                catch (Exception ex)
                {
                    sbError.AppendLine(string.Format("{0} {1}", dep.Name, ex.Message));
                }
            }

            if (sbError.Length > 0)
            {
                throw new Exception(sbError.ToString());
            }
        }