public async Task <IHttpActionResult> ZumReponierenBereit([FromBody] AbbrechenParams p) { var access = ManagementControllerHelper.GetUserAccess(); AssertUserHasFeatureForOrderingType(p.OrderItemIds.ToArray(), access, ApplicationFeature.AuftragsuebersichtAuftraegeKannReponieren, null); await orderManagerClient.ZumReponierenBereit(ControllerHelper.GetCurrentUserId(), p.OrderItemIds); return(Content <object>(HttpStatusCode.NoContent, null)); }
public async Task <IHttpActionResult> AuftraegeAusleihen([FromBody] AuftraegeAusleihenParams p) { var access = ManagementControllerHelper.GetUserAccess(); if (!access.HasFeature(ApplicationFeature.AuftragsuebersichtAuftraegeKannAuftraegeAusleihen)) { return(StatusCode(HttpStatusCode.Forbidden)); } await orderManagerClient.AuftraegeAusleihen(ControllerHelper.GetCurrentUserId(), p.OrderItemIds); return(Content <object>(HttpStatusCode.NoContent, null)); }
public async Task <IHttpActionResult> Abbrechen([FromBody] AbbrechenParams p) { var access = ManagementControllerHelper.GetUserAccess(); AssertUserHasFeatureForOrderingType(p.OrderItemIds.ToArray(), access, ApplicationFeature.AuftragsuebersichtAuftraegeKannAbbrechen, ApplicationFeature.AuftragsuebersichtEinsichtsgesucheKannAbbrechen); await orderManagerClient.Abbrechen(ControllerHelper.GetCurrentUserId(), p.OrderItemIds, p.Abbruchgrund, p.BemerkungZumDossier, p.InterneBemerkung); return(Content <object>(HttpStatusCode.NoContent, null)); }
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 <IHttpActionResult> GetOrderingDetailItem(int id) { var access = ManagementControllerHelper.GetUserAccess(); if (!access.HasFeature(ApplicationFeature.AuftragsuebersichtAuftraegeView)) { return(StatusCode(HttpStatusCode.Forbidden)); } var item = await GetOrderingDetailItemInternal(id); return(Ok(item)); }
public async Task <IHttpActionResult> EinsichtsgesucheEntscheidGesuchHinterlegen([FromBody] EntscheidGesuchHinterlegenParams p) { var access = ManagementControllerHelper.GetUserAccess(); if (!access.HasFeature(ApplicationFeature.AuftragsuebersichtEinsichtsgesucheKannEntscheidGesuchHinterlegen)) { return(StatusCode(HttpStatusCode.Forbidden)); } await orderManagerClient.EntscheidGesuchHinterlegen(ControllerHelper.GetCurrentUserId(), p.OrderItemIds, p.Entscheid, p.DatumEntscheid, p.InterneBemerkung); return(Content <object>(HttpStatusCode.NoContent, null)); }
private List <DetailField> GetOrderingFieldsInternal(ModulFunktionsblock modulFunktionsblock) { var access = ManagementControllerHelper.GetUserAccess(); var retFields = new List <DetailField>(); var fields = typeof(OrderingFlatItem).GetProperties(); foreach (var field in fields) { var isReadonly = true; IEditRequiresFeatureAttribute attr; switch (modulFunktionsblock) { case ModulFunktionsblock.AuftragsuebersichAuftraege: attr = field.GetCustomAttributes(true).OfType <EditAuftragRequiresFeatureAttribute>().FirstOrDefault(); break; case ModulFunktionsblock.AuftragsuebersichEinsichtsgesuch: attr = field.GetCustomAttributes(true).OfType <EditEinsichtsgesuchRequiresFeatureAttribute>().FirstOrDefault(); break; default: throw new ArgumentOutOfRangeException(); } if (attr != null) { var features = attr.RequiredFeatures; if (features.Any(f => access.HasFeature(f))) { isReadonly = false; } } var name = field.Name; retFields.Add(new DetailField { Name = name, IsReadonly = isReadonly }); } return(retFields); }
public async Task <IHttpActionResult> GetAushebungsauftraegeHtml([FromUri] int[] orderItemIds) { var builder = new DataBuilder(bus); var access = ManagementControllerHelper.GetUserAccess(); access.AssertFeatureOrThrow(ApplicationFeature.AuftragsuebersichtAuftraegeKannAushebungsauftraegeDrucken); var expando = builder .AddUser(access.UserId) .AddAuftraege(orderItemIds) .Create(); var template = parameterHelper.GetSetting <AushebungsauftraegeTemplate>(); string html = mailHelper.TransformToHtml(template.HtmlTemplate, expando); await orderManagerClient.AushebungsauftraegeDrucken(access.UserId, orderItemIds.ToList()); return(Ok(html)); }
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)); }
public async Task <IHttpActionResult> NichtSichtbarEinsehen(int id) { var access = ManagementControllerHelper.GetUserAccess(); var detail = await GetOrderingDetailItemInternal(id, true); if (detail?.Item == null) { return(NotFound()); } // we need the ordering type of the result to check, what feature the user must have if (detail.Item.OrderingType == (int)OrderType.Einsichtsgesuch) { access.AssertFeatureOrThrow(ApplicationFeature.AuftragsuebersichtEinsichtsgesucheViewNichtSichtbar); } else { access.AssertFeatureOrThrow(ApplicationFeature.AuftragsuebersichtAuftraegeViewNichtSichtbar); } return(Ok(detail)); }
public IHttpActionResult GetVersandkontrolleHtml([FromUri] int[] orderItemIds) { try { var builder = new DataBuilder(bus); var access = ManagementControllerHelper.GetUserAccess(); access.AssertFeatureOrThrow(ApplicationFeature.AuftragsuebersichtAuftraegeVersandkontrolleAusfuehren); var expando = builder .AddUser(access.UserId) .AddBestellerMitAuftraegen(orderItemIds) .Create(); var template = parameterHelper.GetSetting <VersandkontrolleTemplate>(); string html = mailHelper.TransformToHtml(template.HtmlTemplate, expando); return(Ok(html)); } catch (Exception e) { Log.Error(e.ToString()); Console.WriteLine(e); throw; } }