Exemplo n.º 1
0
        public OfferedRentOutput processOfferedRentInput(OfferedRentInput offeredRentInput, string userAgent)
        {
            OfferedRentOutput offeredRentOutput = new OfferedRentOutput();

            CalculateRent(offeredRentInput, offeredRentOutput);
            offeredRentOutput.qualityMicro = offeredRentInput.qualityMicro ?? 0;
            offeredRentOutput.zip          = offeredRentInput.address.zip;
            offeredRentOutput.town         = offeredRentInput.address.town;
            offeredRentOutput.street       = offeredRentInput.address.street;
            offeredRentOutput.CategoryCode = offeredRentInput.categoryCode;
            offeredRentOutput.country      = offeredRentInput.address.country;

            ////Saving
            try
            {
                SaveRentPropertyDetails(MapRentBuisnessDataToDatabaseModel(null, null, null, offeredRentInput.deviceId, offeredRentOutput), userAgent);
            }
            catch (Exception ex)
            {
                RealEstateRepository realEstateRepository = new RealEstateRepository();
                realEstateRepository.saveException(ex.Message, Convert.ToString(ex.InnerException), ex.StackTrace);
                return(offeredRentOutput);
            }


            return(offeredRentOutput);
        }
Exemplo n.º 2
0
        public AppraisalOutput processDetailInput(DetailInput detailInput, string userAgent)
        {
            PriceInput      priceInput      = MapDetailInputToPriceInput(detailInput);
            AppraisalOutput appraisalOutput = new AppraisalOutput();

            CalculatePrice(priceInput, detailInput.catCode ?? 0, appraisalOutput);

            appraisalOutput.microRating = detailInput.microRating ?? 0;
            appraisalOutput.zip         = detailInput.zip;
            appraisalOutput.town        = detailInput.town;
            appraisalOutput.street      = detailInput.street;
            appraisalOutput.CatCode     = detailInput.catCode ?? 0;
            appraisalOutput.country     = detailInput.country;

            ////Saving
            try
            {
                SavePricePropertyDetails(MapPriceBuisnessDataToDatabaseModel(null, null, null, detailInput.deviceId, appraisalOutput), userAgent);
            }
            catch (Exception ex)
            {
                RealEstateRepository realEstateRepository = new RealEstateRepository();
                realEstateRepository.saveException(ex.Message, Convert.ToString(ex.InnerException), ex.StackTrace);
                return(appraisalOutput);
            }

            return(appraisalOutput);
        }
Exemplo n.º 3
0
        private void UpdateButton_Click(object sender, RoutedEventArgs e)
        {
            decimal square;

            decimal.TryParse(squareTextbox.Text, out square);
            _realEstate.Square = square;
            RealEstateRepository.Update(_realEstate);
            MessageBox.Show("Действие успешно выполнено.");
            MainFrameHolder.MainFrame.Navigate(new RealEstatePage());
        }
Exemplo n.º 4
0
        public UnitOfWork(AdvertContext context)
        {
            this.context = context;

            CommentRepository    = new CommentRepository(context);
            RatingRepository     = new RatingRepository(context);
            RealEstateRepository = new RealEstateRepository(context);
            UserRepository       = new UserRepository(context);
            PictureRepository    = new PictureRepository(context);
        }
        public RealEstateRepositoryTests()
        {
            // Arrange
            dbSetRealEstateMock = new MockedDbSet <RealEstate>(testRealEstates);

            var builder     = new DbContextOptionsBuilder <AdvertContext>();
            var contextMock = new Mock <AdvertContext>(builder.Options);

            contextMock.Setup(c => c.Set <RealEstate>()).Returns(dbSetRealEstateMock.Object);
            contextMock.Setup(c => c.RealEstates).Returns(dbSetRealEstateMock.Object);

            repo = new RealEstateRepository(contextMock.Object);
        }
