public void UpdateLastWaterCoolerID() { LoginUser loginUser = TSAuthentication.GetLoginUser(); User user = Users.GetUser(loginUser, TSAuthentication.UserID); user.LastWaterCoolerID = WaterCooler.GetLastMessageID(loginUser); user.Collection.Save(); }
public static string GetWaterCoolerItem(RestCommand command, int messageID) { WaterCoolerItem waterCoolerItem = WaterCooler.GetWaterCoolerItem(command.LoginUser, messageID); if (waterCoolerItem.OrganizationID != command.Organization.OrganizationID) { throw new RestException(HttpStatusCode.Unauthorized); } return(waterCoolerItem.GetXml("WaterCoolerItem", true)); }
public static string GetWaterCooler(RestCommand command) { WaterCooler waterCooler = new WaterCooler(command.LoginUser); waterCooler.LoadByOrganizationID(command.Organization.OrganizationID); if (command.Format == RestFormat.XML) { return(waterCooler.GetXml("WaterCooler", "WaterCoolerItem", true, command.Filters)); } else { throw new RestException(HttpStatusCode.BadRequest, "Invalid data format"); } }
public string SetUserStatusText(string text) { User user = Users.GetUser(UserSession.LoginUser, UserSession.LoginUser.UserID); user.InOfficeComment = Server.HtmlEncode(text); user.Collection.Save(); WaterCooler watercooler = new WaterCooler(UserSession.LoginUser); WaterCoolerItem item = watercooler.AddNewWaterCoolerItem(); item.Message = string.Format("<strong>{0} - </strong>{1}", user.FirstLastName, user.InOfficeComment); item.OrganizationID = user.OrganizationID; item.TimeStamp = DateTime.UtcNow; item.UserID = user.UserID; watercooler.Save(); return(user.InOfficeComment); }
public bool ToggleUserAvailability() { User user = Users.GetUser(UserSession.LoginUser, UserSession.LoginUser.UserID); user.InOffice = !user.InOffice; user.Collection.Save(); WaterCooler watercooler = new WaterCooler(UserSession.LoginUser); WaterCoolerItem item = watercooler.AddNewWaterCoolerItem(); item.Message = string.Format("<strong>{0}</strong> {1}", user.FirstLastName, user.InOffice ? "is now in the office." : "has left the office."); item.OrganizationID = user.OrganizationID; item.TimeStamp = DateTime.UtcNow; item.UserID = user.UserID; watercooler.Save(); return(user.InOffice); }
private static async Task SeedWaterCoolers(ApplicationDbContext dbContext) { using (SqlConnection connection = new SqlConnection(Config.ConnectionString)) { connection.Open(); var command = new SqlCommand(SqlCommands.SelectWaterCoolersSql, connection); var waterCoolers = new List <WaterCooler>(); SqlDataReader reader = await command.ExecuteReaderAsync(); try { while (reader.Read()) { var waterCooler = new WaterCooler { Brand = reader["Brand"].ToString(), FanAirFlow = reader["FanAirFlow"].ToString(), Image = (byte[])reader["Image"], ImgUrl = reader["ImgUrl"].ToString(), BlockCompatibility = reader["BlockCompatibility"].ToString(), FanRPM = reader["FanRPM"].ToString(), Name = reader["Name"].ToString(), FanSize = reader["FanSize"].ToString(), PumpCapacity = reader["PumpCapacity"].ToString(), RadiatorDim = reader["RadiatorDim"].ToString(), TubeDim = reader["TubeDim"].ToString(), Type = reader["Type"].ToString(), CategoryId = 6, }; waterCoolers.Add(waterCooler); } dbContext.WaterCoolers.AddRange(waterCoolers); await dbContext.SaveChangesAsync(); } catch (Exception) { throw; } finally { reader.Close(); } } }
public void playWatercoolerSound() { WaterCooler wc = GameObject.FindWithTag("Watercooler").GetComponent <WaterCooler>(); wc.playSound(); }
private static void AddImagesToThePartsRest() { using (var context = new ApplicationDbContext()) { var memories = context.Memories.Where(x => x.Name != " ").ToList(); context.SaveChanges(); var memoriesToAdd = new List <Memory>(); Console.WriteLine(memories.Count); foreach (var memory in memories) { Console.WriteLine(memory.Id); var imgArray = TransformImage(memory.ImgUrl).GetAwaiter().GetResult(); var memoryToAdd = new Memory { Brand = memory.Brand, CASLatency = memory.CASLatency, Capacity = memory.Capacity, HeatSpreader = memory.HeatSpreader, Image = imgArray, ImgUrl = memory.ImgUrl, Model = memory.Model, Name = memory.Name, Series = memory.Series, Speed = memory.Speed, Timing = memory.Timing, Type = memory.Type, ProductUrl = memory.ProductUrl, }; memoriesToAdd.Add(memoryToAdd); memory.Image = imgArray; } context.Memories.RemoveRange(context.Memories); context.Memories.AddRange(memoriesToAdd); context.SaveChanges(); } using (var context = new ApplicationDbContext()) { var motherboards = context.Motherboards.Where(x => x.Name != " ").ToList(); context.SaveChanges(); var motherboardsToAdd = new List <Motherboard>(); Console.WriteLine(motherboards.Count); foreach (var motherboard in motherboards) { Console.WriteLine(motherboard.Id); var imgArray = TransformImage(motherboard.ImgUrl).GetAwaiter().GetResult(); var motherboardToAdd = new Motherboard { Brand = motherboard.Brand, AudioChipset = motherboard.AudioChipset, LANChipset = motherboard.LANChipset, Chipset = motherboard.Chipset, CPUSocketType = motherboard.CPUSocketType, CPUType = motherboard.CPUType, FormFactor = motherboard.FormFactor, Image = imgArray, ImgUrl = motherboard.ImgUrl, MaxLANSpeed = motherboard.MaxLANSpeed, MemoryStandard = motherboard.MemoryStandard, Model = motherboard.Model, Name = motherboard.Name, NumberOfMemorySlots = motherboard.NumberOfMemorySlots, ProductUrl = motherboard.ProductUrl, }; motherboardsToAdd.Add(motherboardToAdd); motherboard.Image = imgArray; } context.Motherboards.RemoveRange(context.Motherboards); context.Motherboards.AddRange(motherboardsToAdd); context.SaveChanges(); } using (var context = new ApplicationDbContext()) { var psus = context.PSUs.Where(x => x.Name != " ").ToList(); context.SaveChanges(); var psusToAdd = new List <PSU>(); Console.WriteLine(psus.Count); foreach (var psu in psus) { Console.WriteLine(psu.Id); var imgArray = TransformImage(psu.ImgUrl).GetAwaiter().GetResult(); var psuToAdd = new PSU { Brand = psu.Brand, EnergyEfficiency = psu.EnergyEfficiency, Fans = psu.Fans, Image = imgArray, ImgUrl = psu.ImgUrl, MaximumPower = psu.MaximumPower, Modular = psu.Modular, Name = psu.Name, Type = psu.Type, ProductUrl = psu.ProductUrl, }; psusToAdd.Add(psuToAdd); psu.Image = imgArray; } context.PSUs.RemoveRange(context.PSUs); context.PSUs.AddRange(psusToAdd); context.SaveChanges(); } using (var context = new ApplicationDbContext()) { var ssds = context.SolidStateDrives.Where(x => x.Name != " ").ToList(); context.SaveChanges(); var ssdsToAdd = new List <SolidStateDrive>(); Console.WriteLine(ssds.Count); foreach (var ssd in ssds) { Console.WriteLine(ssd.Id); var imgArray = TransformImage(ssd.ImgUrl).GetAwaiter().GetResult(); var ssdToAdd = new SolidStateDrive { Brand = ssd.Brand, Capacity = ssd.Capacity, FormFactor = ssd.FormFactor, DeviceType = ssd.DeviceType, Image = imgArray, ImgUrl = ssd.ImgUrl, Interface = ssd.Interface, MemoryComponents = ssd.MemoryComponents, Name = ssd.Name, UsedFor = ssd.UsedFor, ProductUrl = ssd.ProductUrl, }; ssdsToAdd.Add(ssdToAdd); ssd.Image = imgArray; } context.SolidStateDrives.RemoveRange(context.SolidStateDrives); context.SolidStateDrives.AddRange(ssdsToAdd); context.SaveChanges(); } using (var context = new ApplicationDbContext()) { var videoCards = context.VideoCards.Where(x => x.Name != " ").ToList(); context.SaveChanges(); var videoCardsToAdd = new List <VideoCard>(); Console.WriteLine(videoCards.Count); foreach (var videoCard in videoCards) { Console.WriteLine(videoCard.Id); var imgArray = TransformImage(videoCard.ImgUrl).GetAwaiter().GetResult(); var videoCordToAdd = new VideoCard { Brand = videoCard.Brand, Cooler = videoCard.Cooler, DirectX = videoCard.DirectX, FormFactor = videoCard.FormFactor, GPU = videoCard.GPU, Image = imgArray, ImgUrl = videoCard.ImgUrl, Interface = videoCard.Interface, MaxGPULength = videoCard.MaxGPULength, Model = videoCard.Model, Name = videoCard.Name, OpenGL = videoCard.OpenGL, SlotWidth = videoCard.SlotWidth, StreamProcessors = videoCard.StreamProcessors, SystemRequirements = videoCard.SystemRequirements, ProductUrl = videoCard.ProductUrl, }; videoCardsToAdd.Add(videoCordToAdd); videoCard.Image = imgArray; } context.VideoCards.RemoveRange(context.VideoCards); context.VideoCards.AddRange(videoCardsToAdd); context.SaveChanges(); } using (var context = new ApplicationDbContext()) { var waterCoolers = context.WaterCoolers.Where(x => x.Name != " ").ToList(); context.SaveChanges(); var waterCoolersToAdd = new List <WaterCooler>(); Console.WriteLine(waterCoolers.Count); foreach (var waterCooler in waterCoolers) { Console.WriteLine(waterCooler.Id); var imgArray = TransformImage(waterCooler.ImgUrl).GetAwaiter().GetResult(); var waterCoolerToAdd = new WaterCooler { Brand = waterCooler.Brand, FanAirFlow = waterCooler.FanAirFlow, BlockCompatibility = waterCooler.BlockCompatibility, FanRPM = waterCooler.FanRPM, FanSize = waterCooler.FanSize, Image = imgArray, ImgUrl = waterCooler.ImgUrl, Name = waterCooler.Name, PumpCapacity = waterCooler.PumpCapacity, RadiatorDim = waterCooler.RadiatorDim, TubeDim = waterCooler.TubeDim, Type = waterCooler.Type, ProductUrl = waterCooler.ProductUrl, }; waterCoolersToAdd.Add(waterCoolerToAdd); waterCooler.Image = imgArray; } context.WaterCoolers.RemoveRange(context.WaterCoolers); context.WaterCoolers.AddRange(waterCoolersToAdd); context.SaveChanges(); } }
public async Task <IEnumerable <WaterCooler> > GatherWaterCoolerData() { var videoCards = new List <WaterCooler>(); var productUrls = new List <string>(); var parser = new HtmlParser(); var client = new HttpClient(); for (int page = 1; page <= 96; page++) { Console.Write($"{page} => "); var url = $"https://www.newegg.com/Desktop-Memory/SubCategory/ID-575/Page-{page}"; string htmlContent = null; for (var i = 0; i < 10; i++) { try { var response = await client.GetAsync(url); htmlContent = await response.Content.ReadAsStringAsync(); break; } catch { Console.Write('!'); Thread.Sleep(500); } } if (string.IsNullOrWhiteSpace(htmlContent)) { break; } var document = await parser.ParseDocumentAsync(htmlContent); var elements = document.GetElementsByClassName("item-container "); if (elements.Length == 0) { break; } foreach (var element in elements) { string pcPartPickerUrl = null; var options = element.InnerHtml.Split('\n', StringSplitOptions.RemoveEmptyEntries); foreach (var option in options) { if (option.Contains("href=") && option.Contains("item-img")) { var productUrlUntrimmed = option.Substring(option.IndexOf('/')); var productUrl = productUrlUntrimmed.Substring(0, productUrlUntrimmed.Length - 19); pcPartPickerUrl = "https:" + productUrl; productUrls.Add(pcPartPickerUrl); } } } } int count = 0; foreach (var url in productUrls) { string htmlContent = null; for (var i = 0; i < 10; i++) { try { var response = await client.GetAsync(url); htmlContent = await response.Content.ReadAsStringAsync(); break; } catch { Console.Write('!'); Thread.Sleep(500); } } Console.WriteLine(count); count++; var document = await parser.ParseDocumentAsync(htmlContent); var manufacturerInfo = document.GetElementById("MfrContact"); string productUrl = string.Empty; if (manufacturerInfo != null) { productUrl = manufacturerInfo.GetElementsByTagName("a")[0].InnerHtml; } var productSpecs = document.GetElementById("detailSpecContent"); string productSpecsInnerHtml = string.Empty; if (productSpecs == null) { continue; } productSpecsInnerHtml = productSpecs.InnerHtml; var specs = productSpecsInnerHtml.Split("<dl>", StringSplitOptions.RemoveEmptyEntries); var productName = string.Empty; if (specs[0].Contains("<span>")) { productName = specs[0].Substring(specs[0].IndexOf("<span>") + 6).Trim(); productName = productName.Substring(0, productName.IndexOf("</span>")).Trim(); } var videoCard = new WaterCooler { Name = productName, ProductUrl = productUrl, }; var imgHtmlElemnts = document.GetElementsByName("gallery"); string imgHtml = string.Empty; if (imgHtmlElemnts.Length > 0) { imgHtml = imgHtmlElemnts[0].InnerHtml; imgHtml = imgHtml.Substring(imgHtml.IndexOf("//") + 2); imgHtml = imgHtml.Substring(0, imgHtml.IndexOf(">") - 1); } if (imgHtml.Length > 0) { videoCard.ImgUrl = imgHtml; } foreach (var spec in specs) { if (spec.Contains("<dt>") && spec.Contains("<dd>")) { var replaced = spec.Replace("<dt>", "|"); replaced = replaced.Replace("</dt>", "|"); replaced = replaced.Replace("<dd>", "|"); replaced = replaced.Replace("</dd>", "|"); var specsList = replaced.Split('|', StringSplitOptions.RemoveEmptyEntries); var specName = specsList[0]; var specValue = specsList[1]; if (specName.Contains("a data")) { specName = specName.Substring(specName.IndexOf(">") + 1); specName = specName.Substring(0, specName.IndexOf("<")); } switch (specName) { case "Brand": videoCard.Brand = specValue; break; case "Fan Size": videoCard.FanSize = specValue; break; case "Type": videoCard.Type = specValue; break; case "Block Compatibility": videoCard.BlockCompatibility = specValue; break; case "Pump Capacity": videoCard.PumpCapacity = specValue; break; case "Radiator Dim.": videoCard.RadiatorDim = specValue; break; case "Fan RPM": videoCard.FanRPM = specValue; break; case "Fan Air Flow": videoCard.FanAirFlow = specValue; break; case "Tube Dim.": videoCard.TubeDim = specValue; break; default: break; } } } videoCards.Add(videoCard); } return(videoCards); }