Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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)
            {
            }
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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>());
        }
Exemple #8
0
        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>());
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        /// <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();
        }
Exemple #12
0
        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>());
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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);
        }
Exemple #15
0
        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}");
            }
        }
Exemple #16
0
        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);
        }
Exemple #17
0
        /// <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);
        }
Exemple #18
0
        /// <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);
            }
        }
Exemple #19
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)
            {
                LoginFailure();
            }

            return(result);
        }
Exemple #20
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(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));
        }
Exemple #22
0
        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;
                }
            }
        }
Exemple #23
0
        /// <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);
            }
        }
Exemple #24
0
        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: 提交评分失败");
                }
            }));
        }
Exemple #25
0
        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");
        }
Exemple #26
0
        /// <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();
        }
Exemple #27
0
        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);
        }
Exemple #28
0
        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());
            }
        }
Exemple #29
0
        /// <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";
        }
Exemple #30
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);
        }