public async Task Consume(ConsumeContext <DigitalisierungAusloesenRequest> context) { using (LogContext.PushProperty(nameof(context.ConversationId), context.ConversationId)) { Log.Information("Received {CommandName} command with conversationId {ConversationId} from the bus", context.Message.GetType().Name, context.ConversationId); await manager.DigitalisierungAusloesen(context.Message.CurrentUserId, context.Message.Snapshots, context.Message.ArtDerArbeit); await context.RespondAsync(new DigitalisierungAusloesenResponse()); } }
public async Task <IHttpActionResult> DigitalisierungAusloesen([FromBody] DigitalisierungAusloesenParams p) { var access = ManagementControllerHelper.GetUserAccess(); if (!access.HasFeature(ApplicationFeature.AuftragsuebersichtEinsichtsgesucheDigitalisierungAusloesenAusfuehren)) { return(StatusCode(HttpStatusCode.Forbidden)); } var items = GetItemsToCheck(p.OrderItemIds.ToArray()); if (!HasEinsichtsgesuche(items)) { return(BadRequest("Funktion ist nur für Einsichtsgesuche gestattet")); } var snapshots = new List <OrderingIndexSnapshot>(); foreach (var item in items) { if (!item.VeId.HasValue) { return(BadRequest("Formularbestellungen sind in dieser Funktion nicht zulässig")); } var elasticItem = await GetElasticArchiveRecord(item.VeId.Value.ToString()); if (elasticItem == null) { throw new Exception($"Ve with ID {item.VeId.Value} not found"); } var snapshot = OrderHelper.GetOrderingIndexSnapshot(elasticItem); snapshots.Add(snapshot); } var statusUebergangSettings = parameterHelper.GetSetting <StatusUebergangSettings>(); await orderManagerClient.DigitalisierungAusloesen(access.UserId, snapshots.ToArray(), statusUebergangSettings.ArtDerArbeitIdFuerDigitalisierungAusloesen); return(StatusCode(HttpStatusCode.NoContent)); }