public IActionResult AddReview(ObjectDetailsViewModel model) { var identUserId = _userManager.GetUserId(this.User); var currentUser = _user.GetUserFromIdentUser(identUserId); var ratingAndReview = new RatingsAndReviews() { Rating = model.Review.Rating, Review = model.Review.Text, User = currentUser, ObjectId = model.Id, }; _touristObject.AddRatingAndReview(ratingAndReview); var ratingsAndReviews = _touristObject.GetRatingsAndReviews(1, 5, model.Id); var ratingsAndReviwsModel = ratingsAndReviews.Select(rr => new Review() { Id = rr.Id, Text = rr.Review, Rating = rr.Rating, UserId = rr.UserId, User = rr.User }).ToList(); return(Ok(ratingsAndReviwsModel)); }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { if (DataContext == null) { if (!SimpleIoc.Default.Contains <IMainModel>()) { MessageBox.Show("MainModel missing"); return; } var url = e.Uri.ToString(); var itemUrl = url.Substring(url.IndexOf("?") + 1); var item = SimpleIoc.Default.GetInstance <IMainModel>().TrackedObjects .FirstOrDefault(x => x.ObjectId == itemUrl); if (item == null) { MessageBox.Show("Item not found"); return; } DataContext = new ObjectDetailsViewModel(item); } base.OnNavigatedTo(e); }
public IActionResult ChangeReviewsPage(ObjectDetailsViewModel model) { model.Pager = new Pager(_touristObject.CountRatingsAndReviews(model.Id), model.CurrPage); if (model.CurrPage == 0) { model.Pager.CurrentPage = 1; } model.Reviews = _touristObject.GetRatingsAndReviews(model.Pager.CurrentPage, model.Pager.PageSize, model.Id) .Select(rr => new Review() { Id = rr.Id, Rating = rr.Rating, Text = rr.Review, User = rr.User, }).ToList(); return(PartialView("_Reviews", model)); }
public async Task <IActionResult> FindPrice(ObjectDetailsViewModel model) { model.CheckIn = model.CheckInString == null ? DateTime.MinValue : DateTime.Parse(model.CheckInString); model.CheckOut = model.CheckOutString == null ? DateTime.MinValue : DateTime.Parse(model.CheckOutString); if (!(model.CheckIn != DateTime.MinValue && model.CheckIn != DateTime.MinValue && model.SelectedOccupancy > 0)) { ViewData["Error-Notification"] = "Unesite ispravne podatke"; return(View(model)); } var currency = Request.Cookies["Currency"] == null ? "BAM" : Request.Cookies["Currency"]; if (model.OccupancyPricing == false) { model.StandardPricingModel = _touristObject.GetStandardPricingModelWithId((int)model.StandardPricingModelId); model.Price = await _touristObject.GetPriceForStandardModel(model.SelectedOccupancy, currency, model.CheckIn, model.CheckOut, model.StandardPricingModel); } else if (model.OccupancyPricing == true) { model.OccupancyBasedPricing = _touristObject.GetOccupancyBasedPricingWithId((int)model.OccupancyBasedPricingId); model.Price = await _touristObject.GetPriceForOccupancyBasedModel(model.SelectedOccupancy, currency, model.CheckIn, model.CheckOut, model.OccupancyBasedPricing); } return(PartialView("_PricePartial", model)); }
public async Task <IActionResult> ObjectDetails(int id, int occupancy, DateTime checkin, DateTime checkout) { var currency = Request.Cookies["Currency"] == null ? "BAM" : Request.Cookies["Currency"]; var myobject = await _touristObject.GetObject(id, currency); var model = new ObjectDetailsViewModel() { Id = myobject.Id, Name = myobject.Name, Lat = myobject.Lat, Lng = myobject.Lng, Address = myobject.Address, EmailContact = myobject.EmailContact, PhoneNumberContact = myobject.PhoneNumberContact, WebContact = myobject.WebContact, Description = myobject.Description, Offers = myobject.ObjectHasAttributes.ToList(), CntOffers = myobject.CntObjAttributesCount.ToList(), SpecialOffers = myobject.SpecialOffers.ToList(), Surface = myobject.Surface, OccupancyPricing = myobject.OccupancyPricing, OccupancyBasedPricing = myobject.OccupancyBasedPricing, StandardPricingModel = myobject.StandardPricingModel, StandardPricingModelId = myobject.StandardPricingModelId, OccupancyBasedPricingId = myobject.OccupancyBasedPricingId, IdentUserId = myobject.IdentUserId, City = myobject.CityId == null ? null : myobject.CityId.ToString(), Country = myobject.CountryId == null ? null : myobject.CountryId.ToString(), ObjectType = myobject.ObjectType == null ? null : myobject.ObjectType.Name, ImgsSrc = myobject.ObjectImages.ToList(), CheckIn = checkin, CheckOut = checkout, CheckInString = checkin == DateTime.MinValue ? "" : checkin.Year + "-" + checkin.Month + "-" + checkin.Day, CheckOutString = checkout == DateTime.MinValue ? "" : checkout.Year + "-" + checkout.Month + "-" + checkout.Day, SelectedOccupancy = occupancy, MinOccupancy = myobject.StandardPricingModel == null ? (myobject.OccupancyBasedPricing != null && myobject.OccupancyBasedPricing.MinOccupancy != null ? (int)myobject.OccupancyBasedPricing.MinOccupancy : 1) : (myobject.StandardPricingModel.MinOccupancy != null ? (int)myobject.StandardPricingModel.MinOccupancy : 1), MaxOccupancy = myobject.StandardPricingModel == null ? (myobject.OccupancyBasedPricing != null && myobject.OccupancyBasedPricing.MaxOccupancy != null ? (int)myobject.OccupancyBasedPricing.MaxOccupancy : 30) : (myobject.StandardPricingModel.MaxOccupancy != null ? (int)myobject.StandardPricingModel.MaxOccupancy : 30), MinDaysOffer = myobject.StandardPricingModel == null ? (myobject.OccupancyBasedPricing != null && myobject.OccupancyBasedPricing.MinDaysOffer != null ? (int)myobject.OccupancyBasedPricing.MinDaysOffer : 1) : (myobject.StandardPricingModel.MinDaysOffer != null ? (int)myobject.StandardPricingModel.MinDaysOffer : 1), MaxDaysOffer = myobject.StandardPricingModel == null ? (myobject.OccupancyBasedPricing != null && myobject.OccupancyBasedPricing.MaxDaysOffer != null ? (int)myobject.OccupancyBasedPricing.MaxDaysOffer : 355) : (myobject.StandardPricingModel.MaxDaysOffer != null ? (int)myobject.StandardPricingModel.MaxDaysOffer : 355), UnavailablePeriods = myobject.UnavailablePeriods, NumberOfRatings = _touristObject.GetNumberOfRatings(myobject.Id), Rating = Math.Round(_touristObject.GetAvarageRating(myobject.Id), 2), CreatorIdentUserId = myobject.IdentUserId, }; Users myuser = _user.GetUserFromIdentUser(myobject.IdentUserId); model.CreatorId = myuser.Id; model.CreatorName = myuser.Name + " " + myuser.LastName; var user = await _userManager.GetUserAsync(User); if (user != null) { var bookmarks = _user.GetAllUserBookmarksId(user.Id).ToList(); model.IsBookmark = bookmarks.Contains(model.Id) ? true : false; } model.Occupancy = Enumerable.Range(model.MinOccupancy, model.MaxOccupancy).Select(item => new SelectListItem() { Text = item.ToString(), Value = item.ToString(), Selected = item == occupancy ? true: false, }); model.UnavailablePeriodsModel = new List <DateTime>(); foreach (var item in model.UnavailablePeriods) { for (DateTime i = item.From; i <= item.To; i = i.AddDays(1)) { model.UnavailablePeriodsModel.Add(i); } } if (occupancy != 0 && model.CheckIn != DateTime.MinValue && model.CheckOut != DateTime.MinValue) { if (model.StandardPricingModel != null) { model.Price = await _touristObject.GetPriceForStandardModel(occupancy, currency, model.CheckIn, model.CheckOut, model.StandardPricingModel); } else if (model.OccupancyBasedPricing != null) { model.Price = await _touristObject.GetPriceForOccupancyBasedModel(occupancy, currency, model.CheckIn, model.CheckOut, model.OccupancyBasedPricing); } } model.CurrPage = 1; model.Pager = new Pager(_touristObject.CountRatingsAndReviews(model.Id), 1); model.Reviews = _touristObject.GetRatingsAndReviews(1, model.Pager.PageSize, model.Id) .Select(rr => new Review() { Id = rr.Id, Rating = rr.Rating, Text = rr.Review, User = rr.User, }).ToList(); return(View(model)); }