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); }
public HttpResponseMessage OfferedRentAppraiseProperty([FromBody] OfferedRentInput offeredRentInput) { try { if (!ModelState.IsValid) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState)); } apiManager = new APIManager(token); string userAgent = String.Empty; if (Request.Headers.UserAgent != null) { userAgent = Convert.ToString(Request.Headers.UserAgent); } AppServiceApi.Models.OfferedRentOutput offeredRentOutput = apiManager.processOfferedRentInput(offeredRentInput, userAgent); return(Request.CreateResponse(HttpStatusCode.OK, offeredRentOutput)); } catch (Exception ex) { ErrorAsync(ex, Request.RequestUri.AbsoluteUri.ToString()); return(Request.CreateResponse(HttpStatusCode.BadRequest, new { message = "Bad Request" })); } }
private void CalculateRent(OfferedRentInput offeredRentInput, OfferedRentOutput offeredRentOutput) { string priceUrl = String.Format("{0}/{1}", ConfigurationManager.AppSettings["Server"], ConfigurationManager.AppSettings["OfferedRentService"]); string postData = "[" + JsonConvert.SerializeObject(offeredRentInput) + "]"; string result = iaziClientsync.postApiRequest(priceUrl, postData, token); parseOfferedRentModelRJson(result, offeredRentOutput); }
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); }