/// <inheritdoc /> public async Task <IEnumerable <long> > PostPriorMoveIn(MoveInRequest request, long bp, string jwt) { var mcfMoveInRequest = new CreateMoveInRequest() { AccountID = bp.ToString(), CustomerRole = "", ProcessType = "PRIOR", ContractItemNav = await CreateContractItemNavList(request), ProdAttributes = new List <ProdAttribute>() }; var response = _mcfClient.PostMoveIn(mcfMoveInRequest, jwt); var newContractAccounts = response.ContractItemNav.Results.Select(item => long.Parse(item.BusinessAgreementID)).ToList(); return(newContractAccounts); }
public async Task <IActionResult> PostLateMoveIn([FromBody] MoveInRequest request) { IActionResult result; var jwt = GetJWToken(); var bp = GetBpIdFromClaims(); try { var response = new LateMoveInResponse() { NewContractAccounts = await _moveInLogic.PostPriorMoveIn(request, bp, jwt) }; result = Ok(response); } catch (Exception e) { _logger.LogError(e, e.Message); result = e.ToActionResult(); } return(result); }
private async Task <IEnumerable <ContractItemNav> > CreateContractItemNavList(MoveInRequest request) { var premiseInstallation = await _deviceApi.GetPremiseInstallation(request.PremiseId); var contractItemNavList = new List <ContractItemNav>(); foreach (var installationId in request.InstallationIds) { var premiseInstallDetails = premiseInstallation.Data.Installations.FirstOrDefault(x => x.InstallationId == installationId); if (premiseInstallDetails == null) { throw new BadRequestException( "Unable to find premise installation details with provided installation id"); } var contractItemNav = new ContractItemNav() { ContractStartDate = DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss"), ContractEndDate = DateTime.MaxValue.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss"), BusinessAgreementID = request.ContractAccountId.ToString(), TransferCA = "", ProductID = GetProductId(premiseInstallDetails.DivisionId), DivisionID = premiseInstallDetails.DivisionId, PointOfDeliveryGUID = premiseInstallDetails.InstallationGuid, }; contractItemNavList.Add(contractItemNav); } return(contractItemNavList); }