public void Setup() { this.provider = new Mock<ICacheProvider>(); this.provider.Setup(ic => ic.Read(It.Is<Uri>(u => u.OriginalString.Equals("http://localhost/")), It.Is<IHttp>(h => h != null))).Returns(Task.FromResult(returnContent)); this.provider.Setup(ic => ic.ProvidesCacheForRequest(It.IsAny<Uri>())).Returns(true); this.handler = new CacheHandler(this.provider.Object); this.httpClient = new HttpClient(this.handler); }
static void ScanForScriptFunctions(BlamVersion engine, string path, string[] script_functions) { using (var handler = new CacheHandler<Blam.Halo3.CacheFile>(engine, path)) { var cf = handler.CacheInterface; cf.Read(); ScanForScriptFunctionsImpl(script_functions, handler.CacheInterface); } }
internal static void DumpZoneDataMethod(object param) { var args = param as CacheFileOutputInfoArgs; string out_dir = Path.Combine(kTestResultsPath, @"\resource_dump\"); if (!Directory.Exists(out_dir)) Directory.CreateDirectory(out_dir); using (var handler = new CacheHandler<Blam.Halo3.CacheFileBase>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; string header_name = cache.Header.Name; if ((args.Game & BlamVersion.HaloOdst) == 0 && MapNeedsUniqueName(header_name)) header_name = cache.GetUniqueName(); var ci = cache.IndexHalo3[3]; // zone cache.InputStream.Seek(ci.Offset); using (var fs = File.Create(Path.Combine(out_dir, header_name) + ".zone")) { fs.Write(cache.InputStream.ReadBytes(532), 0, 532); } using (var sw = File.CreateText(Path.Combine(out_dir, header_name) + ".zone.txt")) { sw.WriteLine("Mask: {0:X}", cache.AddressMask); sw.WriteLine(); sw.WriteLine("Zone: {0:X}", ci.Offset); sw.WriteLine(); cache.InputStream.Seek(ci.Offset + 0x58); int count; sw.WriteLine("Count: {0:X}", count = cache.InputStream.ReadInt32()); var handles = new resource_handle[count]; handles.Initialize(); cache.InputStream.Seek(cache.InputStream.ReadPointer()); for (int x = 0; x < count; x++) { handles[x].Read(cache); handles[x].ToString(x, cache, sw); sw.WriteLine(); sw.Flush(); } handles = null; } } args.SignalFinished(); }
static void CacheOutputInformation(object param) { var args = param as CacheFileOutputInfoArgs; using (var handler = new CacheHandler<Blam.Stubbs.CacheFile>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; BlamLib.Blam.CacheFile.OutputTags(cache, BuildResultPath(kTestResultsPath, args.Game, cache.Header.Name, null, "txt")); } args.SignalFinished(); }
static void CacheLoadResourceSpecificXbox(string map) { using (var handler = new CacheHandler<Blam.Halo3.CacheFile>(BlamVersion.Halo3_Xbox, map)) { handler.Read(); var cache = handler.CacheInterface; var play_index = cache.TagIndexManager.OpenFirstInstance(Blam.Halo3.TagGroups.play); var playman = cache.TagIndexManager[play_index]; var playdef = playman.TagDefinition as Blam.Halo3.Tags.cache_file_resource_layout_table_group; var zone_index = cache.TagIndexManager.OpenFirstInstance(Blam.Halo3.TagGroups.zone); var zoneman = cache.TagIndexManager[zone_index]; var zonedef = zoneman.TagDefinition as Blam.Halo3.Tags.cache_file_resource_gestalt_group; if (map == kMapPathChillout) { var sbsp_index = cache.TagIndexManager.Open(@"levels\dlc\chillout\chillout", BlamLib.Blam.Halo3.TagGroups.sbsp); var sbspman = cache.TagIndexManager[sbsp_index]; var sbspdef = sbspman.TagDefinition as Blam.Halo3.Tags.scenario_structure_bsp_group; Blam.DatumIndex rsrc_index = sbspdef.BspRenderResourcesIndex.Value; TagInterface.Definition rsrcdef = zonedef.LoadResources(rsrc_index, cache, playdef.ResourceLayoutTable); cache.TagIndexManager.Unload(sbsp_index); } if (map == kMapPathSandbox) { var mode_index = cache.TagIndexManager.Open(@"objects\levels\dlc\shared\golf_club\fp_golf_club\fp_golf_club", Blam.Halo3.TagGroups.mode); var modeman = cache.TagIndexManager[mode_index]; var modedef = modeman.TagDefinition as Blam.Halo3.Tags.render_model_group; Blam.DatumIndex rsrc_index = modedef.ResourceId.Value; TagInterface.Definition rsrcdef = zonedef.LoadResources(rsrc_index, cache, playdef.ResourceLayoutTable, true); (rsrcdef as Blam.Cache.Tags.render_geometry_api_resource_definition).Debug(modeman, Path.Combine(kTestResultsPath, "debug_render_geometry.txt"), true); cache.TagIndexManager.Unload(mode_index); } playdef = null; cache.TagIndexManager.Unload(play_index); zonedef = null; cache.TagIndexManager.Unload(zone_index); } }
static void CacheExtractionMethod(object param) { var args = param as CacheFileOutputInfoArgs; using (var handler = new CacheHandler<Blam.Halo2.CacheFile>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; var ti = cache.TagIndexManager as Blam.Halo2.InternalCacheTagIndex; ti.ExtractionInitialize(); Assert.IsNotNull(ti.kVertexBuffers); { string test_results_tags_path = EngineGetTestResultsPath(args.Game) + @"tags\"; // extract with dependents, database and overwrite existing tag files var ex_args = new Blam.CacheExtractionArguments(test_results_tags_path, true, true, true, kExtractionDontUseTags); Blam.CacheIndex.Item tag_item; //Assert.IsTrue(cache.TryAndFind(@"objects\characters\masterchief\masterchief", Blam.Halo2.TagGroups.hlmt, out tag_item)); //Assert.IsTrue(cache.TryAndFind(@"scenarios\solo\07a_highcharity\07a_highcharity_high_0_lightmap", Blam.Halo2.TagGroups.ltmp, out tag_item)); //Assert.IsTrue(cache.TryAndFind(@"scenarios\multi\example\example_example_lightmap", Blam.Halo2.TagGroups.ltmp, out tag_item)); //Assert.IsTrue(cache.TryAndFind(@"scenarios\objects\covenant\military\scarab\scarab", Blam.Halo2.TagGroups.mode, out tag_item)); Assert.IsTrue(cache.TryAndFind(@"scenarios\solo\03b_newmombasa\earthcity_4", Blam.Halo2.TagGroups.sbsp, out tag_item)); //Assert.IsTrue(cache.TryAndFind(@"ui\hud\hud_messages", Blam.Halo2.TagGroups.unic, out tag_item)); { var cei = ti.ExtractionBegin(tag_item.Datum, ex_args); Assert.IsTrue(ti.Extract(cei)); ti.ExtractionEnd(); } } ti.ExtractionDispose(); } args.SignalFinished(); }
static MapSndComparer SndComparerMethod(CacheFileOutputInfoArgs args) { string dir = Path.GetDirectoryName(args.MapPath); MapSndComparer cmp; using (var handler = new CacheHandler<Blam.Halo3.CacheFileBase>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; cmp = new MapSndComparer(args.MapPath, cache.IndexHalo3.TagCount); foreach (var tag in cache.IndexHalo3) { if (tag.GroupTag != Blam.Halo3.TagGroups.snd_) continue; var snd_index = cache.TagIndexManager.Open(tag.Datum); var snd_man = cache.TagIndexManager[snd_index]; cmp.Add(cache.References[snd_man.ReferenceName], snd_man.TagDefinition as Blam.Halo3.Tags.cache_file_sound_group); cache.TagIndexManager.Unload(snd_index); } } return cmp; }
//[OutputCache(Duration = 600, VaryByParam = "*")] public ActionResult SearchResults(int?page, string q, string l, string sub) { if (q == null || q.Length < 3) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //sanitize q = q.Trim(); if (q == "rick roll") { return(new RedirectResult("https://www.youtube.com/watch?v=dQw4w9WgXcQ")); } if (q == "spoon") { return(View("Jaje")); } // limit the search to selected subverse if (l != null && sub != null) { // ViewBag.SelectedSubverse = string.Empty; ViewBag.SearchTerm = q; const int pageSize = 25; int pageNumber = (page ?? 0); if (pageNumber < 0) { return(View("~/Views/Errors/Error_404.cshtml")); } string cacheKey = CacheHandler.Keys.Search(sub, q); IList <Message> cacheData = (IList <Message>)CacheHandler.Retrieve(cacheKey); if (cacheData == null) { cacheData = (IList <Message>)CacheHandler.Register(cacheKey, new Func <object>(() => { var results = (from m in _db.Messages join s in _db.Subverses on m.Subverse equals s.name where !s.admin_disabled.Value && m.Name != "deleted" && m.Subverse == sub && (m.Linkdescription.ToLower().Contains(q) || m.MessageContent.ToLower().Contains(q) || m.Title.ToLower().Contains(q)) orderby m.Rank ascending, m.Date descending select m).Take(25).ToList(); return(results); }), TimeSpan.FromMinutes(10)); } //var resultsx = _db.Messages // .Where(x => x.Name != "deleted" && x.Subverse == sub && // (x.Linkdescription.ToLower().Contains(q) || x.MessageContent.ToLower().Contains(q) || x.Title.ToLower().Contains(q)) // ).OrderByDescending(s => s.Rank) // .ThenByDescending(s => s.Date).Take(25); ViewBag.Title = "search results"; var paginatedResults = new PaginatedList <Message>(cacheData, 0, pageSize, 24); //HACK: To turn off paging return(View("~/Views/Search/Index.cshtml", paginatedResults)); } else { ViewBag.SelectedSubverse = string.Empty; ViewBag.SearchTerm = q; const int pageSize = 25; int pageNumber = (page ?? 0); if (pageNumber < 0) { return(View("~/Views/Errors/Error_404.cshtml")); } string cacheKey = CacheHandler.Keys.Search(q); IList <Message> cacheData = (IList <Message>)CacheHandler.Retrieve(cacheKey); if (cacheData == null) { cacheData = (IList <Message>)CacheHandler.Register(cacheKey, new Func <object>(() => { var results = (from m in _db.Messages join s in _db.Subverses on m.Subverse equals s.name where !s.admin_disabled.Value && m.Name != "deleted" && //m.Subverse == sub && (m.Linkdescription.ToLower().Contains(q) || m.MessageContent.ToLower().Contains(q) || m.Title.ToLower().Contains(q)) orderby m.Rank ascending, m.Date descending select m ).Take(25).ToList(); return(results); }), TimeSpan.FromMinutes(10)); } var paginatedResults = new PaginatedList <Message>(cacheData, 0, pageSize, 24);//HACK to stop paging ViewBag.Title = "search results"; return(View("~/Views/Search/Index.cshtml", paginatedResults)); } }
internal static void CacheExtractSoundMethod(object param) { var args = param as CacheFileOutputInfoArgs; using (var handler = new CacheHandler<Blam.Cache.CacheFileGen3>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; var play_index = cache.TagIndexManager.OpenFirstInstance(Blam.Halo3.TagGroups.play); var playman = cache.TagIndexManager[play_index]; var playdef = playman.TagDefinition as Blam.Cache.Tags.cache_file_resource_layout_table_group; var zone_index = cache.TagIndexManager.OpenFirstInstance(Blam.Halo3.TagGroups.zone); var zoneman = cache.TagIndexManager[zone_index]; var zonedef = zoneman.TagDefinition as Blam.Cache.Tags.cache_file_resource_gestalt_group; var ugh_index = cache.TagIndexManager.OpenFirstInstance(Blam.Halo3.TagGroups.ugh_); var ughman = cache.TagIndexManager[ugh_index]; var ughdef = ughman.TagDefinition as Blam.Cache.Tags.sound_cache_file_gestalt_group_gen3; var snd_index = cache.TagIndexManager.Open(kSoundExtractionTagName, Blam.Halo3.TagGroups.snd_); var sndman = cache.TagIndexManager[snd_index]; var snddef = sndman.TagDefinition as Blam.Cache.Tags.cache_file_sound_group_gen3; Blam.DatumIndex rsrc_index = snddef.ResourceDatumIndex; TagInterface.Definition rsrcdef = zonedef.LoadResources(rsrc_index, cache, playdef.GetResourceLayoutTable()); ExtractSoundResource(Path.GetFileNameWithoutExtension(sndman.Name), ughdef, snddef, rsrcdef as Blam.Cache.Tags.sound_resource_definition); snddef = null; cache.TagIndexManager.Unload(snd_index); ughdef = null; cache.TagIndexManager.Unload(ugh_index); zonedef = null; cache.TagIndexManager.Unload(zone_index); playdef = null; cache.TagIndexManager.Unload(play_index); } args.SignalFinished(); }
// names: 104\8 // bipd: 128\78 // vehi: 140\D0 // weap: 170\D0 // eqip: 158\B4 // term: 1AC\7C // scen: 110\DC // mach: 194\E4 // ctrl: 1C4\DC // sscn: 1DC\8C // bloc: 614\D8 // crea: 654\58 // gint: 1F4\88 // efsc: 20C\B0 #region DumpScriptGraphs static void CacheDumpScriptGraphs(object param) { var args = param as CacheFileOutputInfoArgs; using (var handler = new CacheHandler<Blam.HaloReach.CacheFile>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; var filename = System.IO.Path.Combine(kTestResultsPath, cache.Header.Name + ".script_graph.txt"); using(var sw = new StreamWriter(filename)) { var interop = new ScenarioScriptInterop(cache); interop.DumpScriptGraphs(cache, sw); } } args.SignalFinished(); }
public void Dispose() { if (cacheHandler != null) { cacheHandler.Dispose(); cacheHandler = null; } }
public ActionResult LinkedINAuth(string code, string state) { try { //This method path is your return URL string[] myArray = state.Split('-'); if (code != null) { //try //{ var a = Request.Url; var client = new RestClient("http://www.linkedin.com/oauth/v2/accessToken"); var request = new RestRequest(Method.POST); request.AddParameter("grant_type", "authorization_code"); request.AddParameter("code", code); request.AddParameter("redirect_uri", _baseURL + "Login/LinkedINAuth"); request.AddParameter("client_id", ConfigurationManager.AppSettings["LinkedInClientID"].ToString()); request.AddParameter("client_secret", ConfigurationManager.AppSettings["LinkedInCLientSecret"].ToString()); request.AddParameter("scope", "all"); var response = client.Execute <InventoryItem>(request); var content = response.Content; string access_token = response.Data.access_token; //client = new RestClient("https://api.linkedin.com/v1/people/~:(id,first-name,last-name,certifications,date-of-birth,email-address,picture-url,summary,public-profile-url,positions,skills,location)?oauth2_access_token=" + access_token + "&format=json"); client = new RestClient("https://api.linkedin.com/v2/me?oauth2_access_token=" + access_token); //for user info request = new RestRequest(Method.GET); var response1 = client.Execute(request); LinkedInInfo linkedInUserobj = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <LinkedInInfo>(response1.Content.ToString()); //client = new RestClient("https://api.linkedin.com/v2/me?projection=(id,profilePicture(displayImage~:playableStreams))&oauth2_access_token=" + access_token);--for profileimage //client = new RestClient("https://api.linkedin.com/v2/me?fields=id,firstName,lastName,educations,skills,positions&oauth2_access_token=" + access_token); client = new RestClient("https://api.linkedin.com/v2/me?projection=(id,firstName,lastName,profilePicture(displayImage~:playableStreams))&oauth2_access_token=" + access_token); request = new RestRequest(Method.GET); response1 = client.Execute(request); LinkedInImageInfo linkedInImgObj = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <LinkedInImageInfo>(response1.Content.Replace("~", "tilde").ToString()); string imageName = ""; if (linkedInImgObj.profilePicture != null && linkedInImgObj.profilePicture.displayImagetilde != null) { foreach (var item in linkedInImgObj.profilePicture.displayImagetilde.elements) { if (imageName == "") { foreach (var img in item.identifiers) { if (img.identifier.Contains("_100_100")) { imageName = img.identifier; break; } } } else { break; } } } //TwitterLinkedInLoginModel obj = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<TwitterLinkedInLoginModel>(response1.Content.ToString()); TwitterLinkedInLoginModel obj = new TwitterLinkedInLoginModel(); obj.firstName = linkedInUserobj.localizedFirstName; obj.id = linkedInUserobj.id; obj.lastName = linkedInUserobj.localizedLastName; obj.pictureUrl = imageName; obj.publicProfileUrl = ""; obj.userType = 2; //LinkedIn UserEntity userObj = new Business.UserService().AddOrUpdateUser(obj); if (userObj != null) { Session["UserObj"] = userObj; Session["UserID"] = userObj.UserID; string message = string.Empty; if (myArray[0] != "0") { if (myArray[1] == "C") { message = new Business.CompanyService().VoteForCompany(Convert.ToInt32(myArray[0]), userObj.UserID); if (CacheHandler.Exists("TopVoteCompaniesList")) { CacheHandler.Clear("TopVoteCompaniesList"); } string compname = ""; if (!string.IsNullOrEmpty(Session["CompanyName"].ToString())) { compname = Session["CompanyName"].ToString(); } if (CacheHandler.Exists(compname)) { CacheHandler.Clear(compname); } } else if (myArray[1] == "N") { message = new Business.SoftwareService().VoteForSoftware(Convert.ToInt32(myArray[0]), userObj.UserID); string softwarename = ""; if (!string.IsNullOrEmpty(Session["SoftwareName"].ToString())) { softwarename = Session["SoftwareName"].ToString(); } if (CacheHandler.Exists(softwarename)) { CacheHandler.Clear(softwarename); } } } } //} //catch (Exception ex) //{ // throw ex; //} } if (myArray[1] == "H") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString())); } else if (myArray[1] == "L") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + Convert.ToString(Session["FocusAreaName"]))); } else if (myArray[1] == "C") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + "Profile/" + Convert.ToString(Session["CompanyName"]))); } else if (myArray[1] == "U") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + "company/my-dashboard")); } else if (myArray[1] == "S") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + Convert.ToString(Session["SoftwareCategory"]))); } else if (myArray[1] == "N") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + "Software/" + Convert.ToString(Session["SoftwareName"]))); } } catch (Exception ex) { EmailHelper.SendErrorEmail(ex); throw ex; } return(null); }
static void CacheOutputInformationMethod(object param) { var args = param as CacheFileOutputInfoArgs; using(var handler = new CacheHandler<Blam.HaloReach.CacheFile>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; string header_name = cache.Header.Name; if (MapNeedsUniqueName(header_name)) header_name = cache.GetUniqueName(); Blam.CacheFile.OutputStringIds(cache, BuildResultPath(kTestResultsPath, args.Game, header_name, "string_ids", "txt"), true); Blam.CacheFile.OutputTags(cache, BuildResultPath(kTestResultsPath, args.Game, header_name, null, "txt")); } args.SignalFinished(); }
public static async Task HandleCommand(Command command, BaseBot Bot, CurrencyConfig currency) { _userInfo[] tBanks = CacheHandler.FindUsers(command.mentions, currency); _userInfo bank = CacheHandler.FindUser(command.sender, currency); switch (command.commandStr) { //case "echo": // await Bot.SendMessage(command.channel, command.commandArgString, command.Source, currency); // break; //case "echodm": // await Bot.SendDM(command.sender, command.commandArgString, command.Source, currency); // break; //case "wtf": // new Thread(async() => await Bot.SendMessage(command, "{User} this was sent from another thread", currency)).Start(); //// //Streamlabs.CreateDonation("Jamm", 1, botConfig.Streamlabs); //// await Bot.SendMessage(command.channel, Streamlabs.GetDonations(botConfig.Streamlabs).ToString()); // break; //case null when currency.BalanceCommands.Contains(command.commandStr): // break; case string S when currency.BalanceCommands.Contains(command.commandStr): if (command.mentions.Length == 0) { await Bot.SendMessage(command, "{User} You Have {Value} {Currency}", currency, bank.balance); } else { await Bot.SendMessage(command, "{User} {User0} Has {Value} {Currency}", currency, tBanks[0].balance); } break; case string S when currency.PayCommands.Contains(command.commandStr): if (command.mentions.Length > 0 && command.values.Length > 0) { if (bank.balance >= command.values[0]) { bank.balance -= command.values[0]; tBanks[0].balance += command.values[0]; bank.Update(); tBanks[0].Update(); await Bot.SendMessage(command, "{User} Paid {Value0} {Currency} To {User0}", currency); } else { await Bot.SendMessage(command, "{User} You Only Have {Value} {Currency}", currency, bank.balance); } } else { await Bot.SendMessage(command, "{User} You Havent Specifided Who And/Or How Much To Pay", currency); } break; case string S when currency.FishCommands.Contains(command.commandStr): if (Rewards.AddFisher(Bot, command, bank, currency)) { await Bot.SendMessage(command, "{User} You Started Fishing", currency); bank.balance -= currency.FishCost; bank.Update(); } else { await Bot.SendMessage(command, "{User} You Are Already Fishing!", currency); } break; case string S when currency.GambleCommands.Contains(command.commandStr): if (command.values.Length > 0) { int Num = Controller.rnd.Next(0, 100); if (currency.GambleOdds > Num) { bank.balance += command.values[0]; bank.Update(); await Bot.SendMessage(command, "{User} You Won {Value} {Currency}", currency, command.values[0]); } else { bank.balance -= command.values[0]; bank.Update(); await Bot.SendMessage(command, "{User} You Lost {Value} {Currency}", currency, command.values[0]); } } else { await Bot.SendMessage(command, "{User} You Didnt Specify a Value", currency); } break; default: if (currency.SimpleResponses.ContainsKey(command.commandStr)) { await Bot.SendMessage(command, currency.SimpleResponses[command.commandStr], currency); } break; } }
static void CacheOutputInformationMethod(object param) { var args = param as CacheFileOutputInfoArgs; using (var handler = new CacheHandler<Blam.Halo2.CacheFile>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; string test_results_path = EngineGetTestResultsPath(args.Game); Blam.CacheFile.OutputStringIds(cache, BuildResultPath(test_results_path, args.Game, cache.Header.Name, "string_ids", "txt"), true); Blam.CacheFile.OutputTags(cache, BuildResultPath(test_results_path, args.Game, cache.Header.Name, null, "txt")); } args.SignalFinished(); }
// GET: /new public ActionResult @New(int?page, string sortingmode) { // sortingmode: new, contraversial, hot, etc ViewBag.SortingMode = sortingmode; if (!sortingmode.Equals("new")) { return(RedirectToAction("Index", "Home")); } const int pageSize = 25; int pageNumber = (page ?? 0); if (pageNumber < 0) { return(View("~/Views/Errors/Error_404.cshtml")); } // setup a cookie to find first time visitors and display welcome banner const string cookieName = "NotFirstTime"; if (ControllerContext.HttpContext.Request.Cookies.AllKeys.Contains(cookieName)) { // not a first time visitor ViewBag.FirstTimeVisitor = false; } else { // add a cookie for first time visitors HttpCookie hc = new HttpCookie("NotFirstTime", "1"); hc.Expires = DateTime.Now.AddYears(1); System.Web.HttpContext.Current.Response.Cookies.Add(hc); ViewBag.FirstTimeVisitor = true; } try { // show only submissions from subverses that user is subscribed to if user is logged in // also do a check so that user actually has subscriptions if (User.Identity.IsAuthenticated && UserHelper.SubscriptionCount(User.Identity.Name) > 0) { //IAmAGate: Perf mods for caching int pagesToTake = 2; int subset = pageNumber / pagesToTake; string cacheKey = String.Format("front.{0}.block.{1}.sort.new", User.Identity.Name, subset); object cacheData = CacheHandler.Retrieve(cacheKey); if (cacheData == null) { int recordsToTake = 25 * pagesToTake; //pages worth var getDataFunc = new Func <object>(() => { using (voatEntities db = new voatEntities(CONSTANTS.CONNECTION_LIVE)) { var blockedSubverses = db.UserBlockedSubverses.Where(x => x.Username.Equals(User.Identity.Name)).Select(x => x.SubverseName); IQueryable <Message> submissions = (from m in db.Messages join s in db.Subscriptions on m.Subverse equals s.SubverseName where !m.IsArchived && m.Name != "deleted" && s.Username == User.Identity.Name where !(from bu in db.Bannedusers select bu.Username).Contains(m.Name) select m).OrderByDescending(s => s.Date); return(submissions.Where(x => !blockedSubverses.Contains(x.Subverse)).Skip(subset * recordsToTake).Take(recordsToTake).ToList()); } }); //now with new and improved locking cacheData = CacheHandler.Register(cacheKey, getDataFunc, TimeSpan.FromMinutes(5), 1); } var set = ((IList <Message>)cacheData).Skip((pageNumber - (subset * pagesToTake)) * pageSize).Take(pageSize).ToList(); PaginatedList <Message> paginatedSubmissions = new PaginatedList <Message>(set, pageNumber, pageSize, 50000); return(View("Index", paginatedSubmissions)); } else { //IAmAGate: Perf mods for caching string cacheKey = String.Format("front.guest.page.{0}.sort.new", pageNumber); object cacheData = CacheHandler.Retrieve(cacheKey); if (cacheData == null) { var getDataFunc = new Func <object>(() => { using (voatEntities db = new voatEntities(CONSTANTS.CONNECTION_READONLY)) { // get only submissions from default subverses, order by rank IQueryable <Message> submissions = (from message in db.Messages where !message.IsArchived && message.Name != "deleted" where !(from bu in db.Bannedusers select bu.Username).Contains(message.Name) join defaultsubverse in db.Defaultsubverses on message.Subverse equals defaultsubverse.name select message).OrderByDescending(s => s.Date); return(submissions.Where(s => s.Stickiedsubmission.Submission_id != s.Id).Skip(pageNumber * pageSize).Take(pageSize).ToList()); } }); //now with new and improved locking cacheData = CacheHandler.Register(cacheKey, getDataFunc, TimeSpan.FromMinutes(CONSTANTS.DEFAULT_GUEST_PAGE_CACHE_MINUTES), (pageNumber < 3 ? 0 : 3)); } PaginatedList <Message> paginatedSubmissions = new PaginatedList <Message>((IList <Message>)cacheData, pageNumber, pageSize, 50000); //// get only submissions from default subverses, sort by date //IQueryable<Message> submissions = (from submission in _db.Messages // where submission.Name != "deleted" // where !(from bu in _db.Bannedusers select bu.Username).Contains(submission.Name) // join defaultsubverse in _db.Defaultsubverses on submission.Subverse equals defaultsubverse.name // select submission).OrderByDescending(s => s.Date); //PaginatedList<Message> paginatedSubmissions = new PaginatedList<Message>(submissions, page ?? 0, pageSize); return(View("Index", paginatedSubmissions)); } } catch (Exception) { return(View("~/Views/Errors/DbNotResponding.cshtml")); } }
// GET: / public ActionResult Index(int?page) { ViewBag.SelectedSubverse = "frontpage"; const int pageSize = 25; int pageNumber = (page ?? 0); if (pageNumber < 0) { return(View("~/Views/Errors/Error_404.cshtml")); } try { // show only submissions from subverses that user is subscribed to if user is logged in // also do a check so that user actually has subscriptions if (User.Identity.IsAuthenticated && UserHelper.SubscriptionCount(User.Identity.Name) > 0) { //IAmAGate: Perf mods for caching int pagesToTake = 2; int subset = pageNumber / pagesToTake; string cacheKey = String.Format("front.{0}.block.{1}.sort.rank", User.Identity.Name, subset); object cacheData = CacheHandler.Retrieve(cacheKey); if (cacheData == null) { int recordsToTake = pageSize * pagesToTake; //4 pages worth var getDataFunc = new Func <object>(() => { using (voatEntities db = new voatEntities(CONSTANTS.CONNECTION_LIVE)) { var blockedSubverses = db.UserBlockedSubverses.Where(x => x.Username.Equals(User.Identity.Name)).Select(x => x.SubverseName); IQueryable <Message> submissions = (from m in db.Messages.Include("Subverse").AsNoTracking() join s in db.Subscriptions on m.Subverse equals s.SubverseName where !m.IsArchived && m.Name != "deleted" && s.Username == User.Identity.Name where !(from bu in db.Bannedusers select bu.Username).Contains(m.Name) select m).OrderByDescending(s => s.Rank); var submissionsWithoutStickies = submissions.Where(s => s.Stickiedsubmission.Submission_id != s.Id); return(submissionsWithoutStickies.Where(x => !blockedSubverses.Contains(x.Subverse)).Skip(subset * recordsToTake).Take(recordsToTake).ToList()); } }); //now with new and improved locking cacheData = CacheHandler.Register(cacheKey, getDataFunc, TimeSpan.FromMinutes(5)); } var set = ((IList <Message>)cacheData).Skip((pageNumber - (subset * pagesToTake)) * pageSize).Take(pageSize).ToList(); PaginatedList <Message> paginatedSubmissions = new PaginatedList <Message>(set, pageNumber, pageSize, 50000); return(View(paginatedSubmissions)); } else { //IAmAGate: Perf mods for caching string cacheKey = String.Format("front.guest.page.{0}.sort.rank", pageNumber); object cacheData = CacheHandler.Retrieve(cacheKey); if (cacheData == null) { var getDataFunc = new Func <object>(() => { using (voatEntities db = new voatEntities(CONSTANTS.CONNECTION_READONLY)) { // get only submissions from default subverses, order by rank IQueryable <Message> submissions = (from message in db.Messages.AsNoTracking() where !message.IsArchived && message.Name != "deleted" where !(from bu in db.Bannedusers select bu.Username).Contains(message.Name) join defaultsubverse in db.Defaultsubverses on message.Subverse equals defaultsubverse.name select message).OrderByDescending(s => s.Rank); return(submissions.Where(s => s.Stickiedsubmission.Submission_id != s.Id).Skip(pageNumber * pageSize).Take(pageSize).ToList()); } }); //Now with it's own locking! cacheData = CacheHandler.Register(cacheKey, getDataFunc, TimeSpan.FromMinutes(CONSTANTS.DEFAULT_GUEST_PAGE_CACHE_MINUTES), (pageNumber < 3 ? 0 : 3)); } PaginatedList <Message> paginatedSubmissions = new PaginatedList <Message>((IList <Message>)cacheData, pageNumber, pageSize, 50000); return(View(paginatedSubmissions)); } } catch (Exception) { return(View("~/Views/Errors/DbNotResponding.cshtml")); } }
LearntLogic learntLogic; // learnt logic of traineddata public RequestValidator(CacheHandler cache) { ncache = cache; learntLogic = new LearntLogic(cache); }
public CacheSymbolInterface(CacheFileOutputInfoArgs args) { cacheHandler = new CacheHandler<Blam.HaloReach.CacheFile>(args.Game, args.MapPath); cacheHandler.Read(); }
internal static void CacheLoadResourceMethod(object param) { bool output_play = false; bool output_play_txt = false; bool output_play_rsrc = false; bool output_zone = false; bool output_zone_txt = false; bool output_zone_data = false; bool output_ugh = false; bool output_sound_info = false; bool output_index = false; bool output_debug_string_ids = false; var args = param as CacheFileOutputInfoArgs; using (var handler = new CacheHandler<Blam.Halo3.CacheFileBase>(args.Game, args.MapPath)) { handler.Read(); var cache = handler.CacheInterface; #region output_play if (output_play) { var play_index = cache.TagIndexManager.OpenFirstInstance(Blam.Halo3.TagGroups.play); var playman = cache.TagIndexManager[play_index]; var playdef = playman.TagDefinition as Blam.Halo3.Tags.cache_file_resource_layout_table_group; if(output_play_txt) using (var sw = new StreamWriter(Path.Combine(args.TestResultsPath, cache.Header.Name) + "_output_play.txt")) { Blam.Cache.Tags.cache_file_resource_layout_table.Output(sw, playdef.ResourceLayoutTable); } if(output_play_rsrc) Blam.Cache.Tags.cache_file_resource_layout_table.OutputResources(args.TestResultsPath, cache, playdef.ResourceLayoutTable); cache.TagIndexManager.Unload(play_index); } #endregion #region output_zone if (output_zone) { var zone_index = cache.TagIndexManager.OpenFirstInstance(Blam.Halo3.TagGroups.zone); var zoneman = cache.TagIndexManager[zone_index]; var zone = zoneman.TagDefinition as Blam.Halo3.Tags.cache_file_resource_gestalt_group; if (output_zone_txt) using (var sw = new StreamWriter(Path.Combine(args.TestResultsPath, cache.Header.Name) + "_output_zone.txt")) { Blam.Halo3.Tags.cache_file_resource_gestalt_group.Output(cache, sw, zone); } if (output_zone_data) using (var fs = new FileStream( Path.Combine(args.TestResultsPath, cache.Header.Name) + "_output_zone_data.bin", FileMode.Create, FileAccess.Write, FileShare.Read)) { Blam.Halo3.Tags.cache_file_resource_gestalt_group.OutputData(fs, zone); } cache.TagIndexManager.Unload(zone_index); } #endregion #region output_ugh if (output_ugh) { using (var sw = new StreamWriter(Path.Combine(args.TestResultsPath, cache.Header.Name) + "_output_sound_gestalt.txt")) { var ugh_index = cache.TagIndexManager.OpenFirstInstance(Blam.Halo3.TagGroups.ugh_); var ughman = cache.TagIndexManager[ugh_index]; var ughdef = ughman.TagDefinition as Blam.Halo3.Tags.sound_cache_file_gestalt_group; Blam.Halo3.Tags.sound_cache_file_gestalt_group.Output(cache, sw, ughdef); ughdef = null; cache.TagIndexManager.Unload(ugh_index); } } #endregion #region output sound info if (output_sound_info) { using (var sw = new StreamWriter(Path.Combine(args.TestResultsPath, cache.Header.Name) + "_output_sounds.txt")) { var dic = new Dictionary<int, List<string>>(); dic.Add(0, new List<string>()); dic.Add(1, new List<string>()); dic.Add(2, new List<string>()); dic.Add(3, new List<string>()); dic.Add(4, new List<string>()); dic.Add(5, new List<string>()); sw.WriteLine("sound definitions"); foreach (var tag in cache.IndexHalo3) { if (tag.GroupTag != BlamLib.Blam.Halo3.TagGroups.snd_) continue; var snd_index = cache.TagIndexManager.Open(tag.Datum); var snd_man = cache.TagIndexManager[snd_index]; // sw.WriteLine("\t{0}\t{1}", tag.Datum.ToString(), cache.References[tag.ReferenceName]); // Blam.Halo3.Tags.cache_file_sound_group.Output(sw, // snd_man.TagDefinition as Blam.Halo3.Tags.cache_file_sound_group); // sw.WriteLine(); Blam.Halo3.Tags.cache_file_sound_group.Output(dic, snd_man.TagDefinition as Blam.Halo3.Tags.cache_file_sound_group, string.Format("{0}\t{1}", tag.Datum.Handle.ToString("X8"), cache.References[tag.ReferenceName])); cache.TagIndexManager.Unload(snd_index); } foreach (KeyValuePair<int, List<string>> kv in dic) { if (kv.Value.Count == 0) continue; sw.WriteLine("\tCompression: {0}\t{1}", kv.Key.ToString(), kv.Value.Count.ToString()); foreach (string s in kv.Value) sw.WriteLine(s); } } } #endregion string header_name = cache.Header.Name; if ((args.Game & BlamVersion.HaloOdst) == 0 && MapNeedsUniqueName(header_name)) header_name = cache.GetUniqueName(); if (output_index) Blam.CacheFile.OutputTags(cache, BuildResultPath(args.TestResultsPath, args.Game, header_name, "output_index", "txt")); if (output_debug_string_ids) Blam.CacheFile.OutputStringIds(cache, BuildResultPath(args.TestResultsPath, args.Game, header_name, "output_string_id", "txt"), true); } args.SignalFinished(); }
public ActionResult TwitterCallback(string oauth_token, string oauth_verifier, string state) { var requesttoken = new OAuthRequestToken { Token = oauth_token }; string key = ConfigurationManager.AppSettings["TwitterKey"].ToString(); string secret = ConfigurationManager.AppSettings["TwitterSecret"].ToString(); string[] myArray = state.Split('-'); try { if (oauth_token != null) { TwitterService service = new TwitterService(key, secret); OAuthAccessToken accesstoken = service.GetAccessToken(requesttoken, oauth_verifier); service.AuthenticateWith(accesstoken.Token, accesstoken.TokenSecret); VerifyCredentialsOptions option = new VerifyCredentialsOptions(); TwitterUser user = service.VerifyCredentials(option); TwitterLinkedInLoginModel obj = new TwitterLinkedInLoginModel(); if (user != null) { string[] name = user.Name.Split(' '); if (name.Length > 1) { obj.firstName = name[0].ToString(); obj.lastName = name[1].ToString(); } else { obj.firstName = name[0].ToString(); obj.lastName = ""; } obj.id = user.Id.ToString(); obj.pictureUrl = user.ProfileImageUrlHttps; obj.publicProfileUrl = "https://twitter.com/" + user.ScreenName; obj.userType = 3; UserEntity userObj = new Business.UserService().AddOrUpdateUser(obj); Session["UserObj"] = userObj; Session["UserID"] = userObj.UserID; string message = string.Empty; if (myArray[0] != "0") { if (myArray[1] == "C") { message = new Business.CompanyService().VoteForCompany(Convert.ToInt32(myArray[0]), userObj.UserID); if (CacheHandler.Exists("TopVoteCompaniesList")) { CacheHandler.Clear("TopVoteCompaniesList"); } string compname = ""; if (!string.IsNullOrEmpty(Session["CompanyName"].ToString())) { compname = Session["CompanyName"].ToString(); } if (CacheHandler.Exists(compname)) { CacheHandler.Clear(compname); } } else if (myArray[1] == "N") { message = new Business.SoftwareService().VoteForSoftware(Convert.ToInt32(myArray[0]), userObj.UserID); string softwarename = ""; if (!string.IsNullOrEmpty(Session["SoftwareName"].ToString())) { softwarename = Session["SoftwareName"].ToString(); } if (CacheHandler.Exists(softwarename)) { CacheHandler.Clear(softwarename); } } } } } if (myArray[1] == "H") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString())); } else if (myArray[1] == "L") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + Convert.ToString(Session["FocusAreaName"]))); } else if (myArray[1] == "C") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + "Profile/" + Convert.ToString(Session["CompanyName"]))); } else if (myArray[1] == "U") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + "company/my-dashboard")); } else if (myArray[1] == "S") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + Convert.ToString(Session["SoftwareCategory"]))); } else if (myArray[1] == "N") { return(Redirect(ConfigurationManager.AppSettings["WebBaseURL"].ToString() + "Software/" + Convert.ToString(Session["SoftwareName"]))); } return(null); // return RedirectToAction("HomePage", "Home"); } catch (Exception ex) { EmailHelper.SendErrorEmail(ex); throw; } }