public async Task <IHttpActionResult> EinsichtsgesucheInVorlageExportieren([FromBody] InVorlageExportierenParams p) { var access = ManagementControllerHelper.GetUserAccess(); if (!access.HasFeature(ApplicationFeature.AuftragsuebersichtEinsichtsgesucheInVorlageExportieren)) { return(StatusCode(HttpStatusCode.Forbidden)); } await orderManagerClient.InVorlageExportieren(ControllerHelper.GetCurrentUserId(), p.OrderItemIds, p.Vorlage, p.Sprache); return(Content <object>(HttpStatusCode.NoContent, null)); }
public async Task Consume(ConsumeContext <InVorlageExportierenRequest> 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); string userId = null; foreach (var id in context.Message.OrderItemIds) { var item = await orderDataAccess.GetOrderItem(id); if (item == null) { throw new Exception("Invalid OrderItem: " + id); } var order = await orderDataAccess.GetOrdering(item.OrderId, false); if (string.IsNullOrEmpty(userId)) { userId = order?.UserId; } else { if (userId != order?.UserId) // Der Gesuchsteller wird im Mail angezeigt und mehrere werden nicht unterstützt { throw new BadRequestException("Es dürfen nur Gesuche vom gleichen Gesuchsteller verarbeitet werden"); } } } var m = context.Message; await manager.InVorlageExportieren(m.CurrentUserId, m.OrderItemIds, m.Vorlage, m.Sprache); await context.RespondAsync(new InVorlageExportierenResponse()); } }