示例#1
0
        public void Properties_TwoPropertiesWithGivenOptionExists_Count_ShouldBe2()
        {
            var orderId = "1";
            var userId  = "1";
            var order   = new Order()
            {
                Id = orderId, ConsultantId = userId
            };

            _mockRepository.Setup(r => r.GetOrderFor(orderId, userId, UserRoles.Consultant)).Returns(order);
            order.HomeFinding = new HomeFinding()
            {
                Id = orderId, Deleted = false
            };

            HomeFindingProperty p1 = new HomeFindingProperty();

            p1.Deleted     = false;
            p1.Property    = new Property();
            p1.ViewingDate = DateTime.Now.AddDays(10);
            order.HomeFinding.HomeFindingProperties.Add(p1);

            HomeFindingProperty p2 = new HomeFindingProperty();

            p2.Deleted     = false;
            p2.Property    = new Property();
            p2.ViewingDate = DateTime.Now.AddDays(20);
            order.HomeFinding.HomeFindingProperties.Add(p2);

            HousingViewModel viewModel = new HousingViewModel(order, mapper, "ViewingsOnly", _controller.User);

            //var result = _controller.PropertiesPartialPDF(orderId, "ViewingsOnly");
            viewModel.Properties.Count().Should().Be(2);
        }
        public async Task <IActionResult> DetailsHousing(HousingViewModel housingViewModel)
        {
            var placeDto = new Place()
            {
                Name = housingViewModel.Place,
            };

            if (ModelState.IsValid)
            {
                var userId = await _usManager.GetUserIdByEmailAsync(User.Identity.Name);

                var housingDto = new HousingDto()
                {
                    Id          = housingViewModel.Id,
                    Place       = placeDto,
                    Description = housingViewModel.Description,
                    PricePerDay = housingViewModel.Price,
                    Address     = housingViewModel.Address,
                    Name        = housingViewModel.Name,
                };

                return(RedirectToAction("Index", "Housing"));
            }

            return(View(housingViewModel));
        }
        public async Task <IActionResult> Details(string housingId, string message = null)
        {
            if (User.Identity.Name == null)
            {
                return(RedirectToAction("SignIn", "Account"));
            }
            else
            {
                var housing = await _housingManager.GetHousingAsync(housingId);

                var user = await _usManager.GetAsync(User.Identity.Name);

                if (message != null)
                {
                    ModelState.AddModelError("Error", message);
                }

                var housingDetailsViewModel = new HousingViewModel()
                {
                    Id          = housing.Id,
                    User        = user,
                    Name        = housing.Name,
                    Place       = housing.Place?.Name,
                    Address     = housing.Address,
                    Price       = housing.PricePerDay,
                    Description = housing.Description,
                    Scenery     = housing.Scenery
                };

                return(View(housingDetailsViewModel));
            }
        }
