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);
        }
Beispiel #2
0
		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);
			}
		}
Beispiel #3
0
		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();
		}
Beispiel #4
0
		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);
			}
		}
Beispiel #6
0
		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();
		}
Beispiel #7
0
		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;
		}
Beispiel #8
0
        //[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));
            }
        }
Beispiel #9
0
		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();
		}
Beispiel #10
0
		// 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();
		}
Beispiel #11
0
			public void Dispose()
			{
				if (cacheHandler != null)
				{
					cacheHandler.Dispose();
					cacheHandler = null;
				}
			}
Beispiel #12
0
        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);
        }
Beispiel #13
0
		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();
		}
Beispiel #14
0
        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;
            }
        }
Beispiel #15
0
		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();
		}
Beispiel #16
0
        // 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"));
            }
        }
Beispiel #17
0
        // 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);
 }
Beispiel #19
0
			public CacheSymbolInterface(CacheFileOutputInfoArgs args)
			{
				cacheHandler = new CacheHandler<Blam.HaloReach.CacheFile>(args.Game, args.MapPath);
				cacheHandler.Read();
			}
Beispiel #20
0
		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();
		}
Beispiel #21
0
        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;
            }
        }