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)); }