Exemplo n.º 6
0
        private void UpdateButton_Click(object sender, RoutedEventArgs e)
        {
            int     roomsQuantity;
            int     floorsQuantity;
            decimal square;

            int.TryParse(roomsQuantityTextbox.Text, out roomsQuantity);
            int.TryParse(floorsQuantityTextbox.Text, out floorsQuantity);
            decimal.TryParse(squareTextbox.Text, out square);
            _realEstate.RoomsQuantity = roomsQuantity;
            _realEstate.Floor         = floorsQuantity;
            _realEstate.Square        = square;
            RealEstateRepository.Update(_realEstate);
            MessageBox.Show("Действие успешно выполнено.");
            MainFrameHolder.MainFrame.Navigate(new RealEstatePage());
        }
Exemplo n.º 7
0
        private void SaveRentPropertyDetails(RentData rentData, string userAgent)
        {
            RealEstateRepository realEstateRepository = new RealEstateRepository();

            realEstateRepository.saveRentPropertyDetails(rentData, userAgent);
        }
Exemplo n.º 8
0
        private void SavePricePropertyDetails(PriceData priceData, string userAgent)
        {
            RealEstateRepository realEstateRepository = new RealEstateRepository();

            realEstateRepository.savePricePropertyDetails(priceData, userAgent);
        }
Exemplo n.º 9
0
        public AppraisalOutput processImageLatLon(string imageBase64, double?latitude, double?longitude, string deviceId, string userAgent)
        {
            AppraisalOutput appraisalOutput = new AppraisalOutput();
            GoogleVisionApi googleVisionApi = new GoogleVisionApi();
            PriceInput      priceInput      = new PriceInput();
            ImageCategory   imageCategory;
            string          country;
            string          countryCode;
            double?         lat;
            double?         lng;

            try
            {
                imageCategory = googleVisionApi.fetchCategoryForImage(imageBase64);
            }
            catch (Exception)
            {
                // imageBase64 = getImageAndConvertbase64();
                // imageCategory = googleVisionApi.fetchCategoryForImage(imageBase64);
                imageCategory = new ImageCategory();
                imageCategory.CategoryCode = -2;
                imageCategory.CategoryText = "Invalid Image";
            }

            getAddressForLatLong(latitude ?? 0.0, longitude ?? 0.0);

            if (reverseGeoCodeResult.Country != "Switzerland")
            {
                country     = "Switzerland";
                countryCode = "CH";

                priceInput.zip  = appraisalOutput.zip = ConfigurationManager.AppSettings["DefaultZip"];
                priceInput.town = appraisalOutput.town = ConfigurationManager.AppSettings["DefaultTown"];
                //if country is not switzerland then attach time to street .
                priceInput.street = appraisalOutput.street = ConfigurationManager.AppSettings["DefaultStreet"] + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second;

                appraisalOutput.minappraisalValue = Convert.ToInt64(latitude.ToString().Replace(".", String.Empty));
                appraisalOutput.maxappraisalValue = Convert.ToInt64(longitude.ToString().Replace(".", String.Empty));
                lat = Convert.ToDouble(ConfigurationManager.AppSettings["DefaultLatitude"]);
                lng = Convert.ToDouble(ConfigurationManager.AppSettings["DefaultLongitude"]);
            }
            else
            {
                country     = reverseGeoCodeResult.Country;
                countryCode = "CH";

                priceInput.zip    = appraisalOutput.zip = reverseGeoCodeResult.Zip;
                priceInput.town   = appraisalOutput.town = reverseGeoCodeResult.Town;
                priceInput.street = appraisalOutput.street = reverseGeoCodeResult.Street;
                lat = (double)latitude;
                lng = (double)longitude;
            }

            if (imageCategory.CategoryCode != -1 && imageCategory.CategoryCode != -2)
            {
                getMicroRating(imageCategory.CategoryCode, lat ?? 0.0, lng ?? 0.0, countryCode);
                priceInput.qualityMicro = appraisalOutput.microRating = ratingResponse.results.microRatingClass1To5 ?? 3;
            }


            appraisalOutput.country = country;
            appraisalOutput.CatCode = imageCategory.CategoryCode;

            switch (imageCategory.CategoryCode)
            {
            case 5:
                priceInput.surfaceLiving = Convert.ToInt16(ConfigurationManager.AppSettings["A2SurfaceLivingDefault"]); //set default for A2 for Surface
                appraisalOutput.category = imageCategory.CategoryText;                                                  //" Single family House";
                break;

            case 6:
                priceInput.surfaceLiving = Convert.ToInt16(ConfigurationManager.AppSettings["A3SurfaceLivingDefault"]);;
                appraisalOutput.category = imageCategory.CategoryText;      //" Condominium";
                break;

            case -1:
            case -2:
                appraisalOutput.category = imageCategory.CategoryText;      //Set the first two labels that are returned by Google
                break;

            default:
                break;
            }


            if (imageCategory.CategoryCode != -1 && imageCategory.CategoryCode != -2)
            {
                CalculatePrice(priceInput, imageCategory.CategoryCode, appraisalOutput);
            }

            //Saving Property Details//
            try
            {
                PriceData priceData = MapPriceBuisnessDataToDatabaseModel(imageBase64, latitude, longitude, deviceId, appraisalOutput);
                SavePricePropertyDetails(priceData, userAgent);
            }
            catch (Exception ex)
            {
                RealEstateRepository realEstateRepository = new RealEstateRepository();
                realEstateRepository.saveException(ex.Message, Convert.ToString(ex.InnerException), ex.StackTrace);
                return(appraisalOutput);
            }


            return(appraisalOutput);
        }
