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); }
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."); }); } }
/// <summary> /// 获取事务状态对象 /// </summary> /// <returns></returns> private static TransactionState GetTransactionState() { var transactionState = WorkContext.GetState <TransactionState>(WorkContextStateName.TransactionState.GetDescription()); Guard.ArgumentNotNull(transactionState, nameof(transactionState)); return(transactionState); }
/// <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); }
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); }
/// <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); }
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); }
/// <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"); } }
/// <summary> /// 获取当前主题。 /// </summary> /// <param name="workContext">工作上下文。</param> /// <returns>主题扩展描述符条目。</returns> public static ExtensionDescriptorEntry GetCurrentTheme(this WorkContext workContext) { return(workContext.GetState <ExtensionDescriptorEntry>("CurrentTheme")); }
private static TransactionState GetTransactionState(WorkContext workContext) { TransactionState state = workContext.GetState <TransactionState>(TransactionStateProvider.StateName); return(state); }
/// <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)); }
/// <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")); }
/// <summary> /// 获取布局。 /// </summary> /// <param name="workContext">工作上下文。</param> /// <returns>布局对象。</returns> public static dynamic GetLayout(this WorkContext workContext) { return(workContext.GetState <dynamic>("Layout")); }
public static NumberFormatInfo NumberFormat(this WorkContext wContext) { return(wContext.GetState <NumberFormatInfo>(OShop.Services.CurrencyWorkContext.CurrencyNumberFormatName)); }