示例#4
0
        public bool CreateHouse(HousingViewModel model)
        {
            try
            {
                HousingModel house = new HousingModel();
                house.Address = new AddressModel();
                int id = houses.Count + 1;

                house.Id                 = id;
                house.Name               = model.Name;
                house.Category           = model.Category;
                house.Description        = model.Description;
                house.Rooms              = model.Rooms;
                house.CreatedAt          = model.CreatedAt;
                house.CreatedBy          = model.CreatedBy;
                house.Address.Street     = model.Street;
                house.Address.City       = model.City;
                house.Address.Country    = "Portugal";
                house.Address.PostalCode = model.PostalCode;

                houses.Add(house);

                return(true);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public void TestZeroPetsReturnsNull()
        {
            HousingViewModel viewModel = new HousingViewModel();

            viewModel.PetsCount = 0;

            (viewModel.PetsCount).Should().Be(null);
        }
        public void TestDisplayForSpouseAndNoKids()
        {
            order.SpouseName = "Some Name";

            HousingViewModel viewModel = mapper.Map <Order, HousingViewModel>(order);

            (viewModel.SpouseAndKids).Should().Be("Yes / 0");
        }
示例#7
0
        public ActionResult PropertiesPartial(string id)
        {
            var   userId = User.Identity.GetUserId();
            Order order  = _unitOfWork.Orders.GetOrderFor(userId, id, User.GetUserRole());

            HousingViewModel viewModel = new HousingViewModel(order, _mapper);

            return(PartialView("~/views/orders/partials/_HousingProperties.cshtml", viewModel.Properties));
        }
        public void TestSpouseNameFromOrder()
        {
            var spouseName = "My Great Name";

            order.SpouseName = spouseName;

            HousingViewModel viewModel = mapper.Map <Order, HousingViewModel>(order);

            (viewModel.SpouseName).Should().BeEquivalentTo(spouseName);
        }
示例#9
0
        public ActionResult AddHouse(HousingViewModel model)
        {
            var user = UserService.GetInstance().GetUser();

            model.CreatedAt = DateTime.Now;
            model.CreatedBy = user;

            HousingService.GetInstance().CreateHouse(model);

            return(RedirectToAction("Index"));
        }
示例#10
0
        public IActionResult Index(int?page, string houseTypeId, int?cityId, int?priceFrom, int?priceTo, string districtId)
        {
            var houseTypeIdArray = string.IsNullOrEmpty(houseTypeId) ? new int[] {} : houseTypeId.Split(',').Select(x => Convert.ToInt32(x)).ToArray();
            var districtIdArray  = string.IsNullOrEmpty(districtId) ? new int[] { } : districtId.Split(',').Select(x => Convert.ToInt32(x)).ToArray();

            var filterParams = new HousingExtensions.FilterParams
            {
                CityId      = cityId,
                Page        = page,
                PriceFrom   = priceFrom,
                PriceTo     = priceTo,
                HouseTypeId = houseTypeIdArray,
                DistrictId  = districtIdArray
            };

            if (IsCustomer)
            {
                var customer = _context.Clients.Include(x => x.TypesHousingToCustomers).Include(x => x.DistrictToClients).FirstOrDefault(x => x.Id == CustomerUser.CustomerId);
                if (customer != null)
                {
                    filterParams.CityId      = customer.CityId;
                    filterParams.HouseTypeId = customer.TypesHousingToCustomers.Select(x => x.TypesHousingId).ToArray();

                    var districtIds = customer.DistrictToClients.Select(x => x.DistrictId).ToArray();
                    filterParams.DistrictId = districtIds;
                }
                else
                {
                    return(new HttpNotFoundObjectResult("Customer not found"));
                }
            }

            IQueryable <Housing> query = _context.Housing
                                         .IncludeAll()
                                         .Where(x => HousingExtensions.Filter(filterParams)(x));

            int totalItems;
            int totalPages;
            var items = query.PagedResult(page ?? 1, 20, x => x.CreatedAt, false, out totalItems, out totalPages).ToList();

            bool isAuth = User.Identity.IsAuthenticated;


            var model = new HomePageViewModel
            {
                Items       = items.Select(x => HousingViewModel.Create(x, isAuth)).ToList(),
                CurrentPage = page ?? 1,
                TotalPages  = totalPages,
                Filter      = new HomePageFilter(filterParams)
            };

            return(View(model));
        }
        public void TestNumberOfPets()
        {
            int numberOfTestPets = 5;

            for (int i = 0; i < numberOfTestPets; i++)
            {
                order.Pets.Add(new Pet());
            }
            HousingViewModel viewModel = mapper.Map <Order, HousingViewModel>(order);

            (viewModel.PetsCount).Should().Be(numberOfTestPets);
        }
        public void TestChildCountFromOrder()
        {
            int numberOfTestChildren = 4;

            for (int i = 0; i < numberOfTestChildren; i++)
            {
                order.Children.Add(new Child());
            }

            HousingViewModel viewModel = mapper.Map <Order, HousingViewModel>(order);

            (viewModel.ChildrenCount).Should().Be(numberOfTestChildren);
        }
        public void TestDisplayForNumberOfBaths()
        {
            String bathTypeName            = "2 1/2";
            NumberOfBathroomsType bathType = new NumberOfBathroomsType {
                Name = bathTypeName
            };

            order.HomeFinding.NumberOfBathrooms = bathType;

            HousingViewModel viewModel = mapper.Map <HomeFinding, HousingViewModel>(order.HomeFinding);

            (viewModel.NumberOfBathroomsName).Should().Be(bathTypeName);
        }
        public void TestDisplayForHousingType()
        {
            String      housingTypeName = "My Great Housing Type";
            HousingType housingType     = new HousingType {
                Name = housingTypeName
            };

            order.HomeFinding.HousingType = housingType;

            HousingViewModel viewModel = mapper.Map <HomeFinding, HousingViewModel>(order.HomeFinding);

            (viewModel.HousingTypeName).Should().Be(housingTypeName);
        }
        public void TestDisplayForSpouseAndFiveKids()
        {
            order.SpouseName = "Some Name";
            int numberOfTestChildren = 5;

            for (int i = 0; i < numberOfTestChildren; i++)
            {
                order.Children.Add(new Child());
            }

            HousingViewModel viewModel = mapper.Map <Order, HousingViewModel>(order);

            (viewModel.SpouseAndKids).Should().Be("Yes / 5");
        }
        public async Task <IActionResult> Delete(string housingId)
        {
            var housing = await _housingManager.GetHousingAsync(housingId);

            var housingEditViewModel = new HousingViewModel()
            {
                Id          = housing.Id,
                Place       = housing.Place?.Name,
                Description = housing.Description,
                Price       = housing.PricePerDay,
                Name        = housing.Name
            };

            return(View(housingEditViewModel));
        }
示例#17
0
        public ActionResult HousingPartial(string id)
        {
            var userId = User.Identity.GetUserId();

            Order order = _unitOfWork.Orders.GetOrderFor(userId, id, User.GetUserRole());

            ViewBag.CurrentUser  = userId;
            ViewBag.IsConsultant = User.IsInRole(UserRoles.Consultant);
            HousingViewModel         viewModel = new HousingViewModel(order, _mapper, User);
            HousingPropertyViewModel sel       = viewModel.Properties.Where(p => p.selected == true).FirstOrDefault();

            if (sel == null)
            {
                return(PartialView("~/views/orders/partials/_Housing.cshtml", viewModel));
            }
            ViewBag.pmEmail = order.ProgramManager.Email;
            return(PartialView("~/views/orders/partials/_SelectedProperty.cshtml", sel));
        }
        public void TestViewModelFromOrderAndMapper()
        {
            String spouseName = "Some Name";

            order.SpouseName = spouseName;

            String      housingTypeName = "My Great Housing Type";
            HousingType housingType     = new HousingType {
                Name = housingTypeName
            };

            order.HomeFinding.HousingType = housingType;

            HousingViewModel viewModel = new HousingViewModel(order, mapper);

            viewModel.Should().NotBeNull();
            viewModel.HousingTypeName.Should().Be(housingTypeName);
            viewModel.SpouseName.Should().Be(spouseName);
        }
示例#19
0
        public void Properties_NoPropertiesWithAnyOptionExist_Count_ShouldBeZero()
        {
            var orderId = "1";
            var userId  = "1";
            var order   = new Order()
            {
                Id = orderId, ConsultantId = userId
            };

            _mockRepository.Setup(r => r.GetOrderFor(orderId, userId, UserRoles.Consultant)).Returns(order);
            order.HomeFinding = new HomeFinding()
            {
                Id = orderId, Deleted = false
            };

            HousingViewModel viewModel = new HousingViewModel(order, mapper, "AllViewings", _controller.User);

            viewModel.Properties.Count().Should().Be(0);
        }
示例#20
0
        public ActionResult PropertiesPartialPDF(string id, string listChoice)
        {
            var              userId    = User.Identity.GetUserId();
            Order            order     = _unitOfWork.Orders.GetOrderFor(userId, id, User.GetUserRole());
            HousingViewModel viewModel = new HousingViewModel(order, _mapper, listChoice, User);

            if (viewModel.Properties.Count() == 0)
            {
                return(new HttpNotFoundResult());
            }
            switch (listChoice.ToUpper())
            {
            case "NOVIEWINGS":
            {
                ViewBag.Title = "List of Properties With no Viewings Scheduled";
                break;
            }

            case "VIEWINGSONLY":
            {
                ViewBag.Title = "List of Properties With a Viewing Scheduled";
                break;
            }

            case "ALLPROPERTIES":
            {
                ViewBag.Title = "List of all Properties";
                break;
            }

            default:
                break;
            }
            ViewBag.Title += " for " + order.Transferee.FullName;
            return(new Rotativa.ViewAsPdf("~/Views/PDF/PDFProperties.cshtml", viewModel.Properties)
            {
                FileName = "Housing.pdf",
                PageMargins = new Rotativa.Options.Margins(1, 1, 1, 1),
                CustomSwitches = "--disable-smart-shrinking"
            });
        }
        public async Task <IActionResult> Create(HousingViewModel housingViewModel)
        {
            if (ModelState.IsValid)
            {
                var userId = await _usManager.GetUserIdByEmailAsync(User.Identity.Name);

                var placeDto = new Place()
                {
                    Name = housingViewModel.Place,
                };

                var housingDto = new HousingDto()
                {
                    UserId      = userId,
                    Name        = housingViewModel.Name,
                    Place       = placeDto,
                    PricePerDay = housingViewModel.Price,
                    Description = housingViewModel.Description,
                    Address     = housingViewModel.Address,
                    Scenery     = housingViewModel.Scenery
                };

                if (housingViewModel.NewScenery != null)
                {
                    byte[] imageData = null;
                    using (var binaryReader = new BinaryReader(housingViewModel.NewScenery.OpenReadStream()))
                    {
                        imageData = binaryReader.ReadBytes((int)housingViewModel.NewScenery.Length);
                    }
                    housingDto.Scenery = imageData;
                }

                await _housingManager.CreateAsync(housingDto);

                return(RedirectToAction("Index", "Housing"));
            }

            return(View(housingViewModel));
        }
        public void TestMappingOfPropertyPhotos()
        {
            string fakeStorageId         = "StorageId";
            string fakePhotoUrl          = "photoURL";
            Photo  fakePhoto             = new Photo(fakeStorageId, fakePhotoUrl);
            HomeFindingProperty hfp      = HomeFindingPropertiesBuilder.New().First();
            Property            property = hfp.Property;

            property.Photos.Add(fakePhoto);
            order.HomeFinding.HomeFindingProperties.Add(hfp);

            HousingViewModel         viewModel         = new HousingViewModel(order, mapper);
            HousingPropertyViewModel propertyViewModel = viewModel.Properties.ElementAt(0);

            propertyViewModel.PropertyPhotos.Should().NotBeNull();
            propertyViewModel.PropertyPhotos.Should().NotBeEmpty();

            PhotoViewModel photoVM = propertyViewModel.PropertyPhotos.ElementAt(0);

            photoVM.PhotoUrl.Should().Be(fakePhotoUrl);
            photoVM.StorageId.Should().Be(fakeStorageId);
        }
        public void TestDisplayForNoFamily()
        {
            HousingViewModel viewModel = mapper.Map <Order, HousingViewModel>(order);

            (viewModel.SpouseAndKids).Should().Be(null);
        }