Exemplo n.º 10
0
        public OfferedRentOutput processImageLatLonForOfferedRent(string imageBase64, double?latitude, double?longitude, string deviceId, string userAgent)
        {
            OfferedRentOutput offeredRentOutput = new OfferedRentOutput();
            GoogleVisionApi   googleVisionApi   = new GoogleVisionApi();
            OfferedRentInput  offeredRentInput  = new OfferedRentInput();
            ImageCategory     imageCategory;
            string            country;
            string            countryCode;

            try
            {
                imageCategory = googleVisionApi.fetchCategoryForImage(imageBase64);
            }
            catch (Exception)
            {
                //imageBase64 = getImageAndConvertbase64();
                //imageCategory = googleVisionApi.fetchCategoryForImage(imageBase64);
                imageCategory = new ImageCategory();
                imageCategory.CategoryCode = -2;
                imageCategory.CategoryText = "Invalid Image";
            }

            getAddressForLatLong(latitude ?? 0.0, longitude ?? 0.0);

            if (reverseGeoCodeResult.Country != "Switzerland")
            {
                country     = "Switzerland";
                countryCode = "CH";

                offeredRentInput.address = new OfferedRentAddress()
                {
                    address = ConfigurationManager.AppSettings["DefaultFormatedAddress"],
                    zip     = offeredRentOutput.zip = ConfigurationManager.AppSettings["DefaultZip"],
                    town    = offeredRentOutput.town = ConfigurationManager.AppSettings["DefaultTown"],
                    street  = offeredRentOutput.street = ConfigurationManager.AppSettings["DefaultStreet"] + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second,
                    lat     = Convert.ToDouble(ConfigurationManager.AppSettings["DefaultLatitude"]),
                    lng     = Convert.ToDouble(ConfigurationManager.AppSettings["DefaultLongitude"]),
                    country = country
                };

                offeredRentOutput.minappraisalValue = Convert.ToInt64(latitude.ToString().Replace(".", String.Empty));
                offeredRentOutput.maxappraisalValue = Convert.ToInt64(longitude.ToString().Replace(".", String.Empty));
            }
            else
            {
                country     = reverseGeoCodeResult.Country;
                countryCode = "CH";

                offeredRentInput.address = new OfferedRentAddress()
                {
                    address = reverseGeoCodeResult.FormattedAddress,
                    zip     = offeredRentOutput.zip = reverseGeoCodeResult.Zip,
                    town    = offeredRentOutput.town = reverseGeoCodeResult.Town,
                    street  = offeredRentOutput.street = reverseGeoCodeResult.Street,
                    lat     = (double)latitude,
                    lng     = (double)longitude,
                    country = country
                };
            }

            if (imageCategory.CategoryCode != -1 && imageCategory.CategoryCode != -2)
            {
                getMicroRating(imageCategory.CategoryCode, offeredRentInput.address.lat ?? 0.0, offeredRentInput.address.lng ?? 0.0, countryCode);
                offeredRentInput.qualityMicro = offeredRentOutput.qualityMicro = ratingResponse.results.microRatingClass1To5 ?? 3;
                offeredRentInput.ortId        = getOrtId(countryCode, offeredRentInput.address.lat ?? 0.0, offeredRentInput.address.lng ?? 0.0, "en-US");
            }



            offeredRentOutput.country      = country;
            offeredRentOutput.CategoryCode = imageCategory.CategoryCode;

            switch (imageCategory.CategoryCode)
            {
            case 5:
                offeredRentInput.surfaceContract = Convert.ToInt16(ConfigurationManager.AppSettings["A2SurfaceLivingDefault"]); //set default for A2 for Surface
                offeredRentInput.categoryCode    = offeredRentOutput.CategoryCode;
                offeredRentOutput.category       = imageCategory.CategoryText;                                                  //" Single family House";
                break;

            case 6:
                offeredRentInput.surfaceContract = Convert.ToInt16(ConfigurationManager.AppSettings["A3SurfaceLivingDefault"]);
                offeredRentInput.categoryCode    = offeredRentOutput.CategoryCode;
                offeredRentOutput.category       = imageCategory.CategoryText; //" Condominium";
                break;

            case -1:
            case -2:
                offeredRentOutput.category = imageCategory.CategoryText;
                break;

            default:
                break;
            }

            if (imageCategory.CategoryCode != -1 && imageCategory.CategoryCode != -2)
            {
                CalculateRent(offeredRentInput, offeredRentOutput);
            }

            //Saving Property Details//
            try
            {
                RentData rentData = MapRentBuisnessDataToDatabaseModel(imageBase64, latitude, longitude, deviceId, offeredRentOutput);
                SaveRentPropertyDetails(rentData, userAgent);
            }
            catch (Exception ex)
            {
                RealEstateRepository realEstateRepository = new RealEstateRepository();
                realEstateRepository.saveException(ex.Message, Convert.ToString(ex.InnerException), ex.StackTrace);
                return(offeredRentOutput);
            }

            return(offeredRentOutput);
        }
