public void WriteOutPutCard(string roomStatus) { //Save card and register it to output //OutPutPairs["Opinion"] = CalculateFinalOpinion(); //OutPutPairs["RoomStatus"] = roomStatus; currentCard.WriteTo("Opinion", CalculateFinalOpinion()); currentCard.WriteTo("RoomStatus", roomStatus); foreach (var pair in OutPutPairs) { currentCard.WriteTo(pair.Key, pair.Value); } Output.RegisterCard(currentCard); }
public static List <RoomCardModel> GetSumarizedRoomCards() { List <RoomCardModel> summaryList = new List <RoomCardModel>(); foreach (var key in CardsPerRoom.Keys) { var summarizedRoomCardModel = new RoomCardModel { RoomID = key }; float summarizedRoomRating = 0; float lowestRating = float.MaxValue; float highestRating = float.MinValue; int completeCount = 0; foreach (RoomCardModel card in CardsPerRoom[key]) { if ((string)card.OutputValuePairs["RoomStatus"] == "Completed") { var roomRating = (float)card.OutputValuePairs["Opinion"]; if (roomRating < lowestRating) { lowestRating = roomRating; } if (roomRating > highestRating) { highestRating = roomRating; } summarizedRoomRating += roomRating; completeCount++; } } var avgRating = summarizedRoomRating / completeCount; summarizedRoomCardModel.WriteTo("Avg rating", avgRating); //Median om det har körts fler än 5 iterationer. if (completeCount > 5) { var medianRating = 0.0; if (completeCount % 2 == 0) { medianRating = ((float)CardsPerRoom[key][completeCount / 2].OutputValuePairs["Opinion"] + (float)CardsPerRoom[key][(completeCount / 2) + 1].OutputValuePairs["Opinion"]) / 2; } else { medianRating = (float)CardsPerRoom[key][completeCount / 2].OutputValuePairs["Opinion"]; } summarizedRoomCardModel.WriteTo("Median rating", medianRating); } summarizedRoomCardModel.WriteTo("Low", lowestRating); summarizedRoomCardModel.WriteTo("High", highestRating); summarizedRoomCardModel.WriteTo("Completion rate: ", completeCount + "/" + CardsPerRoom[key].Count); summaryList.Add(summarizedRoomCardModel); } return(summaryList); }