public IStorageUser AddUser(string name, string token, GeoIp geo_ip, string id = null) { IStorageUser user = new IStorageUser() { Id = string.IsNullOrEmpty(id) ? Guid.NewGuid() : id.UrnToGuid(), Token = token, UserName = name, Devices = new List <Guid>() }; TableOperation insertOperation = TableOperation.Insert(AzureStorage.CreateUserTableEntity(user)); TableResult result; try { result = this.UsersTable.Execute(insertOperation); Log.WriteTableSuccess(string.Format("Added user entity: {0}, Id: {1}, Token {2}.", user.UserName, user.Id.ToUrn(), user.Token)); return(user); } catch (Exception e) { Log.WriteTableFailure(string.Format("Failed to add user entity: {0}, Id: {1}, Token {2}.", user.UserName, user.Id.ToUrn(), user.Token), e); throw; } finally { OverlordIdentity.DeleteClaim(Resource.Storage, StorageAction.AddUser); } }