private static void writeEbayPricesToJSON(RefVideoCard cardStatistics, int status, FinishedVideoCard almostFinishedVideoCard) { string line = ""; string path = @"cashAveragesAppended.JSON"; if (!File.Exists(path)) { using (StreamWriter sw = File.CreateText(path)) { if (status == 0) { line = "averageCash: [ "; sw.WriteLine(line); } } } using (System.IO.StreamWriter file = File.AppendText(path)) { string firstBracket = "{"; string cardId ='"' + "Id" + '"' + ": " + '"' + cardStatistics.GetId() + '"' + ","; string cardName = '"' + "Name" + '"' + ": " + '"' + cardStatistics.GetCardName() + '"' + ","; string cardAvgHash = '"' + "AvgHash" + '"' + ": " + '"' + almostFinishedVideoCard.getAverageHash() + '"' + ","; string cardAvgPrice = '"' + "AvgPrice" + '"' + ": " + '"' + cardStatistics.GetAveragePrice() + '"' + ","; string hashForCash = '"' + "HashForCash" + '"' + ": " + '"' + almostFinishedVideoCard.getHashForCash() + '"'; string lastBracket = "},"; string lastBracketNoComma = "}"; file.WriteLine(firstBracket); file.WriteLine(cardId); file.WriteLine(cardName); file.WriteLine(cardAvgHash); file.WriteLine(cardAvgPrice); file.WriteLine(hashForCash); if (status == 2) { file.WriteLine(lastBracketNoComma); } else { file.WriteLine(lastBracket); } if (status == 2) { line = "]"; file.WriteLine(line); } } }
public static List<RefVideoCard> calculateAverageHash(List<VideoCard> inputCards) { List<RefVideoCard> averagedCards = new List<RefVideoCard>(); RefVideoCard r5970 = new RefVideoCard(); RefVideoCard r6850 = new RefVideoCard(); RefVideoCard r6870 = new RefVideoCard(); RefVideoCard r6950 = new RefVideoCard(); RefVideoCard r6970 = new RefVideoCard(); RefVideoCard r6990 = new RefVideoCard(); RefVideoCard r7850 = new RefVideoCard(); RefVideoCard r7870 = new RefVideoCard(); RefVideoCard r7950 = new RefVideoCard(); RefVideoCard r7970 = new RefVideoCard(); RefVideoCard r7990 = new RefVideoCard(); RefVideoCard r270X = new RefVideoCard(); RefVideoCard r280X = new RefVideoCard(); RefVideoCard r290 = new RefVideoCard(); RefVideoCard r290X = new RefVideoCard(); foreach (VideoCard card in inputCards) { if (card.GetCardName().Contains("5970")) { r5970.SetHashSoFar(r5970.GetHashSoFar() + card.GetHashRate()); r5970.SetCardCount(r5970.GetCardCount() + 1); } if (card.GetCardName().Contains("6850")) { r6850.SetHashSoFar(r6850.GetHashSoFar() + card.GetHashRate()); r6850.SetCardCount(r6850.GetCardCount() + 1); } if (card.GetCardName().Contains("6870")) { r6870.SetHashSoFar(r6870.GetHashSoFar() + card.GetHashRate()); r6870.SetCardCount(r6870.GetCardCount() + 1); } if (card.GetCardName().Contains("6950")) { r6950.SetHashSoFar(r6950.GetHashSoFar() + card.GetHashRate()); r6950.SetCardCount(r6950.GetCardCount() + 1); } if (card.GetCardName().Contains("6970")) { r6970.SetHashSoFar(r6970.GetHashSoFar() + card.GetHashRate()); r6970.SetCardCount(r6970.GetCardCount() + 1); } if (card.GetCardName().Contains("6990")) { r6990.SetHashSoFar(r6990.GetHashSoFar() + card.GetHashRate()); r6990.SetCardCount(r6990.GetCardCount() + 1); } if (card.GetCardName().Contains("7850")) { r7850.SetHashSoFar(r7850.GetHashSoFar() + card.GetHashRate()); r7850.SetCardCount(r7850.GetCardCount() + 1); } if (card.GetCardName().Contains("7870")) { r7870.SetHashSoFar(r7870.GetHashSoFar() + card.GetHashRate()); r7870.SetCardCount(r7870.GetCardCount() + 1); } if (card.GetCardName().Contains("7950")) { r7950.SetHashSoFar(r7950.GetHashSoFar() + card.GetHashRate()); r7950.SetCardCount(r7950.GetCardCount() + 1); } if (card.GetCardName().Contains("7970")) { r7970.SetHashSoFar(r7970.GetHashSoFar() + card.GetHashRate()); r7970.SetCardCount(r7970.GetCardCount() + 1); } if (card.GetCardName().Contains("7990")) { r7990.SetHashSoFar(r7990.GetHashSoFar() + card.GetHashRate()); r7990.SetCardCount(r7990.GetCardCount() + 1); } if (card.GetCardName().Contains("270X")) { r270X.SetHashSoFar(r270X.GetHashSoFar() + card.GetHashRate()); r270X.SetCardCount(r270X.GetCardCount() + 1); } if (card.GetCardName().Contains("280X")) { r280X.SetHashSoFar(r280X.GetHashSoFar() + card.GetHashRate()); r280X.SetCardCount(r280X.GetCardCount() + 1); } if (card.GetCardName().Contains("290") && !card.GetCardName().Contains("290X")) { r290.SetHashSoFar(r290.GetHashSoFar() + card.GetHashRate()); r290.SetCardCount(r290.GetCardCount() + 1); } if (card.GetCardName().Contains("290X")) { r290X.SetHashSoFar(r290X.GetHashSoFar() + card.GetHashRate()); r290X.SetCardCount(r290X.GetCardCount() + 1); } } r5970.SetAverageHash(Convert.ToString(r5970.GetHashSoFar() / r5970.GetCardCount())); r5970.SetId(5970); r5970.SetCardName("Radeon 5970"); averagedCards.Add(r5970); r6850.SetAverageHash(Convert.ToString(r6850.GetHashSoFar() / r6850.GetCardCount())); r6850.SetId(6850); r6850.SetCardName("Radeon 6850"); averagedCards.Add(r6850); r6870.SetAverageHash(Convert.ToString(r6870.GetHashSoFar() / r6870.GetCardCount())); r6870.SetId(6870); r6870.SetCardName("Radeon 6870"); averagedCards.Add(r6870); r6950.SetAverageHash(Convert.ToString(r6950.GetHashSoFar() / r6950.GetCardCount())); r6950.SetId(6950); r6950.SetCardName("Radeon 6950"); averagedCards.Add(r6950); r6970.SetAverageHash(Convert.ToString(r6970.GetHashSoFar() / r6970.GetCardCount())); r6970.SetId(6970); r6970.SetCardName("Radeon 6970"); averagedCards.Add(r6970); r6990.SetAverageHash(Convert.ToString(r6990.GetHashSoFar() / r6990.GetCardCount())); r6990.SetId(6990); r6990.SetCardName("Radeon 6990"); averagedCards.Add(r6990); r7850.SetAverageHash(Convert.ToString(r7850.GetHashSoFar() / r7850.GetCardCount())); r7850.SetId(7850); r7850.SetCardName("Radeon 7850"); averagedCards.Add(r7850); r7870.SetAverageHash(Convert.ToString(r7870.GetHashSoFar() / r7870.GetCardCount())); r7870.SetId(7870); r7870.SetCardName("Radeon 7870"); averagedCards.Add(r7870); r7950.SetAverageHash(Convert.ToString(r7950.GetHashSoFar() / r7950.GetCardCount())); r7950.SetId(7950); r7950.SetCardName("Radeon 7950"); averagedCards.Add(r7950); r7970.SetAverageHash(Convert.ToString(r7970.GetHashSoFar() / r7970.GetCardCount())); r7970.SetId(7970); r7970.SetCardName("Radeon 7970"); averagedCards.Add(r7970); r7990.SetAverageHash(Convert.ToString(r7990.GetHashSoFar() / r7990.GetCardCount())); r7990.SetId(7990); r7990.SetCardName("Radeon 7990"); averagedCards.Add(r7990); r270X.SetAverageHash(Convert.ToString(r270X.GetHashSoFar() / r270X.GetCardCount())); r270X.SetId(270); r270X.SetCardName("Radeon 270X"); averagedCards.Add(r270X); r280X.SetAverageHash(Convert.ToString(r280X.GetHashSoFar() / r280X.GetCardCount())); r280X.SetId(280); r280X.SetCardName("Radeon 280X"); averagedCards.Add(r280X); r290.SetAverageHash(Convert.ToString(r290.GetHashSoFar() / r290.GetCardCount())); r290.SetId(290); r290.SetCardName("Radeon 290"); averagedCards.Add(r290); r290X.SetAverageHash(Convert.ToString(r290X.GetHashSoFar() / r290X.GetCardCount())); r290X.SetId(291); r290X.SetCardName("Radeon 290X"); averagedCards.Add(r290X); return averagedCards; }
static void Main(string[] args) { //grab cards from excel sheet and compute average hashes List<VideoCard> basicInfoList = new List<VideoCard>(); basicInfoList = readFile(@"C:\radeon.csv"); //delete JSON values from previous program execution deletePreviousResults(); int status = 0; // List<VideoCard> cardsFromEbay = new List<VideoCard>(); List<RefVideoCard> almostDoneCards = calculateAverageHash(basicInfoList); RefVideoCard resultCardStats = new RefVideoCard(); List<RefVideoCard> cardStatsList = new List<RefVideoCard>(); List<VideoCard> cashAveragedCards = new List<VideoCard>(); for (int i = 0; i < cardsOfInterest.Length; i++) { //grab cards from ebay from list of interesting cards //cardsFromEbay List = GrabPricesFromEbay("Radeon 5970"); cardsFromEbay = GrabPricesFromEbay(cardsOfInterest[i]); //we now find the AveragePrice, CardCount, and ID of the list of Radeon 5970s resultCardStats = calculateAverages(cardsFromEbay, cardsOfInterest[i]); cardStatsList.Add(resultCardStats); VideoCard cashedCard = new VideoCard(); cashedCard.SetCardName(resultCardStats.GetCardName()); cashedCard.SetId(resultCardStats.GetId()); cashedCard.SetPrice(Convert.ToDouble(resultCardStats.GetAveragePrice())); cashAveragedCards.Add(cashedCard); //We now append the AveragePrice, CardCount, and ID info to the JSON file (in later version this could be an API call that returns JSON) //WriteEbayPricesToSQLServer(resultCardStats.GetId()); } List<FinishedVideoCard> finishedCards = CalculateHashForCash(cashAveragedCards, almostDoneCards); for (int i = 0; i < cardsOfInterest.Length; i++) { if (i == 0) { status = 0; } else if (i == cardsOfInterest.Length - 1) { status = 2; } else { status = 1; } writeEbayPricesToJSON(cardStatsList[i], status, finishedCards[i]); } Console.WriteLine("It got to here! Yay! :)"); Console.ReadKey(); }
private static RefVideoCard calculateAverages(List<VideoCard> measureTheseCards, string cardName) { //Takes in a list of videocards that are of the same card. //Also takes in another string argument that is the cardname. string strippedIdFromName = Regex.Replace(cardName, "[^0-9.]", ""); RefVideoCard finishedCard = new RefVideoCard(); double totalPrice = 0; int totalCards = measureTheseCards.Count; //Counts them and average them finishedCard.SetCardCount(totalCards); foreach (VideoCard card in measureTheseCards) { totalPrice += card.GetPrice(); } finishedCard.SetAveragePrice(Convert.ToString(totalPrice/totalCards)); //Set the ID from the stripped cardname argument if (cardName.Contains("290X")) { finishedCard.SetId((Convert.ToInt32(strippedIdFromName)) + 1); } else { finishedCard.SetId((Convert.ToInt32(strippedIdFromName))); } //Return the finishedcard as a RefVideoCard object with the AveragePrice, ID, CardCount variables set finishedCard.SetCardName(cardName); return finishedCard; }