예제 #1
0
        private void PrintOSImageDetailsContext(OSImageDetailsContext context)
        {
            PrintContext <OSImageContext>(context);
            foreach (var repro in context.ReplicationProgress)
            {
                Console.WriteLine("ReplicationProgress: {0}", repro.ToString());
            }
            if (context.ReplicationProgress.Count == 0)
            {
                Console.WriteLine("There is no replication!");
            }

            Console.WriteLine("IsCorrupted {0}", context.IsCorrupted);
        }
        protected override void OnProcessRecord()
        {
            Func<Operation, OSImageDetails, object> func = (operation, imageDetails) =>
            {
                OSImageDetailsContext osImageDetailsContext = null;

                if (imageDetails != null)
                {
                    osImageDetailsContext = new OSImageDetailsContext
                    {
                        OperationId = operation.OperationTrackingId,
                        OperationDescription = CommandRuntime.ToString(),
                        OperationStatus = operation.Status,
                        AffinityGroup = imageDetails.AffinityGroup,
                        Category = imageDetails.Category,
                        Label = imageDetails.Label,
                        Location = imageDetails.Location,
                        MediaLink = imageDetails.MediaLink,
                        ImageName = imageDetails.Name,
                        OS = imageDetails.OS,
                        LogicalSizeInGB = imageDetails.LogicalSizeInGB,
                        Eula = imageDetails.Eula,
                        Description = imageDetails.Description,
                        IconUri = imageDetails.IconUri,
                        ImageFamily = imageDetails.ImageFamily,
                        IsPremium = imageDetails.IsPremium,
                        PrivacyUri = imageDetails.PrivacyUri,
                        PublishedDate = imageDetails.PublishedDate,
                        RecommendedVMSize = imageDetails.RecommendedVMSize,
                        IsCorrupted = imageDetails.IsCorrupted,
                        ReplicationProgress = imageDetails.ReplicationProgress.Select(
                                                      detail => new ReplicationProgressContext
                                                      {
                                                          Location = detail.Location,
                                                          Progress = detail.Progress
                                                      }).ToList()
                    };
                }

                return osImageDetailsContext;
            };

            ExecuteClientActionInOCS(
                null,
                CommandRuntime.ToString(),
                s => this.Channel.GetOSImageWithDetails(s, this.ImageName),
                func);
        }
        protected override void OnProcessRecord()
        {
            Func <Operation, OSImageDetails, object> func = (operation, imageDetails) =>
            {
                OSImageDetailsContext osImageDetailsContext = null;

                if (imageDetails != null)
                {
                    osImageDetailsContext = new OSImageDetailsContext
                    {
                        OperationId          = operation.OperationTrackingId,
                        OperationDescription = CommandRuntime.ToString(),
                        OperationStatus      = operation.Status,
                        AffinityGroup        = imageDetails.AffinityGroup,
                        Category             = imageDetails.Category,
                        Label               = imageDetails.Label,
                        Location            = imageDetails.Location,
                        MediaLink           = imageDetails.MediaLink,
                        ImageName           = imageDetails.Name,
                        OS                  = imageDetails.OS,
                        LogicalSizeInGB     = imageDetails.LogicalSizeInGB,
                        Eula                = imageDetails.Eula,
                        Description         = imageDetails.Description,
                        IconUri             = imageDetails.IconUri,
                        ImageFamily         = imageDetails.ImageFamily,
                        IsPremium           = imageDetails.IsPremium,
                        PrivacyUri          = imageDetails.PrivacyUri,
                        PublishedDate       = imageDetails.PublishedDate,
                        RecommendedVMSize   = imageDetails.RecommendedVMSize,
                        IsCorrupted         = imageDetails.IsCorrupted,
                        ReplicationProgress = imageDetails.ReplicationProgress.Select(
                            detail => new ReplicationProgressContext
                        {
                            Location = detail.Location,
                            Progress = detail.Progress
                        }).ToList()
                    };
                }

                return(osImageDetailsContext);
            };

            ExecuteClientActionInOCS(
                null,
                CommandRuntime.ToString(),
                s => this.Channel.GetOSImageWithDetails(s, this.ImageName),
                func);
        }