Esempio n. 1
0
        //Following is placeholder code
        public ApiResponse <Operator, ApiData> GetOperator()
        {
            var respVm = AuthIntegration.GetOperator();

            var apiResp = new ApiResponse <Operator, ApiData>
            {
                BusinessMetadata = MapperHelper.SetResponseProperties(null, DataSource.Operator),
                ResponseData     = respVm
            };

            return(apiResp);
        }
Esempio n. 2
0
        public void ExceedsTransactionalLimit(SessionType tranType, decimal tranAmount)
        {
            if (tranAmount == 0m)
            {
                return;
            }

            var  transactionalLimits = AuthIntegration.GetTransactionalLimits();
            bool exceedsTransactionalLimit;

            switch (tranType)
            {
            case SessionType.SEND:
                exceedsTransactionalLimit = transactionalLimits.MaxSendAmount != null && tranAmount > transactionalLimits.MaxSendAmount;
                break;

            case SessionType.RCV:
                exceedsTransactionalLimit = transactionalLimits.MaxReceiveAmount != null && tranAmount > transactionalLimits.MaxReceiveAmount;
                break;

            case SessionType.BP:
                exceedsTransactionalLimit = transactionalLimits.MaxBillPayAmount != null && tranAmount > transactionalLimits.MaxBillPayAmount;
                break;

            case SessionType.SREV:
                exceedsTransactionalLimit = transactionalLimits.MaxSendCancellationAmount != null && tranAmount > transactionalLimits.MaxSendCancellationAmount;
                break;

            case SessionType.RREV:
                exceedsTransactionalLimit = transactionalLimits.MaxReceiveCancellationAmount != null && tranAmount > transactionalLimits.MaxReceiveCancellationAmount;
                break;

            case SessionType.AMD:
                exceedsTransactionalLimit = transactionalLimits.MaxAmendAmount != null && tranAmount > transactionalLimits.MaxAmendAmount;
                break;

            default:
                exceedsTransactionalLimit = false;
                break;
            }

            if (exceedsTransactionalLimit)
            {
                throw new TransactionalLimitsException();
            }
        }
        public static ReportResponse <T> Create <T>(ReportType reportType, ReportRequest reportRequest)
        {
            var agentId    = reportRequest.Locations?.First();
            var agentName  = AuthIntegration.GetAgentName();
            var reportName = reportType == ReportType.DailyTranDetail ? ReportConstants.Common.DETAIL_REPORT_NAME : ReportConstants.Common.SUMMARY_REPORT_NAME;

            return(new ReportResponse <T>
            {
                Name = reportName,
                ReportDateTime = DateTime.UtcNow,
                Metadata = new ReportMetadata
                {
                    ActivityDate = DateTime.Parse(reportRequest.StartDate),
                    AgentId = agentId,
                    AgentName = agentName
                }
            });
        }
Esempio n. 4
0
        public AcApiResponse <SendValidationResponse, ReceiptsApiData> SendValidation(SendValidationRequest req)
        {
            //Create request business object for agent connect service call
            req.PrimaryReceiptLanguage   = AuthIntegration.GetAgentPrimaryReceiptLanguage();
            req.SecondaryReceiptLanguage = AuthIntegration.GetAgentSecondaryReceiptLanguage();

            // AgentConnect sendValidation call for SEND
            var resp = _agentConnectIntegration.SendValidation(req);

            // Process Receipt
            var additionalData = ReceiptHelper.GenerateAdditionalDataReceipts(resp.Payload?.Receipts, _receiptIntegration);

            // Return Response View Model
            var apiResp = new AcApiResponse <SendValidationResponse, ReceiptsApiData>
            {
                BusinessMetadata = MapperHelper.SetResponseProperties(resp.Payload?.Flags, DataSource.AgentConnect),
                ResponseData     = resp,
                AdditionalData   = additionalData
            };

            return(apiResp);
        }
