コード例 #1
0
        public async Task <IHttpActionResult> GetKontingent(string forUserId = "")
        {
            var access = GetCurrentUserAccess();
            var role   = access.RolePublicClient.GetRolePublicClientEnum();

            User user;

            if (!string.IsNullOrWhiteSpace(forUserId) && role == AccessRolesEnum.BAR)
            // BAR User bestellt im Namen eines anderen Benutzer, Kontingent für Empfänger zurückgeben
            {
                user = userDataAccess.GetUser(forUserId);
            }
            else
            {
                user = userDataAccess.GetUser(access.UserId);
            }

            if (user == null)
            {
                return(Content(HttpStatusCode.NotFound, $"User with id {forUserId} not found"));
            }

            var bestimmer     = new KontingentBestimmer(digitalisierungsbeschraenkungSettings);
            var userOrderings = await client.GetOrderings(user.Id);

            var result = bestimmer.BestimmeKontingent(userOrderings, role, user);

            return(Ok(result));
        }