public virtual async Task <Response> Create(PropertyListing model) { try { model.AgentId = User.GetLocalUserId(); model.CreatedBy = User.Identity.Name; model.CreatedOn = DateTime.UtcNow; model.LastEditedBy = User.Identity.Name; model.LastEditedOn = DateTime.UtcNow; model.Confidential = false; model.Featured = false; model.AskingPrice = 0; model.Fees = 0; model.Rent = 0; model.Premium = 0; model.AskingPriceDisplay = "{0}"; model.FeesDisplay = "{0}"; model.RentDisplay = "{0}"; model.PremiumDisplay = "{0}"; model.ShareCount = 0; model.Views = 0; List <string> leaseStatuses = _propertySettings.GetLeaseStatuses(); if (leaseStatuses.Count > 0) { model.LeaseStatus = leaseStatuses.FirstOrDefault(); } else { model.LeaseStatus = "Available"; } Dictionary <string, string> planningTypes = _propertySettings.GetPlanningTypes(); if (planningTypes.Count > 0) { model.Planning = planningTypes.FirstOrDefault().Key; } else { model.Planning = "VAR"; } List <string> listingTypes = _propertySettings.GetListingTypes(); if (listingTypes.Count > 0) { model.ListingType = listingTypes.FirstOrDefault(); } else { model.ListingType = "Not Specified"; } // Geocode Geocoding.Google.GoogleAddress address = _address.GeocodeAddress(model); if (address != null) { model.SetLocation(address.Coordinates); } await _property.AddAsync(model); if (model.Metadata == null) { model.Metadata = new List <PropertyMeta>(); } model.UpdateMeta("PlanningDescription", Engine.Settings.Property.GetPlanningTypes().FirstOrDefault().Value); for (int i = 0; i < 11; i++) { model.AddMeta("Feature" + i.ToString(), "", "System.String"); } await _property.UpdateAsync(model); return(new Response(true, "Created successfully."));; } catch (Exception ex) { return(await ErrorResponseAsync <BasePropertyController>($"Error creating a new property.", ex)); } }
private RealEstate CreateRealEstate(CreateRealEstateViewModel realEstate, GoogleAddress addressFull) { var userId = this.User.Identity.GetUserId(); var currentlyLoggedUser = this.usersService.GetUserDetailsById(userId); realEstate.Country = addressFull.Components[3].LongName; realEstate.City = addressFull.Components[1].LongName; var dbRealEstate = this.Mapper.Map<RealEstate>(realEstate); dbRealEstate.PublisherId = userId; if (currentlyLoggedUser.MyOwnAgencyId !=null) { dbRealEstate.AgencyId = currentlyLoggedUser.MyOwnAgencyId; } dbRealEstate.Latitude = addressFull.Coordinates.Latitude; dbRealEstate.Longitude = addressFull.Coordinates.Longitude; var visitors = new VisitorsDetails(); visitors.AllUsers.Add(currentlyLoggedUser); var visitorsDetailsId = this.visitorsService.Add(visitors); dbRealEstate.VisitorsDetailsId = visitorsDetailsId; dbRealEstate.VisitorsDetails = visitors; return dbRealEstate; }