Example #1
0
        public void UpdateLastWaterCoolerID()
        {
            LoginUser loginUser = TSAuthentication.GetLoginUser();
            User      user      = Users.GetUser(loginUser, TSAuthentication.UserID);

            user.LastWaterCoolerID = WaterCooler.GetLastMessageID(loginUser);
            user.Collection.Save();
        }
Example #2
0
        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));
        }
Example #3
0
        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");
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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();
                }
            }
        }
Example #7
0
    public void playWatercoolerSound()
    {
        WaterCooler wc = GameObject.FindWithTag("Watercooler").GetComponent <WaterCooler>();

        wc.playSound();
    }
Example #8
0
        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();
            }
        }
Example #9
0
        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);
        }