public void BaseXmlSerializer_CanSerializeToBaseClass() { var re = new ApartmentRent { title = "Test" }; var xml = new BaseXmlSerializer().Serialize(re, typeof(RealEstate)); var xElement = XElement.Parse(xml); Assert.Equal("realEstate", xElement.Name.LocalName); }
public async Task RealEstate_Create_RequestsCorrectResource() { Http.RespondWith(m => { Assert.Equal("POST", m); Assert.Equal("http://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate", Http.Url.ToString()); return new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_CREATED, message = "RealEstate with id [4711] has been created." } } }; }); var re = new ApartmentRent { title = "Test" }; await Client.RealEstates.CreateAsync(re); }
public async Task RealEstate_Create_CallSucceeds_NoExceptionThrown() { Http.RespondWith(m => { return(new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, message = "" } } }); }); var re = new ApartmentRent { id = 4711, title = "Test" }; await Client.RealEstates.UpdateAsync(re); }
private static void ApartmentRentChoiceAdapterPropertiesWork() { var re = new ApartmentRent(); Assert.Null(re.Item); Assert.Null(re.ConstructionYear); re.ConstructionYear = 1900; Assert.Equal(1900, re.Item); Assert.Equal(1900, re.ConstructionYear); re.ConstructionYear = null; Assert.Null(re.ConstructionYear); Assert.True(re.ConstructionYearUnknown); re.ConstructionYearUnknown = true; Assert.IsType<bool>(re.Item); Assert.True((bool)re.Item); Assert.Null(re.ConstructionYear); }
public async Task RealEstate_Create_CallSucceeds_NoExceptionThrown() { RestClient.RespondWith(r => { return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, MessageProperty = "" } } }); }); var re = new ApartmentRent { Id = 4711, Title = "Test" }; await Client.RealEstates.UpdateAsync(re); }
public async Task RealEstate_Create_RequestsCorrectResource() { Http.RespondWith(m => { Assert.Equal("POST", m); Assert.Equal("http://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate", Http.Url.ToString()); return(new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_CREATED, message = "RealEstate with id [4711] has been created." } } }); }); var re = new ApartmentRent { title = "Test" }; await Client.RealEstates.CreateAsync(re); }
public async Task RealEstate_Create_CallSucceeds_RealEstateObjectHasNewId() { Http.RespondWith(m => { return(new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_CREATED, message = "RealEstate with id [4711] has been created." } } }); }); var re = new ApartmentRent { title = "Test" }; await Client.RealEstates.CreateAsync(re); Assert.Equal(4711, re.id); }
public async Task RealEstate_Create_CallSucceeds_RealEstateObjectHasNewId() { RestClient.RespondWith(r => { return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_CREATED, MessageProperty = "RealEstate with id [4711] has been created.", Id = "4711" } } }); }); var re = new ApartmentRent { Title = "Test" }; await Client.RealEstates.CreateAsync(re); Assert.Equal(4711, re.Id); }
public async Task RealEstate_Update_RequestsCorrectResource() { Http.RespondWith(m => { Assert.Equal("PUT", m); Assert.Equal("http://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711", Http.Url.ToString()); return(new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, message = "" } } }); }); var re = new ApartmentRent { id = 4711, title = "Test" }; await Client.RealEstates.UpdateAsync(re); }
public async Task RealEstate_Create_RequestsCorrectResource() { RestClient.RespondWith(r => { Assert.Equal(Method.POST, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate", RestClient.BuildUri(r).GetLeftPart(UriPartial.Path)); Assert.Equal("?usenewenergysourceenev2014values=true", RestClient.BuildUri(r).Query); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_CREATED, MessageProperty = "RealEstate with id [4711] has been created.", Id = "4711" } } }); }); var re = new ApartmentRent { Title = "Test" }; await Client.RealEstates.CreateAsync(re); }
public async Task RealEstate_Update_PostsRealEstateObject() { RestClient.RespondWith(r => { var re = r.Body() as RealEstate; Assert.IsType <ApartmentRent>(re); Assert.Equal(4711, re.Id); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, MessageProperty = "" } } }); }); var a = new ApartmentRent { Id = 4711, Title = "Test" }; await Client.RealEstates.UpdateAsync(a); }
public async Task RealEstate_Create_PostsRealEstateObject() { RestClient.RespondWith(r => { var re = r.Parameters.Single(p => p.Type == ParameterType.RequestBody).Value as RealEstate; Assert.IsType <ApartmentRent>(re); Assert.Equal("Test", re.Title); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_CREATED, MessageProperty = "RealEstate with id [4711] has been created.", Id = "4711" } } }); }); var a = new ApartmentRent { Title = "Test" }; await Client.RealEstates.CreateAsync(a); }
public async Task RealEstate_Update_PostsRealEstateObject() { Http.RespondWith(m => { var re = new BaseXmlDeserializer().Deserialize <RealEstate>(new RestResponse { Content = Http.RequestBody }); Assert.IsType <ApartmentRent>(re); Assert.Equal(4711, re.id); return(new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, message = "" } } }); }); var r = new ApartmentRent { id = 4711, idSpecified = true, title = "Test" }; await Client.RealEstates.UpdateAsync(r); }
public async Task RealEstate_Create_PostsRealEstateObject() { Http.RespondWith(m => { var re = new BaseXmlDeserializer().Deserialize <RealEstate>(new RestResponse { Content = Http.RequestBody }); Assert.IsType <ApartmentRent>(re); Assert.Equal("Test", re.title); return(new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_CREATED, message = "RealEstate with id [4711] has been created." } } }); }); var r = new ApartmentRent { title = "Test" }; await Client.RealEstates.CreateAsync(r); }
private static void ApartmentRentChoiceAdapterPropertiesWork() { var re = new ApartmentRent(); Assert.Null(re.Item); Assert.Null(re.ConstructionYear); re.ConstructionYear = 1900; Assert.Equal(1900, re.Item); Assert.Equal(1900, re.ConstructionYear); re.ConstructionYear = null; Assert.Null(re.ConstructionYear); Assert.True(re.ConstructionYearUnknown); re.ConstructionYearUnknown = true; Assert.IsType<bool>(re.Item); Assert.True((bool)re.Item); Assert.Null(re.ConstructionYear); Assert.Null(re.Item1); Assert.Null(re.HeatingType); Assert.Null(re.HeatingTypeEnev2014); re.HeatingType = HeatingType.STOVE_HEATING; Assert.IsType<HeatingType>(re.Item1); Assert.Equal(HeatingType.STOVE_HEATING, re.Item1); re.HeatingTypeEnev2014 = HeatingTypeEnev2014.FLOOR_HEATING; Assert.IsType<HeatingTypeEnev2014>(re.Item1); Assert.Equal(HeatingTypeEnev2014.FLOOR_HEATING, re.Item1); Assert.Null(re.HeatingType); Assert.Null(re.Item2); Assert.Null(re.FiringTypes); Assert.Null(re.EnergySourcesEnev2014); re.FiringTypes = new FiringTypes(); Assert.IsType<FiringTypes>(re.Item2); Assert.Null(re.EnergySourcesEnev2014); re.EnergySourcesEnev2014 = new EnergySourcesEnev2014(); Assert.IsType<EnergySourcesEnev2014>(re.Item2); Assert.Null(re.FiringTypes); }
private static void ApartmentRentChoiceAdapterPropertiesWork() { var re = new ApartmentRent(); Assert.Null(re.Item); Assert.Null(re.ConstructionYear); re.ConstructionYear = 1900; Assert.Equal(1900, re.Item); Assert.Equal(1900, re.ConstructionYear); re.ConstructionYear = null; Assert.Null(re.ConstructionYear); Assert.True(re.ConstructionYearUnknown); re.ConstructionYearUnknown = true; Assert.IsType <bool>(re.Item); Assert.True((bool)re.Item); Assert.Null(re.ConstructionYear); Assert.Null(re.Item1); Assert.Null(re.HeatingType); Assert.Null(re.HeatingTypeEnev2014); re.HeatingType = HeatingType.STOVE_HEATING; Assert.IsType <HeatingType>(re.Item1); Assert.Equal(HeatingType.STOVE_HEATING, re.Item1); re.HeatingTypeEnev2014 = HeatingTypeEnev2014.FLOOR_HEATING; Assert.IsType <HeatingTypeEnev2014>(re.Item1); Assert.Equal(HeatingTypeEnev2014.FLOOR_HEATING, re.Item1); Assert.Null(re.HeatingType); Assert.Null(re.Item2); Assert.Null(re.FiringTypes); Assert.Null(re.EnergySourcesEnev2014); re.FiringTypes = new FiringTypes(); Assert.IsType <FiringTypes>(re.Item2); Assert.Null(re.EnergySourcesEnev2014); re.EnergySourcesEnev2014 = new EnergySourcesEnev2014(); Assert.IsType <EnergySourcesEnev2014>(re.Item2); Assert.Null(re.FiringTypes); }
public async Task RealEstate_Create_PostsRealEstateObject() { Http.RespondWith(m => { var re = new BaseXmlDeserializer().Deserialize<RealEstate>(new RestResponse { Content = Http.RequestBody }); Assert.IsType<ApartmentRent>(re); Assert.Equal("Test", re.title); return new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_CREATED, message = "RealEstate with id [4711] has been created." } } }; }); var r = new ApartmentRent { title = "Test" }; await Client.RealEstates.CreateAsync(r); }
private static async Task TestAsync(Config config) { var connection = new IS24Connection { ConsumerKey = config.ConsumerKey, ConsumerSecret = config.ConsumerSecret, AccessToken = config.AccessToken, AccessTokenSecret = config.AccessSecret, BaseUrlPrefix = @"https://rest.sandbox-immobilienscout24.de/restapi/api" }; var searchResource = new SearchResource(connection); var query = new RadiusQuery { Latitude = 52.49023, Longitude = 13.35939, Radius = 1, RealEstateType = RealEstateType.APARTMENT_RENT, Parameters = new { Price = new DecimalRange { Max = 1000 }, LivingSpace = new DecimalRange { Min = 100 }, NumberOfRooms = new DecimalRange { Min = 4 }, Equipment = "balcony" }, Channel = new HomepageChannel("me") }; var results = await searchResource.Search(query); var api = new ImportExportClient(connection); RealtorContactDetails contact = null; try { contact = await api.Contacts.GetAsync("Hans Meiser", isExternal : true); } catch (IS24Exception ex) { if (ex.Messages.Message.First().MessageCode != MessageCode.ERROR_RESOURCE_NOT_FOUND) { throw; } } if (contact == null) { contact = new RealtorContactDetails { Lastname = "Meiser", Firstname = "Hans", Address = new Address { Street = "Hauptstraße", HouseNumber = "1", Postcode = "10827", City = "Berlin", InternationalCountryRegion = new CountryRegion { Country = CountryCode.DEU, Region = "Berlin" } }, Email = "*****@*****.**", ExternalId = "Hans Meiser" }; await api.Contacts.CreateAsync(contact); contact.Address.HouseNumber = "1a"; await api.Contacts.UpdateAsync(contact); } IRealEstate realEstate = null; try { realEstate = await api.RealEstates.GetAsync("Hauptstraße 1", isExternal : true); } catch (IS24Exception ex) { if (ex.Messages.Message.First().MessageCode != MessageCode.ERROR_RESOURCE_NOT_FOUND) { throw; } } if (realEstate == null) { var re = new ApartmentRent { Contact = new RealEstateContact { Id = contact.Id }, ExternalId = "Hauptstraße 1", Title = "IS24RestApi Test", Address = new Wgs84Address { Street = "Hauptstraße", HouseNumber = "1", City = "Berlin", Postcode = "10827" }, BaseRent = 500.0, LivingSpace = 100.0, NumberOfRooms = 4.0, ShowAddress = true, Courtage = new CourtageInfo { HasCourtage = YesNoNotApplicableType.NO } }; await api.RealEstates.CreateAsync(re); re.BaseRent += 100.0; await api.RealEstates.UpdateAsync(re); realEstate = new RealEstateItem(re, connection); } else { var re = (ApartmentRent)realEstate.RealEstate; re.BaseRent += 100.0; await api.RealEstates.UpdateAsync(re); re.BaseRent -= 100.0; await api.RealEstates.UpdateAsync(re); } var projects = await api.RealEstateProjects.GetAllAsync(); if (projects.RealEstateProject.Any()) { var project = projects.RealEstateProject.First(); var entries = await api.RealEstateProjects.GetAllAsync(project.Id.Value); if (!entries.RealEstateProjectEntry.Any(e => e.RealEstateId.Value == realEstate.RealEstate.Id.Value)) { await api.RealEstateProjects.AddAsync(project.Id.Value, realEstate.RealEstate); } } var placement = await realEstate.PremiumPlacements.GetAsync(); var a1 = new KeyValuePair <Attachment, string>(new Picture { Title = "Zimmer 1", Floorplan = false, TitlePicture = true }, @"..\..\..\test.jpg"); var a2 = new KeyValuePair <Attachment, string>(new Picture { Title = "Zimmer 2" }, @"..\..\..\test.jpg"); var a3 = new KeyValuePair <Attachment, string>(new Picture { Title = "Zimmer 3" }, @"..\..\..\test.jpg"); var pdf = new KeyValuePair <Attachment, string>(new PDFDocument { Title = "Test" }, @"..\..\..\test.pdf"); var video = new KeyValuePair <Attachment, string>(new StreamingVideo { Title = "Video" }, @"..\..\..\test.avi"); var link = new KeyValuePair <Attachment, string>(new Link { Title = "Test", Url = "http://www.example.com/" }, null); var atts = new[] { video, a1, pdf, a2, link, a3 }; await realEstate.Attachments.UpdateAsync(atts); var res = new List <RealEstate>(); await api.RealEstates.GetAsync().ForEachAsync(x => res.Add(x.RealEstate)); }
public async Task RealEstate_Create_CallSucceeds_RealEstateObjectHasNewId() { Http.RespondWith(m => { return new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_CREATED, message = "RealEstate with id [4711] has been created." } } }; }); var re = new ApartmentRent { title = "Test" }; await Client.RealEstates.CreateAsync(re); Assert.Equal(4711, re.id); }
public async Task RealEstate_Update_PostsRealEstateObject() { Http.RespondWith(m => { var re = new BaseXmlDeserializer().Deserialize<RealEstate>(new RestResponse { Content = Http.RequestBody }); Assert.IsType<ApartmentRent>(re); Assert.Equal(4711, re.id); return new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, message = "" } } }; }); var r = new ApartmentRent { id = 4711, idSpecified = true, title = "Test" }; await Client.RealEstates.UpdateAsync(r); }
public async Task RealEstate_Update_RequestsCorrectResource() { Http.RespondWith(m => { Assert.Equal("PUT", m); Assert.Equal("http://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711", Http.Url.ToString()); return new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, message = "" } } }; }); var re = new ApartmentRent { id = 4711, title = "Test" }; await Client.RealEstates.UpdateAsync(re); }
public async Task RealEstate_Create_CallSucceeds_NoExceptionThrown() { Http.RespondWith(m => { return new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, message = "" } } }; }); var re = new ApartmentRent { id = 4711, title = "Test" }; await Client.RealEstates.UpdateAsync(re); }
private static async Task TestAsync(Config config) { var connection = new IS24Connection { ConsumerKey = config.ConsumerKey, ConsumerSecret = config.ConsumerSecret, AccessToken = config.AccessToken, AccessTokenSecret = config.AccessSecret, BaseUrlPrefix = @"https://rest.sandbox-immobilienscout24.de/restapi/api" }; var searchResource = new SearchResource(connection); var query = new RadiusQuery { Latitude = 52.49023, Longitude = 13.35939, Radius = 1, RealEstateType = RealEstateType.APARTMENT_RENT, Parameters = new { Price = new DecimalRange { Max = 1000 }, LivingSpace = new DecimalRange { Min = 100 }, NumberOfRooms = new DecimalRange { Min = 4 }, Equipment = "balcony" }, Channel = new HomepageChannel("me") }; var results = await searchResource.Search(query); var api = new ImportExportClient(connection); RealtorContactDetails contact = null; try { contact = await api.Contacts.GetAsync("Hans Meiser", isExternal: true); } catch (IS24Exception ex) { if (ex.Messages.Message.First().MessageCode != MessageCode.ERROR_RESOURCE_NOT_FOUND) throw; } if (contact == null) { contact = new RealtorContactDetails { Lastname = "Meiser", Firstname = "Hans", Address = new Address { Street = "Hauptstraße", HouseNumber = "1", Postcode = "10827", City = "Berlin", InternationalCountryRegion = new CountryRegion { Country = CountryCode.DEU, Region = "Berlin" } }, Email = "*****@*****.**", ExternalId = "Hans Meiser" }; await api.Contacts.CreateAsync(contact); contact.Address.HouseNumber = "1a"; await api.Contacts.UpdateAsync(contact); } IRealEstate realEstate = null; try { realEstate = await api.RealEstates.GetAsync("Hauptstraße 1", isExternal: true); } catch (IS24Exception ex) { if (ex.Messages.Message.First().MessageCode != MessageCode.ERROR_RESOURCE_NOT_FOUND) throw; } if (realEstate == null) { var re = new ApartmentRent { Contact = new RealEstateContact { Id = contact.Id }, ExternalId = "Hauptstraße 1", Title = "IS24RestApi Test", Address = new Wgs84Address { Street = "Hauptstraße", HouseNumber = "1", City = "Berlin", Postcode = "10827" }, BaseRent = 500.0, LivingSpace = 100.0, NumberOfRooms = 4.0, ShowAddress = true, Courtage = new CourtageInfo { HasCourtage = YesNoNotApplicableType.NO } }; await api.RealEstates.CreateAsync(re); re.BaseRent += 100.0; await api.RealEstates.UpdateAsync(re); realEstate = new RealEstateItem(re, connection); } else { var re = (ApartmentRent)realEstate.RealEstate; re.BaseRent += 100.0; await api.RealEstates.UpdateAsync(re); re.BaseRent -= 100.0; await api.RealEstates.UpdateAsync(re); } var projects = await api.RealEstateProjects.GetAllAsync(); if (projects.RealEstateProject.Any()) { var project = projects.RealEstateProject.First(); var entries = await api.RealEstateProjects.GetAllAsync(project.Id.Value); if (!entries.RealEstateProjectEntry.Any(e => e.RealEstateId.Value == realEstate.RealEstate.Id.Value)) await api.RealEstateProjects.AddAsync(project.Id.Value, realEstate.RealEstate); } var placement = await realEstate.PremiumPlacements.GetAsync(); var atts = await realEstate.Attachments.GetAsync(); if (atts == null || !atts.Any()) { var att = new Picture { Floorplan = false, TitlePicture = true, Title = "Zimmer", }; await realEstate.Attachments.CreateAsync(att, @"..\..\test.jpg"); att.Title = "Zimmer 1"; await realEstate.Attachments.UpdateAsync(att); var link = new Link { Title = "Test", Url = "http://www.example.com/" }; await realEstate.Attachments.CreateAsync(link); var video = new StreamingVideo { Title = "Video" }; await realEstate.Attachments.CreateStreamingVideoAsync(video, @"..\..\test.avi"); } var res = new List<RealEstate>(); await api.RealEstates.GetAsync().ForEachAsync(x => res.Add(x.RealEstate)); }
private static async Task TestAsync() { var config = RestSharp.SimpleJson.DeserializeObject <Config>(File.ReadAllText("config.json")); var connection = new IS24Connection { ConsumerKey = config.ConsumerKey, ConsumerSecret = config.ConsumerSecret, AccessToken = config.AccessToken, AccessTokenSecret = config.AccessSecret, BaseUrlPrefix = @"http://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0" }; var api = new ImportExportClient(connection); RealtorContactDetails contact = null; try { contact = await api.Contacts.GetAsync("Hans Meiser", isExternal : true); } catch (IS24Exception ex) { if (ex.Messages.message.First().messageCode != MessageCode.ERROR_RESOURCE_NOT_FOUND) { throw; } } if (contact == null) { contact = new RealtorContactDetails { lastname = "Meiser", firstname = "Hans", email = "*****@*****.**", address = new Address { street = "Hauptstraße", houseNumber = "1", postcode = "10827", city = "Berlin", internationalCountryRegion = new CountryRegion { country = CountryCode.DEU, region = "Berlin" } }, externalId = "Hans Meiser" }; await api.Contacts.CreateAsync(contact); contact.address.houseNumber = "1a"; await api.Contacts.UpdateAsync(contact); } IRealEstate realEstate = null; try { realEstate = await api.RealEstates.GetAsync("Hauptstraße 1", isExternal : true); } catch (IS24Exception ex) { if (ex.Messages.message.First().messageCode != MessageCode.ERROR_RESOURCE_NOT_FOUND) { throw; } } if (realEstate == null) { var re = new ApartmentRent { contact = new RealEstateContact { id = contact.id, idSpecified = true }, externalId = "Hauptstraße 1", title = "IS24RestApi Test", address = new Wgs84Address { street = "Hauptstraße", houseNumber = "1", city = "Berlin", postcode = "10827" }, baseRent = 500.0, livingSpace = 100.0, numberOfRooms = 4.0, showAddress = true, courtage = new CourtageInfo { hasCourtage = YesNoNotApplicableType.NO } }; await api.RealEstates.CreateAsync(re); re.baseRent += 100.0; await api.RealEstates.UpdateAsync(re); realEstate = new RealEstateItem(re, connection); } var atts = await realEstate.Attachments.GetAsync(); if (atts == null || !atts.Any()) { var att = new Picture { floorplan = false, titlePicture = true, title = "Zimmer", }; await realEstate.Attachments.CreateAsync(att, @"..\..\test.jpg"); att.title = "Zimmer 1"; await realEstate.Attachments.UpdateAsync(att); } await api.Publish.PublishAsync(realEstate.RealEstate); await api.Publish.UnpublishAsync(realEstate.RealEstate); var res = new List <RealEstate>(); await api.RealEstates.GetAsync().ForEachAsync(x => res.Add(x.RealEstate)); }