Exemplo n.º 1
0
        public IHttpActionResult StartTenantTask(WeiChat_SyncTypes type)
        {
            var tenantId = TenantId;
            var userId   = UserId;
            var paramStr = tenantId + ";" + userId;

            WeiChatApplicationContext.Current.TaskManager.Start(type.ToString(), paramStr, new Site_Notify()
            {
                CreateBy     = UserId,
                CreateTime   = DateTime.Now,
                IconCls      = "fa fa-circle-o",
                UpdateTime   = DateTime.Now,
                IsTaskFinish = false,
                Receiver     = "Tenant_" + tenantId,
            });
            return(Ok());
        }
Exemplo n.º 2
0
        /// <summary>
        ///     触发同步
        /// </summary>
        /// <param name="syncType">同步类型</param>
        /// <param name="isUserSync">是否手动触发,为true必定触发全量同步,false会根据时间选择性触发</param>
        /// <param name="createBy">创建人</param>
        /// <returns>是否同步成功</returns>
        public async Task <bool> Sync(WeiChat_SyncTypes syncType, bool isUserSync = false, string createBy = null)
        {
            if (!isUserSync)
            {
                //默认间距6小时以上才进行同步
                var lastTime = DateTime.Now.AddHours(6);
                if (_db.WeiChat_SyncLogs.Any(p => (p.Type == syncType) && (p.CreateTime < lastTime)))
                {
                    return(await System.Threading.Tasks.Task.FromResult(false));
                }
            }
            //TODO:封装通用的同步方法
            switch (syncType)
            {
            case WeiChat_SyncTypes.Sync_WeiChat_User:
                await SyncWeChatUsers(isUserSync, createBy);

                break;

            case WeiChat_SyncTypes.Sync_MKF:
                await SyncWeChatMKF(isUserSync, createBy);

                break;

            case WeiChat_SyncTypes.Sync_Images:
                break;

            case WeiChat_SyncTypes.Sync_WeiChat_UserGroup:
                await SyncWeChatGroups(isUserSync, createBy);

                break;

            case WeiChat_SyncTypes.Sync_MessagesTemplates:
                await SyncTemplateMessages(isUserSync, createBy);

                break;

            default:
                break;
            }
            return(await System.Threading.Tasks.Task.FromResult(true));
        }