//[AuthorizeRbac("accounts:read")] public async Task <IActionResult> GetSubscription(int accountId, int subscriptionId, [FromBody] UpdateSubscriptionDto subscriptionDto) { return(Ok(await _updateSubscription.UpdateSubscriptionAsync(accountId, subscriptionId, subscriptionDto))); }
public virtual async Task <SubscriptionDto> UpdateSubscriptionAsync(int accountId, int subscriptionId, UpdateSubscriptionDto subscriptionDto) { var validationErrors = new List <ValidationResult>(); Utils.ValidateDto(subscriptionDto, validationErrors); try { var subscription = await Utils.GetSubscriptionAsync(_db, accountId, subscriptionId); subscription.Name = !string.IsNullOrEmpty(subscriptionDto.SubscriptionName) ? subscriptionDto.SubscriptionName : subscription.Name; subscription.Description = !string.IsNullOrEmpty(subscriptionDto.Description) ? subscriptionDto.Description : subscription.Description; subscription.Tags = subscriptionDto.Tags != null ? JsonConvert.SerializeObject(subscriptionDto.Tags) : subscription.Description; subscription.OrganizationalUnit = !string.IsNullOrEmpty(subscriptionDto.OrganizationalUnit) ? subscriptionDto.OrganizationalUnit : subscription.OrganizationalUnit; _db.Entry(subscription).State = EntityState.Modified; await _db.SaveChangesAsync(); return(_mapper.Map <SubscriptionDto>(subscription)); } catch (DbException e) { throw new PersistenceException($"An error occurred while reading an IdentityProvider ({nameof(accountId)} = {accountId}, {nameof(subscriptionId)} = {subscriptionId}, {nameof(subscriptionDto)} = {JsonConvert.SerializeObject(subscriptionDto)})", e); } }