Esempio n. 5
0
        public DwRegisterDeviceRespVm DwRegisterDevice(DwRegisterDeviceReqVm registerDeviceReqVm)
        {
            var dwInitialreq = new DwInitialSetupRequest
            {
                DeviceID = registerDeviceReqVm.DeviceId,
                Password = registerDeviceReqVm.SetupPin,
                ClientSoftwareVersion = registerDeviceReqVm.ClientSoftwareVersion,
                PoeType        = registerDeviceReqVm.PoeType,
                ChannelType    = registerDeviceReqVm.ChannelType,
                TargetAudience = registerDeviceReqVm.TargetAudience
            };

            var dwSetup = DwInitialSetup(dwInitialreq);
            var xDoc    = XDocument.Parse(dwSetup.ResponseData.Payload.Profile);

            registerDeviceReqVm.MgiDeviceSession = registerDeviceReqVm.MgiDeviceSession;
            registerDeviceReqVm.PosUnitProfileId = int.Parse(GetValue(xDoc, "PROFILE_ID").FirstOrDefault().Value);

            var dwregisterDeviceReqVm = registerDeviceReqVm.ToModel();
            var resp = openIdmIntegration.RegisterDevice(dwregisterDeviceReqVm);

            return(new DwRegisterDeviceRespVm
            {
                AgentLocationId = AuthIntegration.GetAgent().AgentId,
                MainOfficeId = AuthIntegration.GetMainOfficeId(),
                AgentName = resp == true?GetValue(xDoc, "AGENT_NAME").FirstOrDefault().Value : string.Empty,
                AgentAddress1 = resp == true?GetValue(xDoc, "AGENT_ADDRESS_1").FirstOrDefault().Value : string.Empty,
                AgentAddress2 = resp == true?GetValue(xDoc, "AGENT_ADDRESS_2").FirstOrDefault().Value : string.Empty,
                AgentAddress3 = resp == true?GetValue(xDoc, "AGENT_ADDRESS_3").FirstOrDefault().Value : string.Empty,
                AgentCity = resp == true?GetValue(xDoc, "AGENT_CITY").FirstOrDefault().Value : string.Empty,
                AgentState = resp == true?GetValue(xDoc, "AGENT_STATE").FirstOrDefault().Value : string.Empty,
                AgentZip = resp == true?GetValue(xDoc, "AGENT_ZIP").FirstOrDefault().Value : string.Empty,
                AgentPhoneNumber = resp == true?GetValue(xDoc, "AGENT_PHONE").FirstOrDefault().Value : string.Empty,
                AgentCountry = resp == true?GetValue(xDoc, "AGENT_COUNTRY").FirstOrDefault().Value : string.Empty,
                AgentTimeZone = resp == true?GetValue(xDoc, "AGENT_TIME_ZONE").FirstOrDefault().Value : string.Empty,
                Success = resp
            });
        }
        public AcApiResponse <ComplianceTransactionResponse, ApiData> ComplianceTransaction(
            ComplianceTransactionRequest req)
        {
            var deviceId = AuthIntegration.GetDeviceId();

            foreach (var moneyOrder in req.MoneyOrder)
            {
                if (deviceId != moneyOrder.DeviceID)
                {
                    logger.Info(string.Format("The DeviceId {0} does not match the logged in DeviceId {1}", deviceId,
                                              moneyOrder.DeviceID));
                    throw new InvalidDeviceException();
                }
            }
            var resp = agentConnectIntegration.ComplianceTransaction(req);

            var apiResp = new AcApiResponse <ComplianceTransactionResponse, ApiData>
            {
                BusinessMetadata = MapperHelper.SetResponseProperties(resp.Payload?.Flags, DataSource.AgentConnect),
                ResponseData     = resp
            };

            return(apiResp);
        }
