public ListDisscussionViewModel(ILoggerFacade logger) //,ISmartService smartService: base(container)IUnityContainer container
 {
     Logger          = logger;
     Items           = OrmManager.Fetch <DiscussInfo>(x => x.StillIn);
     SelectedCommand = new Command(() => {
         Logger.Debug(SelectedItem.Name);
     }, () => SelectedItem != null);
     RefreshBasicCommand = new Command(() => {
         var state = WorkContext.GetState <QQState>(Constract.CurrentQQState);
         state?.GetClient().InitDisscussList();
         Items = OrmManager.Fetch <DiscussInfo>(x => x.QQNum == WorkContext.GetState <long>(Constract.CurrentQQ) && x.StillIn);
         RaisePropertyChanged(nameof(Items));
     });
     RefreshDetailCommand = new Command(() => {
         Task.Run(() => {
             foreach (var group in Items)
             {
                 var state = WorkContext.GetState <QQState>(Constract.CurrentQQState);
                 state?.GetClient().InitDisscussInfo(group.Did);
                 // smartService.InitDisscussInfo(group.Did);
             }
         });
         Items = OrmManager.Fetch <DiscussInfo>(x => x.QQNum == WorkContext.GetState <long>(Constract.CurrentQQ) && x.StillIn);
         RaisePropertyChanged(nameof(Items));
     }, () => Items.Count() > 0);
     RefreshSelectedCommand = new Command(() => {
         // Logger.Debug(SelectedItem.Name);
         var state = WorkContext.GetState <QQState>(Constract.CurrentQQState);
         state?.GetClient().InitDisscussInfo(SelectedItem.Did);
         //smartService.InitDisscussInfo(SelectedItem.Did);
         Items = OrmManager.Fetch <DiscussInfo>(x => x.QQNum == WorkContext.GetState <long>(Constract.CurrentQQ) && x.StillIn);
         RaisePropertyChanged(nameof(Items));
     }, () => SelectedItem != null);
 }
        public GroupMessageSettingViewModel(IEnumerable <IAutoAnswer> answers)
        {
            Answers  = answers;
            Settings = answers.Select(x => new SettingInfo {
                Name = x.Name, Key = x.SettingKey
            }).ToList();
            Items        = OrmManager.Fetch <GroupInfo>(x => x.StillIn && x.QQNum == WorkContext.GetState <long>(Constract.CurrentQQ));
            SavedCommand = new Command(() => {
                foreach (var setting in Settings)
                {
                    SelectedItem.SetState(setting.Key, setting.Selected);
                }
                OrmManager.Update(SelectedItem);
            });
            SelectedCommand = new Command(() => {
                if (string.IsNullOrEmpty(SelectedItem.State))
                {
                    SelectedItem.State = WorkContext.GetState <QQState>(Constract.CurrentQQState).State;
                }
                for (int i = 0; i < Settings.Count; i++)
                {
                    Settings[i].Selected = SelectedItem.GetState <bool>(Settings[i].Key);
                }

                RaisePropertyChanged(nameof(Settings));
                PrevSelectedItem = SelectedItem;
            }, () => SelectedItem != PrevSelectedItem && SelectedItem != null);
        }
