in src/PowerShell/Commands/GetPartnerProductAvailability.cs [57:97]
public override void ExecuteCmdlet()
{
Scheduler.RunTask(async () =>
{
IPartner partner = await PartnerSession.Instance.ClientFactory.CreatePartnerOperationsAsync(CorrelationId, CancellationToken).ConfigureAwait(false);
string countryCode = (string.IsNullOrEmpty(CountryCode)) ? PartnerSession.Instance.Context.CountryCode : CountryCode;
if (string.IsNullOrEmpty(AvailabilityId))
{
ResourceCollection<Availability> productAvailability;
if (!string.IsNullOrEmpty(Segment))
{
productAvailability = await partner.Products.ByCountry(countryCode).ById(ProductId).Skus.ById(SkuId).Availabilities.ByTargetSegment(Segment).GetAsync(CancellationToken).ConfigureAwait(false);
if (productAvailability.TotalCount > 0)
{
WriteObject(productAvailability.Items.Select(pa => new PSProductAvailability(pa)), true);
}
}
else
{
productAvailability = await partner.Products.ByCountry(countryCode).ById(ProductId).Skus.ById(SkuId).Availabilities.GetAsync(CancellationToken).ConfigureAwait(false);
if (productAvailability.TotalCount > 0)
{
WriteObject(productAvailability.Items.Select(pa => new PSProductAvailability(pa)), true);
}
}
}
else if (!string.IsNullOrEmpty(AvailabilityId))
{
Availability availability = await partner.Products.ByCountry(countryCode).ById(ProductId).Skus.ById(SkuId).Availabilities.ById(AvailabilityId).GetAsync(CancellationToken).ConfigureAwait(false);
WriteObject(availability);
}
else
{
throw new PSInvalidOperationException("You must specify a ProductId or Catalog.");
}
}, true);
}