public async Task <ActionResult <HotelReview> > PostHotelReview(HotelReview hotelReview)
        {
            _context.HotelReviews.Add(hotelReview);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetHotelReview", new { id = hotelReview.Id }, hotelReview));
        }
        public async Task <IActionResult> PutHotelReview(int id, HotelReview hotelReview)
        {
            if (id != hotelReview.Id)
            {
                return(BadRequest());
            }

            _context.Entry(hotelReview).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!HotelReviewExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #3
0
        public async Task <HotelReview> AddAsync(HotelReview hotelReview)
        {
            using var dbContext = hotelContextFactory.Invoke();
            var addedEntity = dbContext.HotelReviews.Add(hotelReview);
            await dbContext.SaveChangesAsync();

            return(addedEntity.Entity);
        }
Example #4
0
 //public ActionResult Edit([Bind(Exclude="ReviewerName")]HotelReview review)
 public ActionResult Edit(HotelReview review)
 {
     if (ModelState.IsValid)
     {
         _db.Entry(review).State = EntityState.Modified;
         _db.SaveChanges();
         return(RedirectToAction("Index", new { id = review.Id }));
     }
     return(View(review));
 }
Example #5
0
 public ActionResult Create(HotelReview review)
 {
     if (ModelState.IsValid)
     {
         _db.Reviews.Add(review);
         _db.SaveChanges();
         return(RedirectToAction("Index", new { id = review.Id }));
     }
     return(View(review));
 }
        public void Create(HotelReviewWriteViewModel model, string username)
        {
            if (!this.hotelsService.CheckExistById(model.HotelId))
            {
                throw new HotelNullException();
            }

            HotelReview hotelReview = this.mapper.Map <HotelReview>(model);

            MbUser user = this.usersService.GetByUsername(username);

            hotelReview.User = user;

            this.dbContext.HotelReviews.Add(hotelReview);
            this.dbContext.SaveChanges();
        }
        public void Create_ShouldCreateNewReviewCorrectly()
        {
            int hotelId = 1;

            this.dbContext.Hotels.Add(new Hotel {
                Id = hotelId
            });
            this.dbContext.SaveChanges();

            Rating        rating        = Rating.Average;
            Season        timeOfYear    = Season.Autumn;
            TravellerType travellerType = TravellerType.Business;

            var model = new HotelReviewWriteViewModel
            {
                HotelId       = hotelId,
                Rating        = rating,
                TimeOfYear    = timeOfYear,
                TravellerType = travellerType,
            };

            string username = "******";

            this.dbContext.Users.Add(new MbUser {
                UserName = username
            });
            this.dbContext.SaveChanges();

            this.hotelReviewsService.Create(model, username);
            HotelReview result = this.dbContext.HotelReviews.First();

            result.ShouldSatisfyAllConditions
            (
                () => result.HotelId.ShouldBe(hotelId),
                () => result.Rating.ShouldBe(rating),
                () => result.TimeOfYear.ShouldBe(timeOfYear),
                () => result.TravellerType.ShouldBe(travellerType),
                () => result.User.UserName.ShouldBe(username)
            );
        }
Example #8
0
        public IActionResult Index(AddReviewViewModel model)
        {
            if (model == null)
            {
            }
            var reviewstar = _context.starRatings.
                             FirstOrDefault(p => p.StarRatingId == model.ReviewId);
            HotelReview review = new HotelReview()
            {
                ReviewStar = reviewstar.StarNo,
                Review     = model.Review,
                UserName   = model.UserName,
                hotel      = _context.hotels.FirstOrDefault(p => p.HotelId == model.HotelId)
            };

            _context.Add(review);
            if (_context.SaveChanges() > 0)
            {
                return(RedirectToAction("Index", new { area = "User", controller = "HotelReview",
                                                       id = model.HotelId }));
            }

            return(View());
        }
Example #9
0
        public ActionResult SubmitReview(HotelReview hv)
        {
            if (ModelState.IsValid)
            {
                DataLayer dl = new DataLayer();
                int       id = Convert.ToInt32(TempData["ID"].ToString());

                List <HotelOrder> horderlist = (from x in dl.hotelOrders
                                                where x.InvoiceID == id
                                                select x).ToList <HotelOrder>();

                List <PackageOrder> packageOrder = (from x in dl.packageOrders
                                                    where x.InvoiceID == id
                                                    select x).ToList <PackageOrder>();

                foreach (HotelOrder ord in horderlist)
                {
                    ord.Reviewed = 1;
                }

                foreach (PackageOrder ord in packageOrder)
                {
                    ord.Reviewed = 1;
                }

                hv.HotelName     = TempData["hotelName"].ToString();
                hv.CustomerEmail = TempData["email"].ToString();
                hv.CustomerName  = TempData["Cname"].ToString();
                hv.ReviewDate    = DateTime.Today.ToShortDateString().Replace('/', '.');

                // research part:

                string rev = Tools.ToolsClass.fixReview(hv.Review);

                string url = "http://147.235.176.28/" + rev;

                string codeJson;
                using (WebClient wc = new WebClient())
                {
                    codeJson = wc.DownloadString(url).ToString();
                }

                dynamic results = JsonConvert.DeserializeObject(codeJson);

                string pos = results.Positive.Value.ToString();
                string neg = results.Negative.Value.ToString();
                string sp  = results.Spam.Value.ToString();

                pos = pos.Replace("%", "").Replace("'", "");
                neg = neg.Replace("%", "").Replace("'", "");
                sp  = sp.Replace("%", "").Replace("'", "");

                double positive = Convert.ToDouble(pos);
                double negative = Convert.ToDouble(neg);
                double spam     = Convert.ToDouble(sp);

                if (spam >= 100)
                {
                    ViewData["msg"] = "Review detected as spam! Please avoid using bad words";
                    return(View("WriteReview"));
                }

                if (positive > negative)
                {
                    hv.ReviewType = 0;
                }

                else
                {
                    hv.ReviewType = 1;
                }

                dl.hotelReviews.Add(hv);
                dl.SaveChanges();
                ViewData["msgsc"] = "Review sent successfully!";
                return(View("WriteReview"));
            }
            return(View("HotelReview", hv));
        }
Example #10
0
        public ActionResult SubmitIdentify(IdentifyVM ivm)
        {
            DataLayer    dl        = new DataLayer();
            List <Order> orderlist = (from x in dl.orders
                                      where x.CreditCard == ivm.credit && x.InvoiceNumber == ivm.InvoiceId && (x.Type == "Hotel" || x.Type == "Package")
                                      select x).ToList <Order>();

            if (orderlist.Count == 0)
            {
                ViewData["msg"] = "Invalid Credit Card and/or Invoice!";
                return(View("WriteReview", ivm));
            }

            if (orderlist.First().Status != 1)
            {
                ViewData["msg"] = "Order is not confirmed";
                return(View("WriteReview", ivm));
            }

            if (orderlist.First().Type == "Hotel")
            {
                List <HotelOrder> horderlist = (from x in dl.hotelOrders
                                                where x.InvoiceID == ivm.InvoiceId
                                                select x).ToList <HotelOrder>();

                int inid = horderlist.First().InvoiceID;

                if (horderlist.First().Reviewed == 1)
                {
                    ViewData["msg"] = "You Already Reviewed This Order!";
                    return(View("WriteReview", ivm));
                }

                if (!ToolsClass.iskDateValidForReview(ToolsClass.getDate(horderlist.First().EndDate)))
                {
                    ViewData["msg"] = "You Cannot Review This Order Yet! (wait untill the end)";
                    return(View("WriteReview", ivm));
                }

                TempData["hotelName"] = horderlist.First().HotelName;
                TempData["ID"]        = inid;
                TempData["email"]     = orderlist.First().CustomerEmail;
                HotelReview hr = new HotelReview();
                hr.HotelName     = horderlist.First().HotelName;
                hr.CustomerEmail = orderlist.First().CustomerEmail;

                hr.CustomerName = (from x in dl.customers
                                   where x.Email == hr.CustomerEmail
                                   select x.FullName).ToList <string>().FirstOrDefault();
                TempData["Cname"] = hr.CustomerName;
                return(View("HotelReview", hr));
            }

            else // if package
            {
                List <PackageOrder> packagelist = (from x in dl.packageOrders
                                                   where x.InvoiceID == ivm.InvoiceId
                                                   select x).ToList <PackageOrder>();

                int inid = packagelist.First().InvoiceID;

                if (packagelist.First().Reviewed == 1)
                {
                    ViewData["msg"] = "You Already Reviewed This Order!";
                    return(View("WriteReview", ivm));
                }

                if (!ToolsClass.iskDateValidForReview(ToolsClass.getDate(packagelist.First().ReturnDate)))
                {
                    ViewData["msg"] = "You Cannot Review This Order Yet! (wait untill the end)";
                    return(View("WriteReview", ivm));
                }

                TempData["hotelName"] = packagelist.First().HotelName;
                TempData["ID"]        = inid;
                TempData["email"]     = orderlist.First().CustomerEmail;
                HotelReview hr = new HotelReview();
                hr.HotelName     = packagelist.First().HotelName;
                hr.CustomerEmail = orderlist.First().CustomerEmail;

                hr.CustomerName = (from x in dl.customers
                                   where x.Email == hr.CustomerEmail
                                   select x.FullName).ToList <string>().FirstOrDefault();
                TempData["Cname"] = hr.CustomerName;
                return(View("HotelReview", hr));
            }
        }