Ejemplo n.º 3
0
        private void Client_Logined(object sender, LoginSucessedEventArgs e)
        {
            var state = WorkContext.GetState <QQState>(Constract.CurrentQQState);

            state.Logined = true;
            state.SetCookies(Constract.LoginCookies, e.JsonResult);
            // state.SetCookies(Constract.QQSession, e.Session);
            OrmManager.Update(state);
            var clientManager = ClientManager.GetClientManagerUser(Container, state);

            clientManager.QQ.Logined          = true;
            clientManager.QQ.State            = state.State;
            clientManager.Client.DefaultState = state.State;
            if (e.ShowMainWindow)
            {
                App.Current.Dispatcher.Invoke(() =>
                {
                    new MainWindow(Container).Show();
                    Logger.Debug("MainWindow has been created and displayed.");
                    // 3.Closes the SignIn window.
                    (Application.Current.Resources[LoginWindow.Key] as LoginWindow)?.Close();
                    Logger.Debug("LoginWindow has been closed.");
                });
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获取事务状态对象
        /// </summary>
        /// <returns></returns>
        private static TransactionState GetTransactionState()
        {
            var transactionState = WorkContext.GetState <TransactionState>(WorkContextStateName.TransactionState.GetDescription());

            Guard.ArgumentNotNull(transactionState, nameof(transactionState));

            return(transactionState);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 将工作上下文转换为Web工作上下文。
        /// </summary>
        /// <param name="workContext">工作上下文。</param>
        /// <returns>Web工作上下文。</returns>
        public static WebWorkContext AsWebWorkContext(this WorkContext workContext)
        {
            var work = workContext.GetState <WebWorkContext>("WebWorkContext");

            if (work != null)
            {
                return(work);
            }
            work = new WebWorkContext(workContext);
            workContext.SetState("WebWorkContext", work);
            return(work);
        }
Ejemplo n.º 6
0
        public override IEnumerable <IWidget> GetWidgets(WorkContext workContext)
        {
            var currentPage = workContext.GetState <Page>("CurrentPage");

            if (currentPage == null)
            {
                return(Enumerable.Empty <IWidget>());
            }

            var pageId         = currentPage.RefId ?? currentPage.Id;
            var widgets        = widgetService.GetWidgets(pageId);
            var currentCulture = workContext.CurrentCulture;

            return(widgets.Where(x => IsVisibleWidget(widgets, x, currentCulture)).ToList());
        }
        public static IList <TagsPart> GetTaggedContentForCurrentContent(this WorkContext workContext)
        {
            var contentItems = workContext.GetState <List <IContent> >("ContentItems");

            if (contentItems == null)
            {
                return(null);
            }

            var taggedContent = contentItems.Where(c => c.As <TagsPart>() != null).ToList();

            return((taggedContent.Any())
                                       ? taggedContent.Select(t => t.As <TagsPart>()).ToList()
                                       : null);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 将工作上下文转换为Mvc工作上下文。
        /// </summary>
        /// <param name="workContext">工作上下文。</param>
        /// <returns>Mvc工作上下文。</returns>
        public static MvcWorkContext AsMvcWorkContext(this WorkContext workContext)
        {
            if (workContext == null)
            {
                return(null);
            }
            var work = workContext.GetState <MvcWorkContext>("WebWorkContext");

            if (work != null)
            {
                return(work);
            }
            work = new MvcWorkContext(workContext);
            workContext.SetState("WebWorkContext", work);
            return(work);
        }
Ejemplo n.º 9
0
 public ListFriendsViewModel() //ISmartService smartService: base(container)IUnityContainer container
 {
     Friends         = OrmManager.Fetch <FriendInfo>(x => x.QQNum == WorkContext.GetState <long>(Constract.CurrentQQ));
     SelectedCommand = new Command(() => {
         Logger.Log(SelectedFriend.Nick, Prism.Logging.Category.Debug, Prism.Logging.Priority.High);
     }, () => SelectedFriend != null);
     RefreshCommand = new Command(() => {
         var state = WorkContext.GetState <QQState>(Constract.CurrentQQState);
         state?.GetClient().InitFriendList();
         //smartService.InitFriendList();
         Friends = OrmManager.Fetch <FriendInfo>(x => x.QQNum == WorkContext.GetState <long>(Constract.CurrentQQ));
         RaisePropertyChanged(nameof(Friends));
     });
     RefreshSelectedCommand = new Command(() => {
         var state = WorkContext.GetState <QQState>(Constract.CurrentQQState);
         state?.GetClient().InitGroupInfo(SelectedFriend.Uin);
         // smartService.InitFriendInfo(SelectedFriend.Uin);
         Friends = OrmManager.Fetch <FriendInfo>(x => x.QQNum == WorkContext.GetState <long>(Constract.CurrentQQ));
         RaisePropertyChanged(nameof(Friends));
     }, () => SelectedFriend != null);
 }
Ejemplo n.º 10
0
        /// <summary>
        /// 向服务器提交AI学习请求
        /// </summary>
        /// <param name="source">源语句</param>
        /// <param name="aim">目标语句</param>
        /// <param name="QQNum">发起学习用户的QQ</param>
        /// <param name="QunNum">发起学习的群</param>
        /// <param name="superstudy">是否为特权学习</param>
        /// <returns>用户友好的提示语</returns>
        public string AIStudy(string source, string aim, long QQNum, long QunNum = 0, bool superstudy = false)
        {
            var study = new StudyWords();

            study.SourceQQNum = QQNum;
            study.QQNum       = WorkContext.GetState <long>(Constract.CurrentQQ);
            study.GroupId     = QunNum;
            study.Source      = source;
            study.Aim         = aim;
            if (superstudy)
            {
                study.Pass  = true;
                study.Reson = "特权学习";
            }
            else
            {
            }
            if (OrmManager.Count <BadWords>(x => string.Equals(x.Word, source, StringComparison.InvariantCultureIgnoreCase)) > 0 || OrmManager.Count <BadWords>(x => string.Equals(x.Word, aim, StringComparison.InvariantCultureIgnoreCase)) > 0)
            {
                return("ForbiddenWord");
            }
            if (OrmManager.Count <StudyWords>(x => x.SourceQQNum == QQNum && x.GroupId == QunNum && x.Source == source && x.Pass) > 0)
            {
                return("Forbidden");
            }
            else if (OrmManager.Count <StudyWords>(x => x.SourceQQNum == QQNum && x.GroupId == QunNum && x.Source == source && !x.Pass) > 0)
            {
                return("Waitting");
            }
            OrmManager.Insert(study);
            if (!study.Pass)
            {
                return("pending");
            }
            else
            {
                return("Success");
            }
        }
Ejemplo n.º 11
0
 /// <summary>
 /// 获取当前主题。
 /// </summary>
 /// <param name="workContext">工作上下文。</param>
 /// <returns>主题扩展描述符条目。</returns>
 public static ExtensionDescriptorEntry GetCurrentTheme(this WorkContext workContext)
 {
     return(workContext.GetState <ExtensionDescriptorEntry>("CurrentTheme"));
 }
Ejemplo n.º 12
0
        private static TransactionState GetTransactionState(WorkContext workContext)
        {
            TransactionState state = workContext.GetState <TransactionState>(TransactionStateProvider.StateName);

            return(state);
        }
Ejemplo n.º 13
0
 /// <summary>
 /// 获取一个状态。
 /// </summary>
 /// <typeparam name="T">状态类型。</typeparam>
 /// <param name="name">状态名称。</param>
 /// <returns>状态实例。</returns>
 public override T GetState <T>(string name)
 {
     return(_workContext.GetState <T>(name));
 }
 protected override void OnLoaded()
 {
     CurrentQQ = WorkContext.GetState <long>(Constract.CurrentQQ);
     Items     = OrmManager.Fetch <GroupInfo>(x => x.StillIn && x.QQNum == CurrentQQ);
     RaisePropertyChanged(nameof(Items));
 }
Ejemplo n.º 15
0
 /// <summary>
 /// 获取当前用户。
 /// </summary>
 /// <typeparam name="T">用户模型类型。</typeparam>
 /// <param name="workContext">工作上下文。</param>
 /// <returns>用户实例。</returns>
 public static T GetCurrentUser <T>(this WorkContext workContext) where T : IUser
 {
     return(workContext.GetState <T>("CurrentUser"));
 }
Ejemplo n.º 16
0
 /// <summary>
 /// 获取布局。
 /// </summary>
 /// <param name="workContext">工作上下文。</param>
 /// <returns>布局对象。</returns>
 public static dynamic GetLayout(this WorkContext workContext)
 {
     return(workContext.GetState <dynamic>("Layout"));
 }
Ejemplo n.º 17
0
 public static NumberFormatInfo NumberFormat(this WorkContext wContext)
 {
     return(wContext.GetState <NumberFormatInfo>(OShop.Services.CurrencyWorkContext.CurrencyNumberFormatName));
 }