public string Resolve(CloudResource source, SandboxResourceLight destination, string destMember, ResolutionContext context)
        {
            if (source != null)
            {
                var shouldHaveRetryLink = false;

                var baseStatusOnThisOperation = ResourceStatusUtil.DecideWhatOperationToBaseStatusOn(source);

                if (baseStatusOnThisOperation == null)
                {
                    shouldHaveRetryLink = true;
                }
                else if (CloudResourceOperationUtil.HasValidStateForRetry(baseStatusOnThisOperation))
                {
                    shouldHaveRetryLink = true;
                }

                if (shouldHaveRetryLink)
                {
                    return(AzureResourceUtil.CreateResourceRetryLink(source.Id));
                }
            }

            return(null);
        }
        CloudResourceOperation FindOperationToRetry(CloudResource resource)
        {
            CloudResourceOperation lastOperation = null;

            foreach (var currentOperation in resource.Operations.OrderByDescending(o => o.Created))
            {
                if (CloudResourceOperationUtil.HasValidStateForRetry(currentOperation))
                {
                    lastOperation = currentOperation;
                }
                else if (currentOperation.Status == CloudResourceOperationState.DONE_SUCCESSFUL)
                {
                    return(lastOperation);
                }
            }

            return(lastOperation);
        }