public static GetCustomerRankQualificationsResponse GetCustomerRankQualifications(GetCustomerRankQualificationsRequest request) { // Get the rank qualifications from the API var apiResponse = new GetRankQualificationsResponse(); try { var apiRequest = new GetRankQualificationsRequest { CustomerID = request.CustomerID, PeriodType = request.PeriodTypeID }; if (request.RankID != null) { apiRequest.RankID = (int)request.RankID; } apiResponse = Exigo.WebService().GetRankQualifications(apiRequest); } catch (Exception ex) { return(new GetCustomerRankQualificationsResponse() { IsUnavailable = ex.Message.ToUpper() == "UNAVAILABLE", ErrorMessage = ex.Message }); } // Create the response var response = new GetCustomerRankQualificationsResponse() { TotalPercentComplete = apiResponse.Score, IsQualified = (apiResponse.Qualifies || (apiResponse.QualifiesOverride != null && ((bool)apiResponse.QualifiesOverride) == true)), Rank = new Rank() { RankID = apiResponse.RankID, RankDescription = apiResponse.RankDescription } }; if (apiResponse.BackRankID != null) { response.PreviousRank = new Rank() { RankID = (int)apiResponse.BackRankID, RankDescription = apiResponse.BackRankDescription }; } if (apiResponse.NextRankID != null) { response.NextRank = new Rank() { RankID = (int)apiResponse.NextRankID, RankDescription = apiResponse.NextRankDescription }; } // Loop through each leg and create our responses var legs = new List <RankQualificationLeg>(); foreach (var qualificationLeg in apiResponse.PayeeQualificationLegs) { var leg = new RankQualificationLeg(); // Assemble the requirements var results = new List <RankRequirement>(); foreach (var definition in Definitions) { var requirement = GetRequirement(qualificationLeg, definition); if (requirement != null) { requirement.RequirementDescription = GlobalUtilities.MergeFields(requirement.RequirementDescription, requirement, "UNABLE TO MERGE FIELDS"); requirement.QualifiedDescription = GlobalUtilities.MergeFields(requirement.QualifiedDescription, requirement, "UNABLE TO MERGE FIELDS"); requirement.NotQualifiedDescription = GlobalUtilities.MergeFields(requirement.NotQualifiedDescription, requirement, "UNABLE TO MERGE FIELDS"); results.Add(requirement); } } // Clean up nulls results.RemoveAll(c => string.IsNullOrEmpty(c.RequiredValue)); leg.Requirements = results; legs.Add(leg); } response.QualificationLegs = legs; return(response); }
/// <remarks/> public void GetRankQualificationsAsync(GetRankQualificationsRequest GetRankQualificationsRequest, object userState) { if ((this.GetRankQualificationsOperationCompleted == null)) { this.GetRankQualificationsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRankQualificationsOperationCompleted); } this.InvokeAsync("GetRankQualifications", new object[] { GetRankQualificationsRequest}, this.GetRankQualificationsOperationCompleted, userState); }
public List<GetRankQualificationsResponse> GetAllRankQualifications(int toCustomerID, int periodType, int periodID) { List<GetRankQualificationsResponse> responses = new List<GetRankQualificationsResponse>(); List<int> ranks = new List<int>(); var context = ExigoApiContext.CreateODataContext(); var rankQuery = from r in context.Ranks select r; if (rankQuery.Count() > 0) { foreach (var r in rankQuery) { ranks.Add(r.RankID); } } foreach (int r in ranks) { GetRankQualificationsRequest req = new GetRankQualificationsRequest() { CustomerID = toCustomerID, PeriodType = periodType, PeriodID = periodID, RankID = r }; var context2 = ExigoApiContext.CreateWebServiceContext(); GetRankQualificationsResponse res = context2.GetRankQualifications(req); responses.Add(res); } return responses; }
/// <remarks/> public void GetRankQualificationsAsync(GetRankQualificationsRequest GetRankQualificationsRequest) { this.GetRankQualificationsAsync(GetRankQualificationsRequest, null); }
public GetRankQualificationsResponse GetRankQualifications(int toCustomerID, int rankID, int periodType, int periodID) { GetRankQualificationsRequest req = new GetRankQualificationsRequest() { CustomerID = toCustomerID, RankID = rankID, PeriodType = periodType, PeriodID = periodID }; var context = ExigoApiContext.CreateWebServiceContext(); GetRankQualificationsResponse res = context.GetRankQualifications(req); return res; }