public static async Task <List <SiteModel> > GetAllSites(WebApiProxy proxy, int Id = -1, string SiteName = "") { List <SiteModel> SiteList = new List <SiteModel>(); Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("@Id", Id); dict.Add("@LoadOnlyActive", 0); dict.Add("@SiteName", SiteName); var dataSet = await proxy.ExecuteDataset("SP_SiteSelect", dict); if (!ReferenceEquals(dataSet, null) && dataSet.Tables.Count > 0) { return((from DataRow row in dataSet.Tables[0].Rows select new SiteModel { Oid = Convert.ToInt32(row["Id"].ToString()), Name = row["Name"].ToString(), Title = row["Title"].ToString(), URL = row["url"].ToString(), Logo = GetRowData <byte[]>(row["Logo"]), IsActive = bool.Parse(row["IsActive"].ToString()) }).ToList()); } return(SiteList); }
public static async Task <int> AddUpdateRecord <T>(WebApiProxy proxy, T ModelObject, bool IsNewObject = false) where T : class { Dictionary <string, string> ProcedureInfo = GetProcedureInfo(ModelObject); System.ComponentModel.PropertyDescriptorCollection pdc = System.ComponentModel.TypeDescriptor.GetProperties(ModelObject); Dictionary <string, object> dicParams = pdc.Cast <PropertyDescriptor>().Where(item => ProcedureInfo.ContainsKey(item.Name)).ToDictionary(key => ProcedureInfo[key.Name], value => value.GetValue(ModelObject)); if (IsNewObject) { dicParams["@Id"] = -1; } if (dicParams.ContainsKey("@Logo")) { dicParams["@Logo"] = 1014; } DataSet dataSet = await proxy.ExecuteDataset(ProcedureInfo["ProcedureName"], dicParams); if (dataSet != null && dataSet.Tables != null && dataSet.Tables.Count > 0) { if (dataSet.Tables[0].Rows != null && dataSet.Tables[0].Rows.Count > 0) { int ID = Convert.ToInt32(dataSet.Tables[0].Rows[0][0].ToString()); return(ID); } } return(-1); }
public static async Task <int> AddSiteMisc(WebApiProxy proxy, SiteMiscModel SiteMiscObject, bool IsNewObject = false) { Dictionary <string, object> dicParams = new Dictionary <string, object>(); if (IsNewObject) { dicParams.Add("@Id", -1); } else { dicParams.Add("@Id", SiteMiscObject.Id); } dicParams.Add("@Key", SiteMiscObject.Key); dicParams.Add("@Value", SiteMiscObject.Value); dicParams.Add("@SiteId", SiteMiscObject.SiteId); DataSet dataSet = await proxy.ExecuteDataset("SP_SiteMiscAddUp", dicParams); if (dataSet != null && dataSet.Tables != null && dataSet.Tables.Count > 0) { if (dataSet.Tables[0].Rows != null && dataSet.Tables[0].Rows.Count > 0) { int SiteMisc = Convert.ToInt32(dataSet.Tables[0].Rows[0][0].ToString()); return(SiteMisc); } } return(-1); }
private void ButtonBase2_OnClick(object sender, RoutedEventArgs e) { var msStream = WebApiProxy.GetFile(@"http://win.web.nf01.sycdn.kuwo.cn/resource/n1/10/47/2323037830.mp3"); var readFullyStream = new Framework.Recorder.ReadFullyStream(msStream); try { //var inputStream = new AudioFileReader(msStream); //var aggregator = new SampleAggregator(inputStream); //var waveOut = CreateWaveOut(); ////waveOut.PlaybackStopped += OnPlaybackStopped; ////var volumeProvider = new VolumeWaveProvider16(bufferedWaveProvider); ////volumeProvider.Volume = volumeSlider1.Volume; //waveOut.Init(aggregator); //waveOut.Play(); } catch (EndOfStreamException) { // reached the end of the MP3 file / stream } catch (WebException) { // probably we have aborted download from the GUI thread } catch (Exception) { // probably we have aborted download from the GUI thread } if (IsBufferNearlyFull) { } }
public static async Task <List <ViewModel> > GetAllViews(WebApiProxy proxy, int SiteId, int Id = -1) { List <SiteModel> Sites = GetAllSites(proxy, SiteId).Result; List <ViewModel> ViewList = new List <ViewModel>(); Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("@Id", Id); dict.Add("@SiteId", SiteId); dict.Add("@LoadOnlyActive", 0); dict.Add("@ViewName", ""); var dataSet = await proxy.ExecuteDataset("SP_ViewSelect", dict); if (!ReferenceEquals(dataSet, null) && dataSet.Tables.Count > 0) { return((from DataRow row in dataSet.Tables[0].Rows select new ViewModel { Oid = Convert.ToInt32(row["Id"].ToString()), Name = row["Name"].ToString(), Title = row["Title"].ToString(), IsActive = bool.Parse(row["IsActive"].ToString()), IsDefault = bool.Parse(row["IsDefault"].ToString()), Authorized = bool.Parse(row["Authorized"].ToString()), Orientation = row["Orientation"].ToString(), CreateMenu = CheckMenuExistOrNot(proxy, SiteId, Convert.ToInt32(row["Id"].ToString())).Result, SiteID = row["SiteId"].ToString() == string.Empty ? 0 : Convert.ToInt32(row["SiteId"].ToString()), SelectSite = Sites.FirstOrDefault(it => it.Oid == Convert.ToInt32(row["SiteId"].ToString())).Title, }).ToList()); } return(ViewList); }
public static async Task <int> AddMenu(WebApiProxy proxy, MenuModel MenuObject, bool IsNewObject = false) { Dictionary <string, object> dicParams = new Dictionary <string, object>(); if (IsNewObject) { dicParams.Add("@Id", -1); } else { dicParams.Add("@Id", MenuObject.Id); } dicParams.Add("@Name", MenuObject.Name); dicParams.Add("@URL", MenuObject.URL); dicParams.Add("@IsExternal", MenuObject.IsExternal); dicParams.Add("@Order", MenuObject.Order); dicParams.Add("@ViewId", MenuObject.ViewId); dicParams.Add("@SiteId", MenuObject.SiteId); DataSet dataSet = await proxy.ExecuteDataset("SP_MenuAddUp", dicParams); if (dataSet != null && dataSet.Tables != null && dataSet.Tables.Count > 0) { if (dataSet.Tables[0].Rows != null && dataSet.Tables[0].Rows.Count > 0) { int SiteMisc = Convert.ToInt32(dataSet.Tables[0].Rows[0][0].ToString()); return(SiteMisc); } } return(-1); }
public static async Task <List <MenuModel> > GetAllMenu(WebApiProxy proxy, int SiteId) { List <SiteModel> Sites = GetAllSites(proxy, SiteId).Result; List <ViewModel> Views = GetAllViews(proxy, SiteId).Result; Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("@Id", -1); dict.Add("@SiteId", SiteId); dict.Add("@ViewId", -1); var dataSet = await proxy.ExecuteDataset("SP_MenuSelect", dict); if (!ReferenceEquals(dataSet, null) && dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0) { return((from DataRow row in dataSet.Tables[0].Rows select new MenuModel { Id = Convert.ToInt32(row["Id"].ToString()), Name = row["Name"].ToString(), URL = row["URL"].ToString(), IsExternal = Convert.ToBoolean(row["IsExternal"].ToString()), Order = Convert.ToInt32(row["Order"].ToString()), MaxOrder = Convert.ToInt32(row["MaxOrder"].ToString()), ViewId = Convert.ToInt32(row["ViewId"].ToString()), SiteId = row["SiteId"].ToString() == string.Empty ? 0 : Convert.ToInt32(row["SiteId"].ToString()), SiteName = Sites.FirstOrDefault(it => it.Oid == Convert.ToInt32(row["SiteId"].ToString())).Title, ViewName = Views.FirstOrDefault(it => it.Oid == Convert.ToInt32(row["ViewId"].ToString())).Name }).ToList()); } return(new List <MenuModel>()); }
public static async Task <List <SiteDbModel> > GetAllSiteDb(WebApiProxy proxy, int SiteId) { List <SiteModel> Sites = GetAllSites(proxy, SiteId).Result; Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("@Id", -1); dict.Add("@SiteId", SiteId); var dataSet = await proxy.ExecuteDataset("SP_SiteDBSelect", dict); if (!ReferenceEquals(dataSet, null) && dataSet.Tables.Count > 0 && Sites.Count > 0) { return((from DataRow row in dataSet.Tables[0].Rows select new SiteDbModel { Id = Convert.ToInt32(row["Id"].ToString()), Name = row["Name"].ToString(), Server = row["Server"].ToString(), Database = row["Database"].ToString(), UserID = row["UserID"].ToString(), Password = row["Password"].ToString(), Description = row["Description"].ToString(), SiteId = row["SiteId"].ToString() == string.Empty ? 0 : Convert.ToInt32(row["SiteId"].ToString()), SiteName = Sites.FirstOrDefault().Title }).ToList()); } return(new List <SiteDbModel>()); }
public static async Task <List <ViewContentModel> > GetAllContents(WebApiProxy proxy, int siteId, int viewId) { List <SiteModel> Sites = GetAllSites(proxy).Result; List <ViewContentModel> ContentList = new List <ViewContentModel>(); Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("@ViewId", viewId); dict.Add("@SiteId", siteId); var dataSet = await proxy.ExecuteDataset("SP_GetViewContents", dict); if (!ReferenceEquals(dataSet, null) && dataSet.Tables.Count > 0) { ContentList = dataSet.Tables[0].AsEnumerable().Select(row => new ViewContentModel { Id = Convert.ToInt32(row["Id"].ToString()), Name = row["Name"].ToString(), Type = GetRowData <Int32>(row["Type"]), Orientation = GetRowData <string>(row["Orientation"]), Data = JsonConvert.DeserializeObject(row["Data"].ToString()).ToString(), Order = GetRowData <Int32>(row["Order"]), MaxOrder = Convert.ToInt32(row["MaxOrder"]), ViewID = viewId, SiteID = siteId }).OrderBy(t => t.Order).ToList(); } return(ContentList); }
public UserPayQRCodeDialog(int payType) : this() { if (payType == 1) { PayTypeName.Text = "使用支付宝支付"; ImgPayIcon.Source = ConvertHelper.ChangeBitmapToImageSource(Properties.Resources.alipay); } if (payType == 2) { PayTypeName.Text = "使用微信支付"; ImgPayIcon.Source = ConvertHelper.ChangeBitmapToImageSource(Properties.Resources.wechatpay); } PayMoneyShow.Text = GlobalUser.STUDYCARD.card_price + "元"; var result0 = WebApiProxy.GetHtmlRespInfo(ApiType.GetCardOrder, GlobalUser.USER.Token); UserOrderModel model = new UserOrderModel() { token = GlobalUser.USER.Token, order_id = result0.retData.order_id.ToString() }; var result1 = WebApiProxy.GetImage(model, ApiType.GetQrCode, null, "get"); ImgQrCode.Source = ConvertHelper.ChangeBitmapToImageSource(result1 as Bitmap); }
/// <summary> /// 加载题目 /// </summary> /// <param name="item_id"></param> private void BindQsItemInfo() { //初始化 TxtPlayingTime = PlayTime = 0; TxtTotalTime = TotalTime = PaperInfoItem.items[0].item_answer_second * 10; _audioPlayTimes = 0; _item_repet_times = 1; _Recording = RecordState.UnRecord; //默认取第一题 //PaperItems SyncQsContent = PaperInfoItem.items[0].item_content; _syncQsContentAudio = PaperInfoItem.items[0].source_content; PredView.QsItemContent.Children.Clear(); var txt = new TextBlock(); txt.Text = SyncQsContent; txt.HorizontalAlignment = HorizontalAlignment.Center; txt.TextWrapping = TextWrapping.Wrap; txt.FontSize = 28; txt.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#353535")); PredView.QsItemContent.Children.Add(txt); if (!string.IsNullOrEmpty(PaperInfoItem.items[0].img_source_content) && MediaPic.Contains(PaperInfoItem.items[0].img_source_content.ToUpper().Split('.').LastOrDefault())) { string url = WebApiProxy.GetRedirectUrl($"{WebApiProxy.MEDIAURL}{PaperInfoItem.items[0].img_source_content}"); SyncQsInfoImage = new BitmapImage(new Uri(url)); } BindUserScoreBox(); }
public static async Task <List <ContentOfViewModel> > GetContentViews(WebApiProxy proxy, int SiteId) { List <SiteModel> Sites = GetAllSites(proxy, SiteId).Result; List <ViewModel> Views = GetAllViews(proxy, SiteId).Result; List <ContentStyleModel> Contents = GetAllContents(proxy, SiteId).Result; Dictionary <string, object> dict = new Dictionary <string, object>(); dict.Add("@Id", -1); dict.Add("@LoadOnlyActive", 0); dict.Add("@SiteId", SiteId); var dataSet = await proxy.ExecuteDataset("SP_ContentOfViewSelect", dict); if (!ReferenceEquals(dataSet, null) && dataSet.Tables.Count > 0) { return((from DataRow row in dataSet.Tables[0].Rows select new ContentOfViewModel { Id = Convert.ToInt32(row["Id"].ToString()), ContentId = Convert.ToInt32(row["ContentId"].ToString()), ViewId = Convert.ToInt32(row["ViewId"].ToString()), ViewName = Views.FirstOrDefault(i => i.Oid == Convert.ToInt32(row["ViewId"].ToString())).Name, ContentName = Contents.FirstOrDefault(c => c.Id == Convert.ToInt32(row["ContentId"].ToString())).Name, SiteId = row["SiteId"].ToString() == string.Empty ? 0 : Convert.ToInt32(row["SiteId"].ToString()), SiteName = Sites.FirstOrDefault(it => it.Oid == Convert.ToInt32(row["SiteId"].ToString())).Title, Order = Convert.ToInt32(row["Order"].ToString()), }).ToList()); } return(new List <ContentOfViewModel>()); }
public override void OnScoreCallback(SyncScoreCallbckMessage msg) { var ml = new HistoryItemModel() { exam_attend_id = GlobalUser.AttendPaperItemId, item_id = PaperInfoItem.items[0].item_id, token = GlobalUser.USER.Token }; var result1 = WebApiProxy.GetHtmlRespInfo(ml, ApiType.GetSyncHistory, null, "get"); SyncScoreHistoryItem historyItem = new SyncScoreHistoryItem(); try { if (result1?.retCode == 0) { HistoryItem = JsonHelper.FromJson <SyncScoreHistoryItem>(result1.retData.ToString()); } } catch (Exception e) { Log4NetHelper.Error($"抓取历史 单题答题记录 异常", e); } BindUserScoreBox(msg); }
public static async Task <int> AddSiteDB(WebApiProxy proxy, SiteDbModel SiteDBObject, bool IsNewObject = false) { Dictionary <string, object> dicParams = new Dictionary <string, object>(); if (IsNewObject) { dicParams.Add("@Id", -1); } else { dicParams.Add("@Id", SiteDBObject.Id); } dicParams.Add("@Name", SiteDBObject.Name); dicParams.Add("@Server", SiteDBObject.Server); dicParams.Add("@Database", SiteDBObject.Database); dicParams.Add("@UserID", SiteDBObject.UserID); dicParams.Add("@Password", SiteDBObject.Password); dicParams.Add("@Description", SiteDBObject.Description); dicParams.Add("@SiteId", SiteDBObject.SiteId); DataSet dataSet = await proxy.ExecuteDataset("SP_SiteDBAddUp", dicParams); if (dataSet != null && dataSet.Tables != null && dataSet.Tables.Count > 0) { if (dataSet.Tables[0].Rows != null && dataSet.Tables[0].Rows.Count > 0) { int SiteDB = Convert.ToInt32(dataSet.Tables[0].Rows[0][0].ToString()); return(SiteDB); } } return(-1); }
private void Download(object obj) { try { Log4NetHelper.Info(GlobalUser.AUDIODATAFOLDER); string url = obj as string; if (!url.Contains("records.")) { url = $"{WebApiProxy.MEDIAURL}{url}"; } var fileByte = WebApiProxy.GetAudioFile(url); if (fileByte != null) { File.WriteAllBytes(Path.Combine(GlobalUser.AUDIODATAFOLDER, Path.GetFileName(url)), fileByte); } else { Log4NetHelper.Error($"下载 音频失败, err:{url}"); } } catch (Exception ex) { Log4NetHelper.Error($"下载 音频失败, err:{ex}"); } }
public static async Task <int> AddView(WebApiProxy proxy, ViewModel ViewObject, bool IsNewObject = false) { Dictionary <string, object> dicParams = new Dictionary <string, object>(); if (IsNewObject) { dicParams.Add("@Id", -1); } else { dicParams.Add("@Id", ViewObject.Oid); } dicParams.Add("@Name", ViewObject.Name); dicParams.Add("@Title", ViewObject.Title); dicParams.Add("@Logo", 1014); dicParams.Add("@Orientation", ViewObject.Orientation); if (ViewObject.IsActive) { dicParams.Add("@IsActive", "1"); } else { dicParams.Add("@IsActive", "0"); } if (ViewObject.Authorized) { dicParams.Add("@Authorized", "1"); } else { dicParams.Add("@Authorized", "0"); } if (ViewObject.IsDefault) { dicParams.Add("@IsDefault", "1"); } else { dicParams.Add("@IsDefault", "0"); } dicParams.Add("@SiteId", ViewObject.SiteID); DataSet dataSet = await proxy.ExecuteDataset("SP_ViewAddUp", dicParams); if (dataSet != null && dataSet.Tables != null && dataSet.Tables.Count > 0) { if (dataSet.Tables[0].Rows != null && dataSet.Tables[0].Rows.Count > 0) { int ViewID = Convert.ToInt32(dataSet.Tables[0].Rows[0][0].ToString()); return(ViewID); } } return(-1); }
/// <summary> /// 加载题目 /// </summary> /// <param name="item_id"></param> private void BindQsItemInfo() { //初始化 TxtPlayingTime = PlayTime = 0; TxtTotalTime = TotalTime = PaperInfoItem.items[0].item_answer_second * 10; _audioPlayTimes = 0; _item_repet_times = 1; _Recording = RecordState.UnRecord; //默认取第一题 //PaperItems SyncQsContent = PaperInfoItem.items[0].item_content; _syncQsContentAudio = PaperInfoItem.items[0].source_content; WordView.QsItemContent.Children.Clear(); var txt = new TextBlock(); txt.Text = SyncQsContent; txt.TextWrapping = TextWrapping.Wrap; txt.FontSize = 28; txt.Margin = new Thickness(0, 0, 6, 0); //BrushConverter brushConverter = new BrushConverter(); //Brush brush = (Brush)brushConverter.ConvertFromString("#333333"); txt.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#353535")); WordView.QsItemContent.Children.Add(txt); try { KeyWordEx keyWord = JsonHelper.FromJson <KeyWordEx>(PaperInfoItem.items[0].item_keyword); SyncQsYbContent = $"[ {keyWord.yb} ]"; SyncQsZhContent = keyWord.desc; SyncQsExEContent = keyWord.ex_en; SyncQsExZContent = keyWord.ex_zh; if (string.IsNullOrEmpty(keyWord.sp)) { _IsSpell = true; } } catch (Exception ex) { Log4NetHelper.Error($"单词 KeyWord 绑定异常:{PaperInfoItem.items[0].item_keyword}", ex); } if (!string.IsNullOrEmpty(PaperInfoItem.items[0].img_source_content) && MediaPic.Contains(PaperInfoItem.items[0].img_source_content.ToUpper().Split('.').LastOrDefault())) { string url = WebApiProxy.GetRedirectUrl($"{WebApiProxy.MEDIAURL}{PaperInfoItem.items[0].img_source_content}"); SyncQsInfoImage = new BitmapImage(new Uri(url)); } BindUserScoreBox(); //BeginExam(_NextFlowType); }
/// <summary> /// 加载题目 /// </summary> /// <param name="item_id"></param> private void BindQsItemInfo(string item_id = null) { if (_itemIndex >= PaperItems.Count) { //进入 下一道大题 NextQsView(); } else { TitleTwo = PaperItems[_itemIndex].info_content; //if (_itemIndex > 0) //{ // _showIndexNum = _showIndexNum + PaperItems[0].items.Count; //} _subChoiceQsContent.Children.Clear(); QsInfoImage = null; if (!string.IsNullOrEmpty(PaperItems[_itemIndex].info_content_img) && MediaPic.Contains(PaperItems[_itemIndex].info_content_img.ToUpper().Split('.').LastOrDefault())) { string url = WebApiProxy.GetRedirectUrl($"{WebApiProxy.MEDIAURL}{PaperItems[_itemIndex].info_content_img}"); QsInfoImage = new BitmapImage(new Uri(url)); } int idx = 0; if (_itemIndex > 0) { idx = PaperItems[_itemIndex - 1].items.Count; } for (int i = 0; i < PaperItems[_itemIndex].items.Count; i++) { var subChoiceView = new SubTextChoice1View(); subChoiceView.DataContext = new SubTextChoice1ViewModel(PaperItems[_itemIndex].items[i], 0, (idx + i + 1)); _subChoiceQsContent.Children.Add(subChoiceView); } //初始化 PlayTime = 0; TotalTime = 0; _audioPlayTimes = 0; _prepareTime = 0; _answerTime = 0; _item_repet_times = 1; BeginExam(_NextFlowType); } }
/// <summary> /// Web 代理(提供 Api 请求操作)。 /// </summary> /// <typeparam name="T">Api 请求的参数对象类型。</typeparam> /// <param name="model">Api 请求的参数对象。</param> /// <param name="apiType">Api 请求的类型。</param> /// <param name="accessToken">访问令牌。</param> /// <returns>Api 响应对象。</returns> public RespCode WebProxy <T>(T model, ApiType apiType, string accessToken = null, string _Method = "Post") { var result = WebApiProxy.GetHtmlRespInfo(model, apiType, accessToken, _Method); // 验证错误码 if (result?.retCode == 4001) { LoginFailure(); } return(result); }
/// <summary> /// Web 代理(提供 Api 请求操作)。 /// </summary> /// <typeparam name="T">Api 请求的参数对象类型。</typeparam> /// <param name="model">Api 请求的参数对象。</param> /// <param name="apiType">Api 请求的类型。</param> /// <param name="accessToken">访问令牌。</param> /// <returns>Api 响应对象。</returns> public RespCode WebProxy(string filrPath, ApiType apiType, string accessToken = null, string _Method = "Post") { var result = WebApiProxy.GetHtmlFileRespInfo(filrPath, apiType, accessToken, _Method); // 验证错误码 if (result?.retCode == 4001) { LoginFailure(); //return; } return(result); }
public void TestSyncExpiredTask() { string url = Formatter.CombinePath(apiHost, @"api/k2callback/syncexpiredtask"); IList <WebApiQueryParam> _queryParams = new List <WebApiQueryParam>(); _queryParams.Add(new WebApiQueryParam("procInstID", "6444")); _queryParams.Add(new WebApiQueryParam("originalTaskID", "CAAFA419-0EDD-4CAA-BD9C-2FDD2E66E016")); MCDAMReturnObject _returnAMObject = WebApiProxy.Call <MCDAMReturnObject>(url, _queryParams, "POST"); Console.WriteLine("Result: {0}", JsonConvert.SerializeObject(_returnAMObject, Formatting.Indented)); }
private async void ExecuteRunExtendedDialog(object o) { if (_selected_class_id == "-1") { ErrMsgOut = "还未选中班级,无法绑定!"; } else { UserBindClassModel model = new UserBindClassModel() { class_id = _selected_class_id, }; //开始绑定 var result = WebApiProxy.GetHtmlRespInfo(model, ApiType.UserBindClass, GlobalUser.USER.Token); if (result.retCode == 0) { ErrMsgOut = $"您已绑定班级 {_selected_class_name}!"; GlobalUser.CLASSINFO = new ClassInfo() { Class_id = _selected_class_id, Class_name = _selected_class_name, Token = GlobalUser.USER.Token, }; //_uc.CurrentCloseBtn.CommandParameter = true; await Task.Factory.StartNew(() => Thread.Sleep(333)) .ContinueWith(t => { RememberUser(); _uc.CurrentCloseBtn.CommandParameter = true; ButtonAutomationPeer peer = new ButtonAutomationPeer(_uc.CurrentCloseBtn); IInvokeProvider invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider; invokeProv.Invoke(); }, TaskScheduler.FromCurrentSynchronizationContext()); } else { //绑定失败 ErrMsgOut = result.retMsg; } } }
/// <summary> /// 加载题目 /// </summary> /// <param name="item_id"></param> private void BindQsItemInfo(int item_id = 0) { if (_itemIndex >= PaperItems[_infoIndex].items.Count()) { _itemIndex = 0; _infoIndex++; _NextFlowType = ExamFlowType.PromptAudio; } if (_infoIndex >= PaperItems.Count) { _dTimer.Stop(); _dTimer = null; //进入 下一道大题 NextQsView(); } else { //默认取第一题 //PaperItems QsItemContent = PaperItems[_infoIndex].info_content; QsItemContent1 = ""; for (int i = 0; i < PaperItems[_infoIndex].items.Count; i++) { QsItemContent1 += PaperItems[_infoIndex].items[i].item_content + "\r\n\r\n"; } if (!string.IsNullOrEmpty(PaperItems[_infoIndex].items[0].img_source_content) && MediaPic.Contains( PaperItems[_infoIndex].items[0].img_source_content.ToUpper().Split('.') .LastOrDefault())) { string url = WebApiProxy.GetRedirectUrl($"{WebApiProxy.MEDIAURL}{PaperItems[_infoIndex].items[0].img_source_content}"); QsInfoImage = new BitmapImage(new Uri(url)); } //初始化 PlayTime = 0; TotalTime = 0; _audioPlayTimes = 0; _info_repet_times = 1; _item_repet_times = 1; _Recording = RecordState.UnRecord; BeginExam(_NextFlowType); } }
public void UpdateSubChoiceAnswer(string qsId, string qsType) { float myScore = 0f; string myAnswer = ""; //评分 for (int i = 0; i < _paperSubItemDetail.answers.Count; i++) { if ((i + 1) == Int32.Parse(_AnswerOrder)) { if (_paperSubItemDetail.answers[i].answer_is_right == 1) { myScore = _paperSubItemDetail.item_score; } myAnswer = _paperSubItemDetail.answers[i].source_content; break; } } // 异步请求,防止界面假死 Application.Current.Dispatcher.Invoke(new Action(() => { SubmitRecordModel model = new SubmitRecordModel { exam_attend_id = GlobalUser.AttendPaperItemId, item_id = _paperSubItemDetail.item_id, item_score = _paperSubItemDetail.item_score, exam_score = myScore, user_answer = GetChoiceName(myAnswer), item_answer = _paperSubItemDetail.answers.Where(w => w.answer_is_right == 1).ToList()[0].source_content, item_answer_type = 1, qs_id = qsId, qs_type = qsType, item_no = _paperSubItemDetail.item_no }; var result = WebApiProxy.GetHtmlRespInfo(model, ApiType.SubmitRecord, GlobalUser.USER.Token); GlobalUser.DoneItemExam = true; GlobalUser.DoneScore = ScoreType.ScoreSuccess; //评分 if (result?.retCode != 0) { GlobalUser.DoneScore = ScoreType.ScoreFailure; //提交评分 失败了 Log4NetHelper.Error("UpdateSubChoiceAnswer: Error"); Log4NetHelper.Error("上传评分失败 -- result: 提交评分失败"); } })); }
private void UpErr(Exception e) { ErrMsgLog msgInfo = new ErrMsgLog(); msgInfo.user = GlobalUser.USER.Mobile; msgInfo.msginfo = "系统错误"; msgInfo.error = e; msgInfo.isErr = true; Log_Data log = new Log_Data(); log.log_desc = Log_Type.PC_Error.ToString(); log.log_text = msgInfo.ToJson(); log.log_device = JsonHelper.ToJson(GlobalUser.MACHINEINFO.GetDevice()); WebApiProxy.GetHtmlRespInfo(log, ApiType.SysLog, null, "Post"); }
/// <summary> /// 记住用户。 /// </summary> /// <param name="userName">用户名称。</param> /// <param name="phone">手机号码。</param> /// <param name="accessToken">访问令牌。</param> //private new void RememberUser() //{ // var userFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER); // var userDataFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GlobalUser.DATAFOLDER, "user.dat"); // var userDataModel = new UserDataModel // { // UserName = GlobalUser.USER.UserName, // Phone = GlobalUser.USER.Mobile, // Avatar = GlobalUser.USER.Avatar, // AccessToken = GlobalUser.USER.Token, // Password = GlobalUser.USER.Password, // Data = GlobalUser.USER, // ClassData = GlobalUser.CLASSINFO, // StudyCard = GlobalUser.STUDYCARD, // UnFirstOpen = GlobalUser.USER.UnFirstOpen // }; // var userEncoded = // Base64Provider.AESEncrypt(userDataModel.ToJsonItem(), Base64Provider.KEY, Base64Provider.IV); // try // { // if (!Directory.Exists(userFolder)) Directory.CreateDirectory(userFolder); // if (!File.Exists(userDataFile)) // { // var file = File.Create(userDataFile); // file.Close(); // file.Dispose(); // } // using (var sw = new StreamWriter(userDataFile, false)) // { // sw.Write(userEncoded); // } // } // catch (Exception e) // { // Log4NetHelper.Error("写入用户信息异常:", e); // } //} /// <summary> /// 登录成功。 /// </summary> /// <param name="loginWin">登录窗口。</param> private void LoggedIn(Window loginWin) { if (!GlobalUser.AutoLoggedIn) { RememberUser(); } ErrIsShow = Visibility.Hidden; //ErrMsg = "请输入有效的手机号!"; //MessageBox.Show("验证成功"); //GetUserCard(); if (GlobalUser.USER.RetCode == 40400) { loginWin.Show(); //loginWin.Focus(); return; } loginWin.Hide(); { var log = new Log_Data(); log.log_desc = Log_Type.APP_RUN.ToString(); log.log_text = GlobalUser.USER.ToJsonItem(); //$"登录:{GlobalUser.USER?.Mobile}"; log.log_device = JsonHelper.ToJson(GlobalUser.MACHINEINFO.GetDevice()); WebApiProxy.GetHtmlRespInfo(log, ApiType.SysLog, null, "Post"); } //未绑卡 if (GlobalUser.STUDYCARD == null || GlobalUser.STUDYCARD.expire_status == -1 || GlobalUser.STUDYCARD.expire_time == null) { var card = new MainBindCard(); card.Show(); card.Focus(); return; } //if (GlobalUser.MainWin == null) if (!GlobalUser.LoginExpired) { GlobalUser.MainWin = new MainWindow(); } GlobalUser.MainWin.Show(); GlobalUser.MainWin.Focus(); }
private bool GetCompleteResult() { bool resultOK = false; var ml = new GetPaperInfoDetail() { exam_id = GlobalUser.SelectPaperNumber.Split('#')[0], token = GlobalUser.USER.Token }; var result1 = WebProxy(ml, ApiType.GetPaperInfoDetail, null, "get"); if (result1?.retCode == 0) { //发送 var exam_attend = JsonHelper.FromJson <Exam_Attend>(result1.retData.exam_attend.ToString()); if (exam_attend.exam_process == 1) { ProgressValue = 100; TxtProgressValue = $"打分中{ProgressValue}%..."; resultOK = true; return(resultOK); } } else { ErrMsgLog msgInfo = new ErrMsgLog(); msgInfo.user = GlobalUser.USER.Mobile; msgInfo.msginfo = "作答正常完成,未正常返回统计消息"; msgInfo.error = result1.retHtml; msgInfo.isErr = true; Log4NetHelper.Error(msgInfo.ToJson());//$"[user:{GlobalUser.USER?.Mobile},msg:作答正常完成,未正常返回统计消息,data:{result1.retHtml}]"); { Log_Data log = new Log_Data(); log.log_desc = Log_Type.PC_Logout.ToString(); log.log_text = msgInfo.ToJson();//$"[user:{GlobalUser.USER?.Mobile},msg:作答正常完成,未正常返回统计消息,data:{result1.retHtml}]"; log.log_device = JsonHelper.ToJson(GlobalUser.MACHINEINFO.GetDevice()); WebApiProxy.GetHtmlRespInfo(log, ApiType.SysLog, null, "Post"); } } return(resultOK); }
public static int Delete <T>(WebApiProxy proxy, T ModelObject) where T : class { try { Dictionary <string, string> ProcedureInfo = GetProcedureInfo(ModelObject, true); System.ComponentModel.PropertyDescriptorCollection pdc = System.ComponentModel.TypeDescriptor.GetProperties(ModelObject); Dictionary <string, object> dicParams = pdc.Cast <PropertyDescriptor>().Where(item => ProcedureInfo.ContainsKey(item.Name)).ToDictionary(key => ProcedureInfo[key.Name], value => value.GetValue(ModelObject)); proxy.ExecuteNonQuery(ProcedureInfo["ProcedureName"], dicParams); return(1); } catch (SqlException ex) { throw new HttpException(500, ex.ToString()); } }
/// <summary> /// 加载题目 /// </summary> /// <param name="item_id"></param> private void BindQsSubItemInfo() { QsItemContent = $"{_paperSubItemDetail.item_content}";//{_showIndexNum}、 string urla = WebApiProxy.GetRedirectUrl($"{WebApiProxy.MEDIAURL}{_paperSubItemDetail.answers[0].source_content}"); QsItemOptionA = new BitmapImage(new Uri(urla)); string urlb = WebApiProxy.GetRedirectUrl($"{WebApiProxy.MEDIAURL}{_paperSubItemDetail.answers[1].source_content}"); QsItemOptionB = new BitmapImage(new Uri(urlb)); string urlc = WebApiProxy.GetRedirectUrl($"{WebApiProxy.MEDIAURL}{_paperSubItemDetail.answers[2].source_content}"); QsItemOptionC = new BitmapImage(new Uri(urlc)); CurrentOption = "0"; }
/// <summary> /// Web 代理(提供 Api 请求操作)。 /// </summary> /// <typeparam name="T">Api 请求的参数对象类型。</typeparam> /// <param name="model">Api 请求的参数对象。</param> /// <param name="apiType">Api 请求的类型。</param> /// <param name="accessToken">访问令牌。</param> /// <returns>Api 响应对象。</returns> public RespCode WebProxy <T>(T model, ApiType apiType, string accessToken = null, string _Method = "Post") { var result = WebApiProxy.GetHtmlRespInfo(model, apiType, accessToken, _Method); // 验证错误码 if (result?.retCode == 4001) { var windows = Application.Current.Windows; var loginWondow = new Window(); var mainWondow = new Window(); foreach (Window window in windows) { if (window.Name == "ml") { loginWondow = window; } if (window.Name == "MetroWindowMain") { mainWondow = window; } } GlobalUser.LoginWin = loginWondow; loginWondow.Show(); loginWondow.Focus(); DialogHost.CloseAllShow(); mainWondow.Hide(); //mainWondow.Close(); GlobalUser.MainWin?.Hide(); //GlobalUser.MainWin?.Close(); GlobalUser.MainWin = null; GlobalUser.LoginExpired = true; GlobalUser.AutoLoggedIn = false; GlobalUser.USER = null; LoginExpired(loginWondow); //return; } return(result); }