Merge pull request #5 from Espent1004/tenantManagerExpansion
Adding the customisationUrl to the tenantManager rather than hardcodi…
This commit is contained in:
commit
bbc84c6b1b
@ -279,7 +279,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
|
||||
return channel;
|
||||
}
|
||||
|
||||
private async void SendEventToTenant(String content, String id, String eventName)
|
||||
private async void SendEventToTenant(String content, String id, String eventName, String url)
|
||||
{
|
||||
var temp = new SavedEvent();
|
||||
temp.Content = content;
|
||||
@ -290,9 +290,8 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
|
||||
{
|
||||
try
|
||||
{
|
||||
//TODO replace URL with response from tenantmanager
|
||||
var response = await client.PostAsync(
|
||||
tenantACustomisationUrl + "api/SavedEvents",
|
||||
url,
|
||||
new StringContent(myJson, Encoding.UTF8, "application/json"));
|
||||
response.EnsureSuccessStatusCode();
|
||||
_logger.LogInformation("----- Event sent to tenant{@id} -----", id);
|
||||
@ -305,12 +304,12 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<Boolean> IsEventCustomised(String eventName, int tenantId)
|
||||
private async Task<String> GetCustomisation(String eventName, int tenantId)
|
||||
{
|
||||
CustomisationInfo customisationInfo = new CustomisationInfo();
|
||||
customisationInfo.EventName = eventName;
|
||||
customisationInfo.TenantId = tenantId;
|
||||
Boolean isCustomised = false;
|
||||
String customisationUrl = null;
|
||||
|
||||
var builder = new UriBuilder(tenantManagerUrl + "api/Customisations/IsCustomised");
|
||||
builder.Port = -1;
|
||||
@ -327,8 +326,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
|
||||
var response = await client.GetAsync(
|
||||
url);
|
||||
response.EnsureSuccessStatusCode();
|
||||
isCustomised =
|
||||
JsonConvert.DeserializeObject<Boolean>(response.Content.ReadAsStringAsync().Result);
|
||||
customisationUrl = response.Content.ReadAsStringAsync().Result;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@ -336,7 +334,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
|
||||
}
|
||||
}
|
||||
|
||||
return isCustomised;
|
||||
return customisationUrl;
|
||||
}
|
||||
|
||||
private async Task ProcessEvent(string eventName, string message)
|
||||
@ -369,14 +367,13 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
|
||||
var eventType = _subsManager.GetEventTypeByName(eventName);
|
||||
var integrationEvent = JsonConvert.DeserializeObject(message, eventType);
|
||||
IntegrationEvent evt = (IntegrationEvent) integrationEvent;
|
||||
if (IsEventCustomised(eventName, evt.TenantId).Result) //TODO fix tenantId part of request
|
||||
var customisationUrl = GetCustomisation(eventName, evt.TenantId).Result;
|
||||
if (evt.CheckForCustomisation && !String.IsNullOrEmpty(customisationUrl))
|
||||
{
|
||||
//Checking if event should be sent to tenant, or handled normally
|
||||
if (evt.CheckForCustomisation && evt.TenantId == 1)//TODO use tenantId to choose the correct endpoint to send the event to
|
||||
{
|
||||
SendEventToTenant(message, evt.Id.ToString(), eventName);
|
||||
break;
|
||||
}
|
||||
SendEventToTenant(message, evt.Id.ToString(), eventName,
|
||||
customisationUrl);
|
||||
break;
|
||||
}
|
||||
|
||||
var concreteType = typeof(IIntegrationEventHandler<>).MakeGenericType(eventType);
|
||||
|
@ -44,16 +44,16 @@ namespace TenantManager.Controllers
|
||||
|
||||
// GET: api/Customisations/5
|
||||
[HttpGet("isCustomised")]
|
||||
public async Task<ActionResult<Boolean>> IsCustomised(String eventName, int tenantId)
|
||||
public async Task<ActionResult<string>> IsCustomised(String eventName, int tenantId)
|
||||
{
|
||||
var customisation = await _context.Customisation.Include(c => c.Method).Include(c => c.Tenant).Where(c => c.Method.MethodName.Equals(eventName) && c.TenantId == tenantId).FirstOrDefaultAsync();
|
||||
|
||||
if (customisation == null)
|
||||
{
|
||||
return false;
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
return true;
|
||||
return customisation.CustomisationUrl;
|
||||
}
|
||||
|
||||
// PUT: api/Customisations/5
|
||||
|
@ -33,8 +33,8 @@ namespace TenantManager.Database
|
||||
|
||||
var customisations = new[]
|
||||
{
|
||||
new Customisation {Tenant=tenant1, Method=method1 },
|
||||
new Customisation {Tenant=tenant1, Method=method2}
|
||||
new Customisation {Tenant=tenant1, Method=method1, CustomisationUrl = @"http://tenantacustomisation/api/savedevents"},
|
||||
new Customisation {Tenant=tenant1, Method=method2, CustomisationUrl = @"http://tenantacustomisation/api/savedevents"}
|
||||
};
|
||||
|
||||
foreach(Customisation c in customisations)
|
||||
|
@ -9,6 +9,7 @@ namespace TenantManager.Models
|
||||
public class Customisation
|
||||
{
|
||||
public int CustomisationId { get; set; }
|
||||
public String CustomisationUrl { get; set; }
|
||||
|
||||
//Foreign keys
|
||||
public int TenantId { get; set; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user