public void Run() { var eventHubInterface = typeof(IEventHub); var eventHubInfo = new EventHubInfo(eventHubInterface); var sb = new StringBuilder(); sb.Append(BaseTemplate); foreach (var eventHub in eventHubInfo.EventHubs) { foreach (var @event in eventHub.Events) { sb.AppendLine($"export interface {@event.ClassName} {{"); foreach (var parameter in @event.Parameters) { sb.AppendLine($" {parameter.Name}: {parameter.TypescriptType};"); } sb.AppendLine("}"); sb.AppendLine(""); } sb.AppendLine("@Injectable({"); sb.AppendLine(" providedIn: 'root'"); sb.AppendLine("})"); sb.AppendLine($"export class {eventHub.ClassName}Service {{"); foreach (var @event in eventHub.Events) { sb.AppendLine($" private {@event.EventName.ToCamelCase()} = new Subject<{@event.ClassName}>();"); } sb.AppendLine(""); foreach (var @event in eventHub.Events) { sb.AppendLine($" public {@event.EventName.ToCamelCase()}$ = this.{@event.EventName.ToCamelCase()}.asObservable();"); } sb.AppendLine(""); sb.AppendLine(" constructor(private signalRService: SignalRService) {"); foreach (var @event in eventHub.Events) { sb.AppendLine(@$ " this.signalRService.hubConnection.on('{@event.EventName}', ({string.Join(", ", @event.Parameters.Select(x => string.Concat(x.Name, " : ", x.TypescriptType)))}) =>"); sb.AppendLine(@$ " this.{@event.EventName.ToCamelCase()}.next({{ {string.Join(", ", @event.Parameters.Select(x => x.Name))} }})"); sb.AppendLine(" );"); } sb.AppendLine(" }"); sb.AppendLine("}"); sb.AppendLine(""); } File.WriteAllText(Path.Combine(_appSettings.TargetDirectory, Constants.TargetFileName), sb.ToString()); Console.WriteLine("Done."); }
async static Task MainEx(string[] args) { var MAX_LIMIT = 200; var eventHubInfo = new EventHubInfo { EventHubConnectionString = Environment.GetEnvironmentVariable("EHConnectionString"), EventHubPath = Environment.GetEnvironmentVariable("EHPath"), NoOfMessages = MAX_LIMIT }; var submitter = new SensorReadingDataSubmitter(); var status = await submitter.Submit(eventHubInfo); Console.WriteLine("Submission Status : " + status); Console.WriteLine("Event Messages have been submitted successfully!"); }
public async Task <IActionResult> Submit([FromBody] EventHubInfo eventHubInfo) { var validation = eventHubInfo != default(EventHubInfo) && !string.IsNullOrEmpty(eventHubInfo.EventHubConnectionString) && !string.IsNullOrEmpty(eventHubInfo.EventHubPath) && eventHubInfo.NoOfMessages <= MAX_LIMIT; if (!validation) { return(BadRequest()); } var status = await this.sensorReadingDataSubmitter.Submit(eventHubInfo); if (!status) { return(BadRequest()); } return(Ok()); }
public async Task <bool> Submit(EventHubInfo eventHubInfo) { var status = default(bool); try { if (eventHubInfo == default(EventHubInfo)) { throw new ArgumentNullException(nameof(eventHubInfo)); } var sensorReadings = faker.Generate(eventHubInfo.NoOfMessages); var ehConnectionStringBuilder = new EventHubsConnectionStringBuilder(eventHubInfo.EventHubConnectionString) { EntityPath = eventHubInfo.EventHubPath }; var eventHubClient = EventHubClient.CreateFromConnectionString(ehConnectionStringBuilder.ToString()); foreach (var reading in sensorReadings) { var jsonString = JsonConvert.SerializeObject(reading); var eventDataBytes = Encoding.ASCII.GetBytes(jsonString); var eventData = new EventData(eventDataBytes); await eventHubClient.SendAsync(eventData); Console.Write("."); } status = true; } catch { status = false; } return(status); }