Exemplo n.º 11
0
        private void UpdateButton_Click(object sender, RoutedEventArgs e)
        {
            decimal latitude;
            decimal longitude;
            var     latitudeSucceded  = decimal.TryParse(latitudeTextbox.Text, out latitude);
            var     longitudeSucceded = decimal.TryParse(longitudeTextbox.Text, out longitude);

            if (_realEstate == null)
            {
                if (realtyTypeCombobox.SelectedItem == null)
                {
                    MessageBox.Show("Выберите тип недвижимости.");
                    return;
                }
                var type = (RealEstateType)realtyTypeCombobox.SelectedItem;

                RealEstate realEstate = new RealEstate
                {
                    City        = cityTextbox.Text,
                    Street      = streetTextbox.Text,
                    HouseNumber = houseTextbox.Text,
                    FlatNumber  = flatTextbox.Text
                };

                if (latitudeSucceded)
                {
                    realEstate.Latitude = latitude;
                }

                if (longitudeSucceded)
                {
                    realEstate.Longitude = longitude;
                }

                realEstate.Discriminator = Enum.GetName(typeof(RealEstateType), type);
                RealEstateRepository.Create(realEstate);

                switch (type)
                {
                case RealEstateType.Flat:
                    MainFrameHolder.MainFrame.Navigate(new UpdateFlatPage(realEstate));
                    break;

                case RealEstateType.House:
                    MainFrameHolder.MainFrame.Navigate(new UpdateHousePage(realEstate));
                    break;

                case RealEstateType.Ground:
                    MainFrameHolder.MainFrame.Navigate(new UpdateGroundPage(realEstate));
                    break;
                }
                return;
            }

            _realEstate.City        = cityTextbox.Text;
            _realEstate.Street      = streetTextbox.Text;
            _realEstate.HouseNumber = houseTextbox.Text;
            _realEstate.FlatNumber  = flatTextbox.Text;

            if (latitudeSucceded)
            {
                _realEstate.Latitude = latitude;
            }

            if (longitudeSucceded)
            {
                _realEstate.Latitude = longitude;
            }

            RealEstateRepository.Update(_realEstate);
            MessageBox.Show("Операция успешно завершена.");
            MainFrameHolder.MainFrame.Navigate(new RealEstatePage());
        }