static void Main(string[] args) { var stopWatch = new StopWatch(); stopWatch.Start(); stopWatch.Stop(new TimeSpan(2, 5, 30)); Console.WriteLine(stopWatch.Timer); stopWatch.Start(); stopWatch.Stop(0, 5, 12); Console.WriteLine(stopWatch.Timer); stopWatch.Reset(); Console.WriteLine(stopWatch.Timer); var post = new StackOverflow("First Post", "This is a post..."); Console.WriteLine($"{post.Title} - {post.Description} - {post.Date} - {post.Votes}"); post.UpVote(); post.UpVote(); post.UpVote(); Console.WriteLine($"{post.Title} - {post.Description} - {post.Date} - {post.Votes}"); post.DownVote(); post.DownVote(); Console.WriteLine($"{post.Title} - {post.Description} - {post.Date} - {post.Votes}"); }
public ActionResult AllSearch(string jobName, string jobLocation) { Dictionary <string, object> model = new Dictionary <string, object>(); List <GlassdoorClass> glassdoor = GlassdoorClass.RunSearch(jobName, jobLocation); List <CraigslistClass> craigslist = CraigslistClass.RunSearch(jobName, jobLocation); List <MonsterClass> monster = MonsterClass.RunSearch(jobName, jobLocation); List <StackOverflow> stackoverflow = StackOverflow.RunSearch(jobName, jobLocation); List <IndeedClass> indeed = IndeedClass.RunSearch(jobName, jobLocation); model.Add("glassdoor", glassdoor); model.Add("craigslist", craigslist); model.Add("monster", monster); model.Add("stackoverflow", stackoverflow); model.Add("indeed", indeed); return(View("All", model)); }
static void StackOverFlow() { var stack = new StackOverflow() { Title = "Courses", Description = "Courses about C#" }; Console.WriteLine(stack.DateCreated); Console.WriteLine(stack.Title); Console.WriteLine(stack.Description); stack.UpVote(); stack.UpVote(); stack.UpVote(); stack.DownVote(); Console.WriteLine(stack.vote); }
public List <StackOverflow> SearchStackOverflow(string title) { string myUrl = "https://api.stackexchange.com/2.2/search/excerpts?order=desc&sort=activity&accepted=True&site=stackoverflow&title=" + HttpUtility.UrlEncode(title); var client = new WebClient(); client.Headers[HttpRequestHeader.AcceptEncoding] = "gzip"; var responseStream = new GZipStream(client.OpenRead(myUrl), CompressionMode.Decompress); var reader = new StreamReader(responseStream); var textResponse = reader.ReadToEnd(); var newList = new List <StackOverflow>(); JObject stackTitles = JObject.Parse(textResponse); foreach (JObject stack in stackTitles["items"]) { StackOverflow result = new StackOverflow(); result.Title = stack.Value <string>("title"); result.Body = stack.Value <string>("body"); result.QuestionId = stack.Value <int>("question_id"); newList.Add(result); } return(newList); }
/// <summary> /// 生成请求链接 /// </summary> /// <param name="authType">在防伪参数追加信息(可用于登录、注册、绑定、解绑区分)</param> /// <returns></returns> public string Auth(string authType = "") { var url = string.Empty; switch (loginType) { case LoginBase.LoginType.QQ: { var reqe = new QQ_Authorization_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = QQ.AuthorizationHref(reqe); } break; case LoginBase.LoginType.WeiBo: { var reqe = new Weibo_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Weibo.AuthorizeHref(reqe); } break; case LoginBase.LoginType.GitHub: { var reqe = new GitHub_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = GitHub.AuthorizeHref(reqe); } break; case LoginBase.LoginType.TaoBao: { var reqe = new TaoBao_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = TaoBao.AuthorizeHref(reqe); } break; case LoginBase.LoginType.MicroSoft: { var reqe = new MicroSoft_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = MicroSoft.AuthorizeHref(reqe); } break; case LoginBase.LoginType.WeChat: { var reqe = new WeChat_Authorization_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Login.WeChat.AuthorizationHref(reqe); } break; case LoginBase.LoginType.DingTalk: { var reqe = new DingTalk_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } //扫描模式 url = DingTalk.AuthorizeHref_ScanCode(reqe); //密码模式 //url = DingTalk.AuthorizeHref_Password(reqe); } break; case LoginBase.LoginType.Gitee: { var reqe = new Gitee_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Gitee.AuthorizeHref(reqe); } break; case LoginBase.LoginType.Google: { var reqe = new Google_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Google.AuthorizeHref(reqe); } break; case LoginBase.LoginType.AliPay: { var reqe = new AliPay_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = AliPay.AuthorizeHref(reqe); } break; case LoginBase.LoginType.StackOverflow: { var reqe = new StackOverflow_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = StackOverflow.AuthorizeHref(reqe); } break; } return(url); }
/// <summary> /// 回调方法 /// </summary> /// <param name="authorizeResult">接收授权码、防伪参数</param> public void AuthCallback(LoginBase.AuthorizeResult authorizeResult) { if (!string.IsNullOrWhiteSpace(authorizeResult.code) || !string.IsNullOrWhiteSpace(authorizeResult.auth_code)) { //唯一标识 string OpenId = string.Empty; switch (loginType) { case LoginBase.LoginType.QQ: { //获取 access_token var tokenEntity = QQ.AccessToken(new QQ_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 OpendId var openidEntity = QQ.OpenId(tokenEntity.access_token); //获取 UserInfo _ = QQ.OpenId_Get_User_Info(new QQ_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = openidEntity.openid }); //身份唯一标识 OpenId = openidEntity.openid; } break; case LoginBase.LoginType.WeiBo: { //获取 access_token var tokenEntity = Weibo.AccessToken(new Weibo_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 access_token 的授权信息 var tokenInfoEntity = Weibo.GetTokenInfo(tokenEntity.access_token); //获取 users/show _ = Weibo.UserShow(new Weibo_UserShow_RequestEntity() { access_token = tokenEntity.access_token, uid = Convert.ToInt64(tokenInfoEntity.uid) }); OpenId = tokenEntity.access_token; } break; case LoginBase.LoginType.WeChat: { //获取 access_token var tokenEntity = Login.WeChat.AccessToken(new WeChat_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user _ = Login.WeChat.Get_User_Info(new WeChat_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = tokenEntity.openid }); //身份唯一标识 OpenId = tokenEntity.openid; } break; case LoginBase.LoginType.GitHub: { //获取 access_token var tokenEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = GitHub.User(tokenEntity.access_token); OpenId = userEntity.id.ToString(); } break; case LoginBase.LoginType.TaoBao: { //获取 access_token var tokenEntity = TaoBao.AccessToken(new TaoBao_AccessToken_RequestEntity() { code = authorizeResult.code }); OpenId = tokenEntity.open_uid; } break; case LoginBase.LoginType.MicroSoft: { //获取 access_token var tokenEntity = MicroSoft.AccessToken(new MicroSoft_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = MicroSoft.User(tokenEntity.access_token); OpenId = userEntity.id.ToString(); } break; case LoginBase.LoginType.DingTalk: { //获取 user var userEntity = DingTalk.User(new DingTalk_User_RequestEntity(), authorizeResult.code); OpenId = userEntity?.openid; } break; case LoginBase.LoginType.Gitee: { //获取 access_token var tokenEntity = Gitee.AccessToken(new Gitee_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = Gitee.User(tokenEntity.access_token); OpenId = userEntity.id.ToString(); } break; case LoginBase.LoginType.Google: { //获取 access_token var tokenEntity = Google.AccessToken(new Google_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = Google.User(tokenEntity.access_token); OpenId = userEntity.sub; } break; case LoginBase.LoginType.AliPay: { //获取 access_token var tokenEntity = AliPay.AccessToken(new AliPay_AccessToken_RequestEntity() { code = authorizeResult.auth_code }); //实际上这一步已经获取到 OpenId,登录验证可以了,获取个人信息还需调用下面的接口 //tokenEntity.user_id //获取 user var userEntity = AliPay.User(new AliPay_User_RequestEntity() { auth_token = tokenEntity.access_token }); OpenId = userEntity.user_id; } break; case LoginBase.LoginType.StackOverflow: { //获取 access_token var tokenEntity = StackOverflow.AccessToken(new StackOverflow_AccessToken_RequestEntity() { code = authorizeResult.code }); //获取 user var userEntity = StackOverflow.User(new StackOverflow_User_RequestEntity() { access_token = tokenEntity.access_token }); OpenId = userEntity.user_id; } break; } //拿到登录标识 if (string.IsNullOrWhiteSpace(OpenId)) { //TO DO } } }
/// <summary> /// 登录链接 /// </summary> /// <param name="loginType">登录类型</param> /// <param name="authType">登录防伪追加标识,区分登录、注册</param> /// <returns></returns> public static string LoginLink(string loginType, string authType = "") { string url = string.Empty; if (Enum.TryParse(loginType, true, out LoginBase.LoginType vtype)) { switch (vtype) { case LoginBase.LoginType.QQ: { var reqe = new QQ_Authorization_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = QQ.AuthorizationHref(reqe); } break; case LoginBase.LoginType.WeiBo: { var reqe = new Weibo_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Weibo.AuthorizeHref(reqe); } break; case LoginBase.LoginType.WeChat: { var reqe = new WeChat_Authorization_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = WeChat.AuthorizationHref(reqe); } break; case LoginBase.LoginType.GitHub: { var reqe = new GitHub_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = GitHub.AuthorizeHref(reqe); } break; case LoginBase.LoginType.Gitee: { var reqe = new Gitee_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Gitee.AuthorizeHref(reqe); } break; case LoginBase.LoginType.TaoBao: { var reqe = new TaoBao_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = TaoBao.AuthorizeHref(reqe); } break; case LoginBase.LoginType.MicroSoft: { var reqe = new MicroSoft_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = MicroSoft.AuthorizeHref(reqe); } break; case LoginBase.LoginType.DingTalk: { var reqe = new DingTalk_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = DingTalk.AuthorizeHref_ScanCode(reqe); } break; case LoginBase.LoginType.Google: { var reqe = new Google_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = Google.AuthorizeHref(reqe); } break; case LoginBase.LoginType.AliPay: { var reqe = new AliPay_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = AliPay.AuthorizeHref(reqe); } break; case LoginBase.LoginType.StackOverflow: { var reqe = new StackOverflow_Authorize_RequestEntity(); if (!string.IsNullOrWhiteSpace(authType)) { reqe.state = authType + reqe.state; } url = StackOverflow.AuthorizeHref(reqe); } break; } } if (string.IsNullOrWhiteSpace(url)) { url = "/account/login"; } return(url); }
public void AFirstTest() { var overflow = new StackOverflow(); }
public async Task <SoResponse> SoQuestion([FromBody] SoRequest query) { return(await StackOverflow.Query(query.Question)); }
/// <summary> /// 登录授权回调 /// </summary> /// <param name="authorizeResult">获取授权码以及防伪标识</param> /// <returns></returns> public IActionResult AuthCallback(LoginBase.AuthorizeResult authorizeResult) { var vm = new SharedResultVM(); try { if (string.IsNullOrWhiteSpace(authorizeResult.code)) { vm.Set(SharedEnum.RTag.unauthorized); } else { //唯一标示 string openId = string.Empty; //注册信息 var mo = new Domain.UserInfo() { LoginLimit = 0, UserSex = 0, UserCreateTime = DateTime.Now }; //头像 string avatar = string.Empty; Enum.TryParse(RouteData.Values["id"]?.ToString(), true, out LoginBase.LoginType vtype); switch (vtype) { case LoginBase.LoginType.QQ: { //获取 access_token var tokenEntity = QQ.AccessToken(new QQ_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 OpendId var openidEntity = QQ.OpenId(tokenEntity.access_token); Console.WriteLine(openidEntity.ToJson()); //获取 UserInfo var userEntity = QQ.OpenId_Get_User_Info(new QQ_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = openidEntity.openid }); Console.WriteLine(userEntity.ToJson()); //身份唯一标识 openId = openidEntity.openid; mo.OpenId1 = openId; mo.Nickname = userEntity.nickname; mo.UserSex = userEntity.gender == "男" ? 1 : 2; mo.UserSay = ""; mo.UserUrl = ""; avatar = userEntity.figureurl_2; } break; case LoginBase.LoginType.WeiBo: { //获取 access_token var tokenEntity = Weibo.AccessToken(new Weibo_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 access_token 的授权信息 var tokenInfoEntity = Weibo.GetTokenInfo(tokenEntity.access_token); Console.WriteLine(tokenInfoEntity.ToJson()); //获取 users/show var userEntity = Weibo.UserShow(new Weibo_UserShow_RequestEntity() { access_token = tokenEntity.access_token, uid = Convert.ToInt64(tokenInfoEntity.uid) }); Console.WriteLine(userEntity.ToJson()); openId = tokenEntity.access_token; mo.OpenId2 = openId; mo.Nickname = userEntity.screen_name; mo.UserSex = userEntity.gender == "m" ? 1 : userEntity.gender == "f" ? 2 : 0; mo.UserSay = userEntity.description; mo.UserUrl = userEntity.domain; avatar = userEntity.avatar_large; } break; case LoginBase.LoginType.WeChat: { //获取 access_token var tokenEntity = Netnr.Login.WeChat.AccessToken(new WeChat_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //openId = tokenEntity.openid; //获取 user var userEntity = Netnr.Login.WeChat.Get_User_Info(new WeChat_OpenAPI_RequestEntity() { access_token = tokenEntity.access_token, openid = tokenEntity.openid }); Console.WriteLine(userEntity.ToJson()); avatar = userEntity.headimgurl; } break; case LoginBase.LoginType.GitHub: { //获取 access_token var tokenEntity = GitHub.AccessToken(new GitHub_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = GitHub.User(tokenEntity.access_token); Console.WriteLine(userEntity.ToJson()); openId = userEntity.id.ToString(); mo.OpenId3 = openId; mo.Nickname = userEntity.name; mo.UserSay = userEntity.bio; mo.UserUrl = userEntity.blog; mo.UserMail = userEntity.email; avatar = userEntity.avatar_url; } break; case LoginBase.LoginType.Gitee: { //获取 access_token var tokenEntity = Gitee.AccessToken(new Gitee_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = Gitee.User(tokenEntity.access_token); Console.WriteLine(userEntity.ToJson()); //openId = userEntity.id.ToString(); mo.Nickname = userEntity.name; mo.UserSay = userEntity.bio; mo.UserUrl = userEntity.blog; avatar = userEntity.avatar_url; } break; case LoginBase.LoginType.TaoBao: { //获取 access_token var tokenEntity = TaoBao.AccessToken(new TaoBao_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); openId = tokenEntity.open_uid; mo.OpenId4 = openId; mo.Nickname = "淘宝用户"; } break; case LoginBase.LoginType.MicroSoft: { //获取 access_token var tokenEntity = MicroSoft.AccessToken(new MicroSoft_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = MicroSoft.User(tokenEntity.access_token); Console.WriteLine(userEntity.ToJson()); openId = userEntity.id; mo.OpenId5 = openId; mo.Nickname = userEntity.last_name + userEntity.first_name; mo.UserMail = userEntity.emails?["account"].ToStringOrEmpty(); } break; case LoginBase.LoginType.DingTalk: { //获取 user var userEntity = DingTalk.User(new DingTalk_User_RequestEntity(), authorizeResult.code); Console.WriteLine(userEntity.ToJson()); openId = userEntity.openid; mo.OpenId6 = openId; mo.Nickname = userEntity.nick; } break; case LoginBase.LoginType.Google: { //获取 access_token var tokenEntity = Google.AccessToken(new Google_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = Google.User(tokenEntity.access_token); Console.WriteLine(userEntity.ToJson()); //openId = userEntity.sub; avatar = userEntity.picture; } break; case LoginBase.LoginType.AliPay: { //获取 access_token var tokenEntity = AliPay.AccessToken(new AliPay_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //openId = tokenEntity.user_id; //获取 user var userEntity = AliPay.User(new AliPay_User_RequestEntity() { auth_token = tokenEntity.access_token }); Console.WriteLine(userEntity.ToJson()); avatar = userEntity.avatar; } break; case LoginBase.LoginType.StackOverflow: { //获取 access_token var tokenEntity = StackOverflow.AccessToken(new StackOverflow_AccessToken_RequestEntity() { code = authorizeResult.code }); Console.WriteLine(tokenEntity.ToJson()); //获取 user var userEntity = StackOverflow.User(new StackOverflow_User_RequestEntity() { access_token = tokenEntity.access_token }); Console.WriteLine(userEntity.ToJson()); //openId= userEntity.user_id; avatar = userEntity.profile_image; } break; } mo.UserCreateTime = DateTime.Now; mo.UserName = openId; mo.UserPwd = CalcTo.MD5(openId); if (!string.IsNullOrWhiteSpace(avatar)) { mo.UserPhoto = UniqueTo.LongId().ToString() + ".jpg"; } Console.WriteLine(mo.ToJson()); if (string.IsNullOrWhiteSpace(openId)) { vm.Set(SharedEnum.RTag.unauthorized); vm.Msg = "身份验证失败"; } else { //判断是绑定操作 bool isbind = User.Identity.IsAuthenticated && authorizeResult.state.StartsWith("bind"); if (isbind) { int uid = Apps.LoginService.Get(HttpContext).UserId; //检测是否绑定其它账号 var queryIsBind = db.UserInfo.Where(x => x.UserId != uid); switch (vtype) { case LoginBase.LoginType.QQ: queryIsBind = queryIsBind.Where(x => x.OpenId1 == openId); break; case LoginBase.LoginType.WeiBo: queryIsBind = queryIsBind.Where(x => x.OpenId2 == openId); break; case LoginBase.LoginType.GitHub: queryIsBind = queryIsBind.Where(x => x.OpenId3 == openId); break; case LoginBase.LoginType.TaoBao: queryIsBind = queryIsBind.Where(x => x.OpenId4 == openId); break; case LoginBase.LoginType.MicroSoft: queryIsBind = queryIsBind.Where(x => x.OpenId5 == openId); break; case LoginBase.LoginType.DingTalk: queryIsBind = queryIsBind.Where(x => x.OpenId6 == openId); break; } if (queryIsBind.Any()) { return(Content("已绑定其它账号,不能重复绑定")); } var userInfo = db.UserInfo.Find(uid); switch (vtype) { case LoginBase.LoginType.QQ: userInfo.OpenId1 = openId; break; case LoginBase.LoginType.WeiBo: userInfo.OpenId2 = openId; break; case LoginBase.LoginType.GitHub: userInfo.OpenId3 = openId; break; case LoginBase.LoginType.TaoBao: userInfo.OpenId4 = openId; break; case LoginBase.LoginType.MicroSoft: userInfo.OpenId5 = openId; break; case LoginBase.LoginType.DingTalk: userInfo.OpenId6 = openId; break; } db.UserInfo.Update(userInfo); db.SaveChanges(); return(Redirect("/user/setting")); } else { Domain.UserInfo vmo = null; switch (vtype) { case LoginBase.LoginType.QQ: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId1 == openId); break; case LoginBase.LoginType.WeiBo: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId2 == openId); break; case LoginBase.LoginType.GitHub: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId3 == openId); break; case LoginBase.LoginType.TaoBao: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId4 == openId); break; case LoginBase.LoginType.MicroSoft: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId5 == openId); break; case LoginBase.LoginType.DingTalk: vmo = db.UserInfo.FirstOrDefault(x => x.OpenId6 == openId); break; } //未注册 if (vmo == null) { var ruvm = RegisterUser(mo); if (ruvm.Code == 200) { vm = ValidateLogin(vtype, mo); //拉取头像 if (vm.Code == 200 && !string.IsNullOrWhiteSpace(avatar)) { try { //物理根路径 var prp = GlobalTo.GetValue("StaticResource:PhysicalRootPath").Replace("~", GlobalTo.ContentRootPath); var ppath = PathTo.Combine(prp, GlobalTo.GetValue("StaticResource:AvatarPath")); if (!Directory.Exists(ppath)) { Directory.CreateDirectory(ppath); } HttpTo.DownloadSave(HttpTo.HWRequest(avatar), PathTo.Combine(ppath, mo.UserPhoto)); } catch (Exception ex) { Console.WriteLine(ex); } } } else { vm.Msg = ruvm.Msg; } } else { vm = ValidateLogin(vtype, vmo); } } } } } catch (Exception ex) { Apps.FilterConfigs.WriteLog(HttpContext, ex); Response.Headers["X-Output-Msg"] = ex.ToJson(); vm.Set(ex); } //成功 if (vm.Code == 200) { var rurl = Request.Cookies["ReturnUrl"]; rurl = string.IsNullOrWhiteSpace(rurl) ? "/" : rurl; if (rurl.StartsWith("http")) { rurl += "?cookie=ok"; } return(Redirect(rurl)); } else { return(Redirect("/home/error")); } }
public ActionResult StackOverflowSearch(string jobName, string jobLocation) { List <StackOverflow> model = StackOverflow.RunSearch(jobName, jobLocation); return(View("StackOverflow", model)); }
static void Main(string[] args) { SecureString certPassword = new NetworkCredential("", Environment.GetEnvironmentVariable("certPassword")).SecurePassword; string certLocation = Environment.GetEnvironmentVariable("certLocation"); string dbServer = Environment.GetEnvironmentVariable("ravenDBServer"); System.Console.WriteLine($"Using certificate {certLocation}"); System.Console.WriteLine($"Using RavenDB at {dbServer}"); System.Console.WriteLine($"Please enter the database name"); string databaseName = System.Console.ReadLine(); IDocumentStore store = new DocumentStore() { Urls = new[] { dbServer }, Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(certLocation, certPassword), Database = databaseName }.Initialize(); bool quit = false; while (!quit) { System.Console.WriteLine("What do you want to do?"); System.Console.WriteLine("To get some data from stackoverflow in the database press S"); System.Console.WriteLine("To create a full text index over the stackoverflow questions press I"); System.Console.WriteLine("To add data or an index to the Project Gutenberg data press G"); System.Console.WriteLine("To query the GutBook index press Q"); System.Console.WriteLine("To add a test record press T"); var key = System.Console.ReadKey(); System.Console.WriteLine(); if (key.Key.Equals(ConsoleKey.T)) { AddTestRecord(store); } else if (key.Key.Equals(ConsoleKey.S)) { System.Console.WriteLine("How many pages (100 questions per page) of data do you want?"); int.TryParse(System.Console.ReadLine(), out int pages); StackOverflow.AddData(store, pages); } else if (key.Key.Equals(ConsoleKey.I)) { StackOverflow.AddIndexesAndAnalyzers(store); } else if (key.Key.Equals(ConsoleKey.G)) { System.Console.WriteLine("Press D to get data and I to add index"); key = System.Console.ReadKey(); System.Console.WriteLine(); if (key.Key.Equals(ConsoleKey.D)) { System.Console.WriteLine("Where is the Project Gutenberg root folder? (Default D:\\gut)"); string PGLoc = System.Console.ReadLine(); if (string.IsNullOrEmpty(PGLoc)) { PGLoc = "D:\\gut"; } ProjectGutenberg.AddData(store, PGLoc); } else if (key.Key.Equals(ConsoleKey.I)) { ProjectGutenberg.AddIndexesAndAnalyzers(store); } } else if (key.Key.Equals(ConsoleKey.Q)) { System.Console.WriteLine("What do you want to search for? (format like *something* *therthing somethingel*"); var keywords = System.Console.ReadLine(); System.Console.WriteLine("Press O for and OR search or A for an AND"); key = System.Console.ReadKey(); System.Console.WriteLine(); IList <GutBook> gutBooks = new List <GutBook>(); if (key.Key.Equals(ConsoleKey.O)) { gutBooks = ProjectGutenberg.Query(store, keywords, true); } else if (key.Key.Equals(ConsoleKey.A)) { gutBooks = ProjectGutenberg.Query(store, keywords, false); } System.Console.WriteLine(JsonConvert.SerializeObject(gutBooks.Select(x => x.BookId).ToList())); } else { System.Console.WriteLine("try again"); } } store.Dispose(); System.Console.WriteLine("Press any key to exit"); System.Console.ReadKey(); }
public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> argument) { var message = await argument; if (_pizzaFlow) { if (message.Text == "abort") { PromptDialog.Confirm(context, AfterResetAsync, "Are you sure you want to abort ordering?", "Didn't get that!", promptStyle: PromptStyle.None); } else { context.Wait(MessageReceivedAsync); } } else { string resultString = "Sorry, I am not getting you..."; QueryResult luisResult = await GetEntityFromLuis(message.Text); switch (luisResult.topScoringIntent.intent) { case "Coding": { if (luisResult.entities.Any()) { var query = luisResult.entities.FirstOrDefault(x => x.type.ToLower().Contains("topic"))?.entity ?? ""; var tag = luisResult.entities.FirstOrDefault(x => x.type.ToLower().Contains("language"))?.entity ?? ""; //var query = luisResult.entities.OrderBy(x => x.startIndex).Select(x => x.entity).Aggregate((current, next) => current + " " + next); //msg.Text = soResult.Body; //msg.Attachments = new List<Attachment>() //{ // new Attachment() // { // ContentType = "application/vnd.microsoft.card.thumbnail", // Name = soResult.Title, // Content = "Please visit my site.", // ContentUrl = soResult.Link, // } //}; var soResult = await StackOverflow.Query(query, tag); var msg2 = context.MakeMessage(); msg2.Type = "message"; msg2.TextFormat = "markdown"; //var converter = new Converter(); //var markdown = converter.Convert(soResult.Body); //var converter = new ReverseMarkdown.Converter(); //string markdown = converter.Convert(soResult.Body); msg2.Text = soResult.Body; await context.PostAsync(msg2); var msg = context.MakeMessage(); msg.Type = "message"; msg.Attachments = new List <Attachment>(); List <CardImage> cardImages = new List <CardImage>(); cardImages.Add(new CardImage(url: "https://cdn.sstatic.net/Sites/stackoverflow/img/[email protected]?v=73d79a89bded&a")); List <CardAction> cardButtons = new List <CardAction>(); CardAction plButton = new CardAction() { Value = soResult.Link, Type = "openUrl", Title = soResult.Title }; cardButtons.Add(plButton); ThumbnailCard plCard = new ThumbnailCard() { Title = soResult.Title, Subtitle = "Please click me for more information!", Images = cardImages, Buttons = cardButtons }; Attachment plAttachment = plCard.ToAttachment(); msg.Attachments.Add(plAttachment); // "attachments": [ // { // "contentType": "application/vnd.microsoft.card.thumbnail", // "content": { // "title": "I'm a thumbnail card", // "subtitle": "Please visit my site.", // "images": [ // { // "url": "https://mydeploy.azurewebsites.net/matsu.jpg" // } // ], // "buttons": [ // { // "type": "openUrl", // "title": "Go to my site", // "value": "https://blogs.msdn.microsoft.com/tsmatsuz" // } // ] // } // } //] await context.PostAsync(msg); } context.Wait(MessageReceivedAsync); break; } case "Greeting": { var rand = new Random(); resultString = Greetings[rand.Next(0, Greetings.Length)]; await context.PostAsync(resultString); context.Wait(MessageReceivedAsync); break; } case "xkcd": { var reply = context.MakeMessage(); var imgString = string.Empty; if (luisResult.entities.Any()) { imgString = await XkcdLib.GetComic(luisResult.entities[0].entity); } else { imgString = await XkcdLib.GetRandomComic(); } reply.Attachments = new List <Attachment> { new Attachment() { ContentUrl = imgString, ContentType = "image/jpg", Name = $"{Guid.NewGuid()}.jpg" } }; await context.PostAsync(reply); context.Wait(MessageReceivedAsync); break; } case "OrderPizza": { //await context.PostAsync($"Hmm would you like to order pizza?"); _pizzaFlow = true; PromptDialog.Text(context, Resume, "Hmm would you like to order pizza?", "Didn't get that!"); break; } default: { await context.PostAsync(resultString); context.Wait(MessageReceivedAsync); break; } } } }