/** * Refreshes the specified item * */ public void refreshAll(UserContext userContext) { System.Console.WriteLine("Attempting to start refresh"); try { Entry[] refreshStatus = refresh.startRefresh2(userContext, REFRESH_PRIORITY_HIGH, true); for (int i = 0; i < refreshStatus.Length; i++) { Entry status = refreshStatus[i]; long itemId = (long)status.key; RefreshItem ri = new RefreshItem(); String mfaTypeId = ri.getMFATypeId(userContext, itemId); if (mfaTypeId != null) { MFARefreshInfo mfaInfo = refresh.getMFAResponse(userContext, itemId, true); MFA mfa = new MFA(); long errorCode = mfa.processMFA(userContext, mfaInfo, itemId); if (errorCode == 0) { System.Console.WriteLine("MFA Account has been added successfully"); } else { System.Console.WriteLine("Error while adding this account with an error code " + errorCode); } } RefreshStatus refStatus = (RefreshStatus)status.value; if (refStatus.Equals(RefreshStatus.SUCCESS_START_REFRESH)) { System.Console.WriteLine("\tStarted refresh for " + itemId); } else if (refStatus.Equals(RefreshStatus.REFRESH_ALREADY_IN_PROGRESS)) { System.Console.WriteLine("\tThe refresh is already in progress for " + itemId); } else if (refStatus.Equals(RefreshStatus.ALREADY_REFRESHED_RECENTLY)) { System.Console.WriteLine("\tItem " + itemId + " has been refreshed very recently. Please try again later."); } else if (refStatus.Equals(RefreshStatus.ITEM_CANNOT_BE_REFRESHED)) { System.Console.WriteLine("The refresh on item " + itemId + " is not permitted."); } else { System.Console.WriteLine("Unbale to refresh the item " + itemId + "\nRefreshStatus:" + status); } } } catch (SoapException se) { System.Console.WriteLine("The given item is invalid\nException:\n" + se.ToString()); } }
/** * Refreshes the specified item * */ public void refreshItem(UserContext userContext, long?itemId, bool isMFA) { System.Console.WriteLine("Attempting to start refresh"); // bool startRefresh4ReturnSpecified = true; try { int REFRESH_PRIORITY_HIGH = 1; RefreshParameters refreshParameters = new RefreshParameters(); RefreshMode refreshMode; if (isMFA) { refreshMode = RefreshMode.MFA_REFRESH_MODE; } else { refreshMode = RefreshMode.NORMAL_REFRESH_MODE; } refreshParameters.refreshMode = refreshMode; refreshParameters.refreshModeSpecified = true; refreshParameters.refreshPriority = REFRESH_PRIORITY_HIGH; refreshParameters.refreshPrioritySpecified = true; refreshParameters.forceRefresh = false; bool itemIdspecified = true; bool startRefresh7ReturnSpecified; RefreshStatus?status; refresh.startRefresh7(userContext, itemId, itemIdspecified, refreshParameters, out status, out startRefresh7ReturnSpecified); if (status.ToString().Equals(RefreshStatus.SUCCESS_START_REFRESH.ToString())) { System.Console.WriteLine("\tStarted refresh"); } else if (status.ToString().Equals(RefreshStatus.REFRESH_ALREADY_IN_PROGRESS.ToString())) { System.Console.WriteLine("\tThe refresh is already in progress"); } else if (status.ToString().Equals(RefreshStatus.ALREADY_REFRESHED_RECENTLY.ToString())) { throw new Exception("The item has been refreshed very recently. Please try again later."); } else if (status.ToString().Equals(RefreshStatus.ITEM_CANNOT_BE_REFRESHED.ToString())) { throw new Exception("The refresh on this item is not permitted."); } else { throw new Exception("Unbale to refresh the item\nRefreshStatus:" + status); } if (isMFA) { //We might need delay here to give few seconds for the message to be posted since this is a console based. //In an application, it might not be required. Thread.Sleep(MFA_QUEUE_WAIT_TIME_MILLIS); MFARefreshInfo mfaInfo = refresh.getMFAResponse(userContext, itemId, true); MFA mfa = new MFA(); long errorCode = mfa.processMFA(userContext, mfaInfo, itemId); if (errorCode == 0) { System.Console.WriteLine("MFA Account has been added successfully"); } else if (errorCode > 0) { System.Console.WriteLine("Error while adding this account with an error code " + errorCode); } else { System.Console.WriteLine("Error while adding this account"); } } } catch (SoapException se) { System.Console.WriteLine("The given item is invalid\nException:\n" + se.ToString()); } }