public MessageProcessedEventArgs(BotExtension extension) { ProcessedBy = extension; }
public async Task <RedirectResult> Post() { if (HttpContext.Request.Form.Count() == 3) { string login = HttpContext.Request.Form["login"]; string password = HttpContext.Request.Form["password"]; string token = HttpContext.Request.Form["token"]; using (ApplicationContext db = new ApplicationContext()) { var setting = db.Settings.FirstOrDefault(t => t.c_key == "C_URL"); var tfsUrl = db.Settings.FirstOrDefault(t => t.c_key == "C_TFS_URL").c_value; User user; var base64EncodedBytes = Convert.FromBase64String(token); string data = Encoding.UTF8.GetString(base64EncodedBytes); string[] parts = data.Split("|"); if (db.Users.Any(t => t.id == int.Parse(parts[0]) && !t.b_disabled) && db.ChannelAccounts.Any(t => t.account_id == parts[1] && t.c_type == parts[2])) { user = db.Users.FirstOrDefault(t => t.id == int.Parse(parts[0])); } else { return(Redirect("~/?authorize=FAIL&txt=No matches found in the database")); } var tfsToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}|{1}|{2}|{3}|{4}|{5}|{6}", tfsUrl, user.c_project, user.c_domain, login, password, "", ""))); var httpResult = BotExtension.Get(string.Format("{0}/v1/projects", setting.c_value), tfsToken, "application/json"); if (httpResult.IsAuthorize) { user.c_login = login; user.c_password = Convert.ToBase64String(Encoding.UTF8.GetBytes(password)); user.b_authorize = true; var projectItem = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(httpResult.Result); user.c_project = projectItem.name; user.project_id = Guid.Parse((string)projectItem.id); tfsToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}|{1}|{2}|{3}|{4}|{5}|{6}", tfsUrl, user.c_project, user.c_domain, login, password, user.project_id.ToString(), ""))); db.Users.Update(user); db.SaveChanges(); httpResult = BotExtension.Get(string.Format("{0}/v1/teams", setting.c_value), tfsToken, "text/plain"); if (httpResult.IsAuthorize) { await BotExtension.SendMessageAsync(parts[3], parts[4], parts[6], parts[5], "Регистрация в TFS завершена.<br />Укажите в какой команде в находитесь?<br /><br />" + httpResult.Result); } else { user.b_authorize = false; return(Redirect("~/?token=" + token + "&authorize=FAIL&txt=The user was not logged in to the server")); } } else { user.b_authorize = false; return(Redirect("~/?token=" + token + "&authorize=FAIL&txt=The user was not logged in to the server")); } } return(Redirect("~/?authorize=SUCCESS")); } return(Redirect("~/?authorize=FAIL&txt=Token, Username, or password not passed")); }