public async Task <UsageReportResponse> Execute(UsageReportRequest usageReportRequest)
        {
            if (!CRMFactory.ValidateUsageReportRequest(usageReportRequest))
            {
                throw new UsageReportRequestException("Start date must be before end date");
            }
            var token = await _crmTokenGateway.GetCRMToken();

            var uniqueAnonymousUsers = await _crmGateway.GetUniqueAnonymousUsers(usageReportRequest, token);

            var totalAnonymousLogins = await _crmGateway.GetTotalAnonymousLogins(usageReportRequest);

            var uniqueCSSOUsers = await _crmGateway.GetUniqueCSSOUsers(usageReportRequest);

            var totalCSSOLogins = await _crmGateway.GetTotalCSSOLogins(usageReportRequest);

            var newCSSOLinkedAccounts = await _crmGateway.GetNewCSSOLinkedAccounts(usageReportRequest);

            var totalLogins = await _crmGateway.GetTotalLogins(usageReportRequest);

            return(new UsageReportResponse
            {
                StartDate = usageReportRequest.StartDate.ToString("yyyy-MM-dd"),
                EndDate = usageReportRequest.EndDate.ToString("yyyy-MM-dd"),
                UniqueAnonymousUsers = uniqueAnonymousUsers,
                TotalAnonymousLogins = totalAnonymousLogins,
                UniqueCSSOUsers = uniqueCSSOUsers,
                TotalCSSOLogins = totalCSSOLogins,
                NewCSSOLinkedAccounts = newCSSOLinkedAccounts,
                TotalLogins = totalLogins
            });
        }
Exemple #2
0
        public async Task <CreateLinkedAccountResponse> Execute(CreateLinkedAccountRequest createLinkedAccountRequest)
        {
            var token = await _crmTokenGateway.GetCRMToken();

            //GetAccountID from crm
            var crmAccountID = await _crmGateway.GetCrmAccountId(createLinkedAccountRequest.AccountNumber, token);

            //Create linked account
            if (crmAccountID == null)
            {
                return(null);
            }

            //Return linked account ID
            var linkedAccountID = await _crmGateway.CreateLinkedAccount(crmAccountID, createLinkedAccountRequest.CssoId);

            if (linkedAccountID == null)
            {
                return(null);
            }

            return(new CreateLinkedAccountResponse
            {
                LinkedAccountId = linkedAccountID
            });
        }
        public async Task <CheckAccountExistsResponse> Execute(string paymentReference, string postCode)
        {
            var normalizedPostcode = CRMFactory.NormalizePostcode(postCode);
            var token = await _crmTokenGateway.GetCRMToken();

            var accountExistsResponse = await _crmGateway.CheckAccountExists(paymentReference, normalizedPostcode, token);

            return(accountExistsResponse);
        }
        public async Task <RentAccountResponse> Execute(string paymentReference, bool privacy)
        {
            var token = await _crmTokenGateway.GetCRMToken();

            var crmResponse = await _crmGateway.GetRentAccount(paymentReference, token);

            var rentAccountResponse = crmResponse.value.Count > 0 ? CRMFactory.ToRentAccountResponse(paymentReference, crmResponse, privacy) : null;

            return(rentAccountResponse);
        }
        public async Task <LinkedAccountResponse> Execute(string cssoId)
        {
            var token = await _crmTokenGateway.GetCRMToken();

            var crmResponse = await _crmGateway.GetLinkedAccount(cssoId, token);

            var linkedAccountResponse = crmResponse.value.Count > 0 ? CRMFactory.ToLinkedAccountResponse(crmResponse) : null;

            return(linkedAccountResponse);
        }
Exemple #6
0
        public async Task <AddResidentAuditResponse> CreateResidentAudit(CreateResidentAuditRequest residentAuditRequest)
        {
            var token = await _crmTokenGateway.GetCRMToken();

            var residentAuditResponse = await _crmGateway.GenerateResidentAuditRecord(AuditFactory.ToResidentAuditRequest(residentAuditRequest), token);

            var addResidentAuditResponse = new AddResidentAuditResponse
            {
                success = residentAuditResponse
            };

            return(addResidentAuditResponse);
        }
        public async Task <DeleteLinkedAccountResponse> Execute(string cssoId)
        {
            var token = await _crmTokenGateway.GetCRMToken();

            var crmResponse = await _crmGateway.GetLinkedAccount(cssoId, token);

            if (crmResponse == null || crmResponse.value.Count == 0)
            {
                return(null);
            }
            var linkId            = crmResponse.value[0].hackney_csso_linked_rent_accountid;
            var crmDeleteResponse = await _crmGateway.DeleteLinkedAccount(linkId);

            var deleteLinkedAccountResponse = new DeleteLinkedAccountResponse
            {
                success = crmDeleteResponse
            };

            return(deleteLinkedAccountResponse);
        }