Ejemplo n.º 1
0
        public async Task <IActionResult> Details(int propertyId)
        {
            var model = new DetailsViewModel
            {
                Property = await _propertyViewModelService.GetProperty(propertyId, User.Identity.Name),
                Popular  = await _propertyViewModelService.GetPopular(6)
            };

            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <IViewComponentResult> InvokeAsync(string user)
        {
            IEnumerable <EstateUnit> recommended = null;

            try
            {
                if (user != null)
                {
                    var userId = (await _userManager.FindByNameAsync(user)).UserIdNumeric;
                    recommended = await _propertyRecommender.Recommend(user : userId, items : 6);
                }

                //if no recommended properties were found, suggest popular
                if (recommended == null || !recommended.Any())
                {
                    var popular = await _propertyViewModelService.GetPopular(6);

                    recommended = popular.Select(p => new EstateUnit
                    {
                        Id             = p.Id,
                        Reason         = p.Reason,
                        Title          = p.Title,
                        Price          = p.Price,
                        Bedrooms       = p.Bedrooms,
                        Bathrooms      = p.Bathrooms,
                        CarpetArea     = p.CarpetArea,
                        EstateLocation = new EstateLocation {
                            City = p.City, Address = p.Address
                        },
                        IsMarkedAsFavourite = p.IsMarkedAsFavourite,
                        EstateImages        = new List <EstateImage> {
                            new EstateImage {
                                Id = p.AvatarImageId
                            }
                        },
                        EstateType = new EstateType {
                            TypeName = p.EstateTypeDes
                        }
                    });
                }
            }
            catch
            {
                recommended = new List <EstateUnit>();
            }

            return(View(recommended));
        }