コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }