/// <summary> /// Creates a RealEstate object. /// </summary> /// <param name="re">The RealEstate object.</param> public async Task CreateAsync(RealEstate re) { var req = Connection.CreateRequest("realestate", Method.POST); req.AddBody(re); var resp = await Connection.ExecuteAsync<messages>(req); var id = resp.ExtractCreatedResourceId(); if (!id.HasValue) { throw new IS24Exception(string.Format("Error creating RealEstate {0}: {1}", re.externalId, resp.message.ToMessage())) { Messages = resp }; } re.id = id.Value; re.idSpecified = true; }
/// <summary> /// Depublishes a RealEstate object. /// </summary> /// <param name="realEstate">The RealEstate object.</param> public async Task UnpublishAsync(RealEstate realEstate) { var req = Connection.CreateRequest("publish"); req.AddParameter("realestate", realEstate.id); req.AddParameter("publishchannel", ImportExportClient.ImmobilienscoutPublishChannelId); var pos = await Connection.ExecuteAsync<publishObjects>(req, ""); if (pos.publishObject != null && pos.publishObject.Any()) { req = Connection.CreateRequest("publish/{id}", Method.DELETE); req.AddParameter("id", pos.publishObject[0].id, ParameterType.UrlSegment); var pres = await Connection.ExecuteAsync<messages>(req, ""); if (!pres.IsSuccessful(MessageCode.MESSAGE_RESOURCE_DELETED)) { throw new IS24Exception(string.Format("Error depublishing RealEstate {0}: {1}", realEstate.externalId, pres.message.ToMessage())) { Messages = pres }; } } }
/// <summary> /// Publishes a RealEstate object. /// </summary> /// <param name="realEstate">The RealEstate object.</param> public async Task PublishAsync(RealEstate realEstate) { var req = Connection.CreateRequest("publish"); req.AddParameter("realestate", realEstate.id); req.AddParameter("publishchannel", ImportExportClient.ImmobilienscoutPublishChannelId); var pos = await Connection.ExecuteAsync<publishObjects>(req, ""); if (pos.publishObject == null || !pos.publishObject.Any()) { req = Connection.CreateRequest("publish", Method.POST); var p = new PublishObject { publishChannel = new PublishChannel { id = ImportExportClient.ImmobilienscoutPublishChannelId, idSpecified = true }, realEstate = new PublishObjectRealEstate { id = realEstate.id, idSpecified = true } }; req.AddBody(p); var pres = await Connection.ExecuteAsync<messages>(req, ""); if (!pres.IsSuccessful(MessageCode.MESSAGE_RESOURCE_CREATED)) throw new IS24Exception(string.Format("Error publishing RealEstate {0}: {1}", realEstate.externalId, pres.message.ToMessage())) { Messages = pres }; } }
/// <summary> /// Creates a new <see cref="AttachmentResource"/> instance /// </summary> /// <param name="realEstate"></param> /// <param name="connection"></param> public AttachmentResource(RealEstate realEstate, IIS24Connection connection) { RealEstate = realEstate; Connection = connection; AttachmentsOrder = new AttachmentsOrderResource(realEstate, connection); }
/// <summary> /// Updates a RealEstate object. /// </summary> /// <param name="re">The RealEstate object.</param> public async Task UpdateAsync(RealEstate re) { var req = Connection.CreateRequest("realestate/{id}", Method.PUT); req.AddParameter("id", re.id, ParameterType.UrlSegment); req.AddBody(re); var messages = await Connection.ExecuteAsync<messages>(req); if (!messages.IsSuccessful()) { throw new IS24Exception(string.Format("Error updating RealEstate {0}: {1}", re.externalId, messages.message.ToMessage())) { Messages = messages }; } }