public override async Task <Identity> CreateIdentityAsync(string name, string managedBy)
        {
            using (HttpClient httpClient = HttpClientHelper.GetHttpClient(this.ManagementUri))
            {
                var edgeletHttpClient = new EdgeletHttpClient(httpClient)
                {
                    BaseUrl = HttpClientHelper.GetBaseUrl(this.ManagementUri)
                };
                GeneratedCode.Identity identity = await this.Execute(
                    () => edgeletHttpClient.CreateIdentityAsync(
                        this.Version.Name,
                        new IdentitySpec
                {
                    ModuleId  = name,
                    ManagedBy = managedBy
                }),
                    $"Create identity for {name}");

                return(this.MapFromIdentity(identity));
            }
        }
        public override async Task <Identity> UpdateIdentityAsync(string name, string generationId, string managedBy)
        {
            using (HttpClient httpClient = HttpClientHelper.GetHttpClient(this.ManagementUri))
            {
                var edgeletHttpClient = new EdgeletHttpClient(httpClient)
                {
                    BaseUrl = HttpClientHelper.GetBaseUrl(this.ManagementUri)
                };
                GeneratedCode.Identity identity = await this.Execute(
                    () => edgeletHttpClient.UpdateIdentityAsync(
                        this.Version.Name,
                        name,
                        new UpdateIdentity
                {
                    GenerationId = generationId,
                    ManagedBy    = managedBy
                }),
                    $"Update identity for {name} with generation ID {generationId}");

                return(this.MapFromIdentity(identity));
            }
        }
 Identity MapFromIdentity(GeneratedCode.Identity identity)
 {
     return(new Identity(identity.ModuleId, identity.GenerationId, identity.ManagedBy));
 }