Esempio n. 7
0
 public TransactionExceedInfoResponse GetTransactionExceedInfo(TransactionExceedInfoRequest transactionExceedInfoRequest)
 {
     transactionExceedInfoRequest.AgentId = Convert.ToDecimal(AuthIntegration.GetAgent().AgentId);
     return(_partnerServiceRepository.GetTransactionExceedInfo(transactionExceedInfoRequest));
 }
Esempio n. 8
0
 public UserIdExistsResponse GetUserIdExists(UserIdExistsRequest userIdExistsRequest)
 {
     userIdExistsRequest.MainofficeId = Convert.ToDecimal(AuthIntegration.GetMainOfficeId());
     return(_partnerServiceRepository.GetUserIdExists(userIdExistsRequest));
 }
Esempio n. 9
0
 public UserReportsInfoResponseList GetUserReportsInfo(UserReportsInfoRequest getUserReportsInfoRequest)
 {
     getUserReportsInfoRequest.MainOfficeId = System.Convert.ToDecimal(AuthIntegration.GetMainOfficeId());
     return(_partnerServiceRepository.GetUserReportsInfo(getUserReportsInfoRequest));
 }
Esempio n. 10
0
        public ApiResponse <LocationResVm, ApiData> GetLocations()
        {
            LocationResVm result = new LocationResVm();

            List <AgentVm> mainOfficeLocations       = new List <AgentVm>();
            List <AgentVm> searchedLocationsWithMO   = new List <AgentVm>();
            List <AgentVm> searchedLocationsExternal = new List <AgentVm>();

            AgentVm mainOfficeAgent = GetMainOfficeAgent();

            //Get all the lcoations for mainoffice(exluding mainoffice agent)
            mainOfficeLocations = LocationsForMainOffice(_authUser.MainOfficeAgentId);

            searchedLocationsWithMO.Add(mainOfficeAgent);
            searchedLocationsWithMO.AddRange(mainOfficeLocations);

            if (AuthIntegration.GetMainOfficeId().ToString() != string.Empty &&
                _authUser.Status.Equals(UserStatus.External) && _authUser.UserAgentList != null &&
                _authUser.UserAgentList.Count != 0)
            {
                UserAgentActivity userAgent = (_authUser.UserAgentList != null
                    ? _authUser.UserAgentList.FirstOrDefault()
                    : new UserAgentActivity());

                // if user has access to all locations
                if (_authUser.AllLocationsAllowed)
                {
                    searchedLocationsExternal = LocationsForMainOffice(_authUser.MainOfficeAgentId).ToList();
                }
                //// if user is main office user and has the AgentAssistfunctionality
                else if (IsUserAgentAssistFuncionality(_authUser) &&
                         userAgent.AgentId.Equals(AuthIntegration.GetMainOfficeId()))
                {
                    searchedLocationsExternal = searchedLocationsWithMO;
                }
                else
                {
                    // if user is either sublevel or location user then

                    foreach (UserAgentActivity u in _authUser.UserAgentList)
                    {
                        var agent = mainOfficeLocations.Find(ag => ag.id.ToString() == u.AgentId);
                        if (agent != null)
                        {
                            if ((HierarchyLevel)agent.hierarchyLevel == HierarchyLevel.SubLevel)
                            {
                                //passing the agentid inplace of the sublevelagentid field
                                var locations = LocationsForMainOffice(_authUser.MainOfficeAgentId, agent.id);
                                searchedLocationsExternal.AddRange(locations);
                            }
                            else
                            {
                                searchedLocationsExternal.Add(agent);
                            }
                        }
                    }
                }
                result.Agents = searchedLocationsExternal;
            }
            else
            {
                result.Agents = searchedLocationsWithMO;
            }

            return(new ApiResponse <LocationResVm, ApiData>
            {
                ResponseData = result,
                BusinessMetadata = MapperHelper.SetResponseProperties(null, DataSource.PartnerService)
            });
        }
