示例#1
0
        public async Task <IActionResult> PostCleanMoveIn([FromBody] CleanMoveInRequest request)
        {
            IActionResult result;

            try
            {
                var jwt      = GetJWToken();
                var response = await _moveInLogic.PostCleanMoveIn(request, jwt);

                result = Ok(response);
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                result = e.ToActionResult();
            }

            return(result);
        }
示例#2
0
        /// <inheritdoc />
        public async Task <CleanMoveInResponse> PostCleanMoveIn(CleanMoveInRequest request, string jwt)
        {
            var bpId = ParseBpFromString(request.tenantBPId);

            //
            var addressInfoResponse = await _customerLogic.GetMailingAddressesAsync(bpId, true, jwt);

            var addressInfo = addressInfoResponse.FirstOrDefault();

            var accountRequest = new CreateAccountRequest()
            {
                Description = "New Move In"
            };
            var accountResponse = await _accountApi.PostCreateContractAccount(accountRequest);

            var mcfMoveInRequest = new CreateMoveInRequest()
            {
                AccountID       = request.tenantBPId,
                CustomerRole    = "",
                ProcessType     = "",
                ContractItemNav = await CreateCleanMoveInContractItemNavList(request, accountResponse.ContractAccountId.ToString()),
                ProdAttributes  = CreateProdAttributeList(request.ProductEnrollments)
            };

            var response                       = _mcfClient.PostMoveIn(mcfMoveInRequest, jwt);
            var depositByContractId            = response.ContractItemNav.Results.ToDictionary(contractItem => contractItem.ContractID, contractItem => contractItem.SecDepositAmt);
            var notificationNumberByContractId = response.ContractItemNav.Results.ToDictionary(
                contractItem => contractItem.ContractID, contractItem => contractItem.NotificationNumber);
            var moveInResponse = new CleanMoveInResponse()
            {
                DepositsByContractId           = depositByContractId,
                NotificationNumberByContractId = notificationNumberByContractId
            };

            return(moveInResponse);
        }
示例#3
0
        public async Task <IEnumerable <ContractItemNav> > CreateCleanMoveInContractItemNavList(CleanMoveInRequest request, string newContractAccountId)
        {
            var contractItemNavList = new List <ContractItemNav>();

            foreach (var installation in request.Installations)
            {
                var contractItemNav = new ContractItemNav()
                {
                    ContractStartDate   = DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss"),
                    ContractEndDate     = DateTime.MaxValue.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss"),
                    BusinessAgreementID = newContractAccountId,
                    TransferCA          = "",
                    ProductID           = GetProductId(installation.DivisionId),
                    DivisionID          = installation.DivisionId,
                    PointOfDeliveryGUID = installation.InstallationGuid
                };

                contractItemNavList.Add(contractItemNav);
            }

            return(contractItemNavList);
        }