示例#1
0
        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);
        }
示例#2
0
 /// <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);
 }
示例#3
0
        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;
        }
示例#4
0
 /// <remarks/>
 public void GetRankQualificationsAsync(GetRankQualificationsRequest GetRankQualificationsRequest) {
     this.GetRankQualificationsAsync(GetRankQualificationsRequest, null);
 }
示例#5
0
        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;
        }