private async Task <CreateSubscriptionResponseDto> CreateSubscriptionAsync(CreateSubscriptionRequestDto request, string userId, string subscriptionId = null) { subscriptionId ??= Guid.NewGuid().ToString(); var subscription = new Subscription { Id = Guid.NewGuid().ToString(), CreatedOn = DateTime.Now, SubscriptionId = subscriptionId, UserId = userId, Email = request.Email, Details = request.Details.Select(x => new SubscriptionDetail { Catalogue = x.Catalogue, Key = x.Key, Operator = x.Operator, Value = x.Value }) }; var id = await _subscriptionRepository.CreateAsync(subscription); _cacheProvider.AddOrUpdateItem(subscriptionId, subscription); return(new CreateSubscriptionResponseDto { SubscriptionId = subscriptionId }); }