public RmResource FindById(string id, AttributesToFetch attributes = null) { Initialize(); attributes = attributes ?? AttributesToFetch.All; var ctx = LogContext.WithConfigFormat(); _log.Debug(ctx.Format("Finding object by id {0} with attributes {1}"), id, attributes.GetNames().ToJSON()); RmResource resource = null; try { var reference = new RmReference(id); if (attributes != AttributesToFetch.All) { attributes = attributes.AppendAttribute(RmResource.AttributeNames.ObjectType.Name); } resource = _defaultClient.Get(reference, attributes.GetNames()); _log.Debug(ctx.Format("Found object with id {0}, type {1}"), id, resource.ObjectType); } catch { // catching exc - meaning that object not found _log.Warn(ctx.Format("Object with id {0} not found"), id); } return(resource); }
protected override void InitializeAuthenticationGate(IServiceProvider provider) { sentSMS = false; // When the activity is first loaded, we're going to try to retrieve the user info from the registration data if (this.AuthenticationGateActivity.RegistrationData == null || string.IsNullOrEmpty(this.userCellPhone = UnicodeEncoding.Unicode.GetString(this.AuthenticationGateActivity.RegistrationData))) { //Looks like our cell phone data was not stored in registration data //Default to FIM store using (ServiceSecurityContext.Current.WindowsIdentity.Impersonate()) { using (DefaultClient client = new DefaultClient()) { client.RefreshSchema(); SequentialWorkflow containingSequentialWorkflow = null; SequentialWorkflow.TryGetContainingWorkflow(this.AuthenticationGateActivity, out containingSequentialWorkflow); Guid targetUser; if (containingSequentialWorkflow.ActorId == CellOTPGate.AnonymousID) { targetUser = containingSequentialWorkflow.TargetId; } else { targetUser = containingSequentialWorkflow.ActorId; } RmPerson person = client.Get(new Microsoft.ResourceManagement.ObjectModel.RmReference(targetUser.ToString())) as RmPerson; this.userCellPhone = person.MobilePhone; } } } base.InitializeAuthenticationGate(provider); }