コード例 #1
0
        public BeverageModelVM(Room2Beverage model, List <ReviewTypeVM> types, List <BeverageReview> allReviews, BeverageReview reviewFromUser = null)
        {
            Beverage b = model.Beverage;

            id                = model.Id;
            beverageId        = model.BeverageId;
            IBU               = b.IBU;
            displayOrder      = model.DisplayOrder;
            name              = b.Name;
            manufacturer      = b.Brewery.Name;
            alcoholPercentage = b.AlcoholPercentage;
            groupName         = b.BeverageGroup.Name;
            typeName          = b.BeverageType.Name;
            isLocked          = model.IsLocked;
            imageUrlSm        = b.LableSm;
            imageUrlMed       = b.LableMed;

            if (reviewFromUser != null)
            {
                review = new BeverageReviewVM(b, types, null, reviewFromUser);
            }
            else
            {
                review = new BeverageReviewVM();
            }

            if (allReviews.Any())
            {
                finalScore = allReviews.Average(a => a.TotalScore);
            }
            else
            {
                finalScore = -1;
            }
        }
コード例 #2
0
        public BeverageDashboardVM(List <ReviewTypeVM> types, Room2Beverage model, List <BeverageReview> reviewFromUser, List <User> users)
        {
            Beverage b = model.Beverage;

            id                = model.Id;
            beverageId        = model.BeverageId;
            IBU               = b.IBU;
            displayOrder      = model.DisplayOrder;
            name              = b.Name;
            desc              = b.Description;
            manufacturer      = b.Brewery.Name;
            alcoholPercentage = b.AlcoholPercentage;
            groupName         = b.BeverageGroup.Name;
            typeName          = b.BeverageType.Name;
            isLocked          = model.IsLocked;
            imageUrlSm        = b.LableSm;
            imageUrlMed       = b.LableSm;
            if (!String.IsNullOrEmpty(b.LableMed))
            {
                imageUrlMed = b.LableMed;
            }
            reviewFinished = model.ReviewFinished;
            reviews        = new List <BeverageReviewVM>();
            users.ForEach(a => reviews.Add(new BeverageReviewVM(b, types, a, reviewFromUser.FirstOrDefault(c => c.UserId == a.Id))));
            results = new ReviewResults();
            if (reviewFinished)
            {
                results = new ReviewResults(reviews, types);
            }
        }
コード例 #3
0
        internal ReviewResults FinishReview(string roomCode, int beerId)
        {
            Room                  room    = context.Rooms.FirstOrDefault(a => a.Code == roomCode);
            Room2Beverage         beer    = room.Room2Beverages.FirstOrDefault(a => a.BeverageId == beerId);
            List <BeverageReview> reviews = room.BeverageReviews.Where(a => a.BeverageId == beerId).ToList();

            if (!reviews.Any())
            {
                return(new ReviewResults(ResultStatus.ERROR, "No reviews has been added!"));
            }
            beer.ReviewFinished = true;
            List <ReviewTypeVM> reviewTypes = room.Room2ReviewTypes.Select(a => new ReviewTypeVM(a)).ToList();

            context.SubmitChanges();
            ReviewResults result = new ReviewResults(reviews, reviewTypes);
            beerhub       hub    = new beerhub();

            hub.PushFinalScore(roomCode, beerId, result.totalScore);
            return(result);
        }