Esempio n. 11
0
        public AcApiResponse <EditTransferTransactionResponse, ApiData> TransactionLookup(TransactionLookupRequest transactionLookupRequest)
        {
            var respVm      = new EditTransferTransactionResponse();
            var respPayload = new EditTransferTransactionResponsePayload();
            ApiResponse <TransactionLookupResponse, ApiData> respAmend           = null;
            ApiResponse <TransactionLookupResponse, ApiData> respSendReversal    = null;
            ApiResponse <TransactionLookupResponse, ApiData> respReceiveReversal = null;

            int?flags     = null;
            var apiErrors = new Dictionary <string, string>();

            var productAuthorizations = AuthIntegration.GetProductAuthorizations();

            if (productAuthorizations.CanAmend)
            {
                transactionLookupRequest.PurposeOfLookup = PurposeOfLookup.Amend;
                respAmend = ExecuteTransactionLookup(transactionLookupRequest);
                respPayload.AmendTransactionLookupResponse = respAmend;
                if (respAmend.ApiErrors != null)
                {
                    foreach (var errItem in respAmend.ApiErrors)
                    {
                        apiErrors.Add(errItem.Key, errItem.Value);
                    }
                }
            }
            if (productAuthorizations.CanSendReversal)
            {
                transactionLookupRequest.PurposeOfLookup = PurposeOfLookup.SendReversal;
                respSendReversal = ExecuteTransactionLookup(transactionLookupRequest);
                respPayload.SendReversalTransactionLookupResponse = respSendReversal;
                if (respSendReversal.ApiErrors != null)
                {
                    foreach (var errItem in respSendReversal.ApiErrors)
                    {
                        apiErrors.Add(errItem.Key, errItem.Value);
                    }
                }
            }
            if (productAuthorizations.CanReceiveReversal)
            {
                transactionLookupRequest.PurposeOfLookup = PurposeOfLookup.ReceiveReversal;
                respReceiveReversal = ExecuteTransactionLookup(transactionLookupRequest);
                respPayload.ReceiveReversalTransactionLookupResponse = respReceiveReversal;
                if (respReceiveReversal.ApiErrors != null)
                {
                    foreach (var errItem in respReceiveReversal.ApiErrors)
                    {
                        apiErrors.Add(errItem.Key, errItem.Value);
                    }
                }
            }

            //
            if (respAmend?.ResponseData?.Payload == null &&
                respSendReversal?.ResponseData?.Payload == null &&
                respReceiveReversal?.ResponseData?.Payload == null)
            {
                respVm.EditTransferTransactionResponsePayload = null;
                respVm.Errors = new List <BusinessError>();
                if (respAmend?.ResponseData?.Errors != null)
                {
                    respVm.Errors.AddRange(respAmend.ResponseData.Errors);
                }
                if (respSendReversal?.ResponseData?.Errors != null)
                {
                    respVm.Errors.AddRange(respSendReversal.ResponseData.Errors);
                }
                if (respReceiveReversal?.ResponseData?.Errors != null)
                {
                    respVm.Errors.AddRange(respReceiveReversal.ResponseData.Errors);
                }
            }
            else
            {
                respVm.EditTransferTransactionResponsePayload = new EditTransferTransactionResponsePayload();
                respVm.EditTransferTransactionResponsePayload.AmendTransactionLookupResponse           = respAmend;
                respVm.EditTransferTransactionResponsePayload.SendReversalTransactionLookupResponse    = respSendReversal;
                respVm.EditTransferTransactionResponsePayload.ReceiveReversalTransactionLookupResponse = respReceiveReversal;
                respVm.EditTransferTransactionResponsePayload.Flags = flags.GetValueOrDefault();
            }

            var apiResp = new AcApiResponse <EditTransferTransactionResponse, ApiData>
            {
                BusinessMetadata = MapperHelper.SetResponseProperties(flags, DataSource.Lookup),
                ResponseData     = respVm,
                ApiErrors        = apiErrors.Any() ? apiErrors : null
            };

            return(apiResp);
        }