public virtual PolicyDTO ConvertToDto(Policy policy) { PolicyDTO dto = new PolicyDTO() { Id = policy.Id, PolicyNumber = policy.PolicyNumber, IsNew = policy.State == PolicyState.New, IsQuote = policy.State == PolicyState.Quote, IsPolicy = policy.State == PolicyState.Policy }; if (policy.Contact != null) { CreateContactDto(policy, dto); } if (policy.Option != null) { CreatePolicyOptionDto(policy, dto); } if (policy.Payment != null) { CreatePaymentDetailDto(policy, dto); } return(dto); }
public void ShowPolicyView(PolicyDTO policy, ActionType actionType) { var view = ServiceLocator.Current.GetInstance <IPolicyView>(); ((PolicyVM)view.ViewModel).Load(policy, actionType); viewManager.ShowInDialog(view); }
public PolicyVM() { init(); Policy = new PolicyDTO { Name = "Policy1", DictionaryName = "Policy1" }; }
public async Task <PolicyDTO> AddPolicy(PolicyDTO newPolicy) { Policy policy = null; using (var context = new EnsuranceDBEntities()) { var existingPolicy = context.Policies .Any(p => (p.Name == newPolicy.Name.Trim())); if (!existingPolicy) { policy = new Policy { Name = newPolicy.Name, Description = newPolicy.Description, CoverageType = newPolicy.CoverageType, CoveragePercentage = newPolicy.CoveragePercentage, CoverageTime = newPolicy.CoverageTime, Cost = newPolicy.Cost, RiskType = newPolicy.RiskType }; context.Policies.Add(policy); await context.SaveChangesAsync(); newPolicy.Id = policy.Id; } else { throw new Exception("A policy with the same name already exists."); } } return(newPolicy); }
public async Task <PolicyDTO> UpdatePolicy(PolicyDTO updatePolicy) { var context1 = new EnsuranceDBEntities(); using (var context = new EnsuranceDBEntities()) { var policy = context.Policies .Where(p => (p.Id == updatePolicy.Id)) .FirstOrDefault(); if (policy != null) { policy.Name = updatePolicy.Name; policy.Description = updatePolicy.Description; policy.CoverageType = updatePolicy.CoverageType; policy.CoveragePercentage = updatePolicy.CoveragePercentage; policy.CoverageTime = updatePolicy.CoverageTime; policy.Cost = updatePolicy.Cost; policy.RiskType = updatePolicy.RiskType; await context.SaveChangesAsync(); } else { throw new Exception("The policy does not exist."); } } return(updatePolicy); }
public async Task <string> SendQuoteSurvey(PolicyDTO policy) { string batchId = await GetBatchId(); string fullName = $"{policy.Contact.FirstName} {policy.Contact.LastName}"; SendGridMessage message = new SendGridMessage() { To = new MailAddress[] { new MailAddress(policy.Contact.EmailAddress, fullName), }, Subject = "RAC Bicycle Insurance Survey", From = new MailAddress(ExternalEmailsFrom, "RAC Bicycle Insurance"), Html = $"Hi", Text = $"Hi" }; message.Headers["batch_id"] = batchId; message.SetSendAt(DateTime.UtcNow.AddMinutes(10)); message.EnableTemplateEngine(_surveyTemplateId); message.AddSubstitution("%%name%%", new List <string> { fullName }); SendGrid.Web transportWeb = new SendGrid.Web(_sendGridApiKey); await transportWeb.DeliverAsync(message); return("Hello"); }
public bool SendPolicyDetails(PolicyDTO policy) { SendGridMessage message = new SendGridMessage(); var subject = "RAC Bicycle Insurance - " + policy.PolicyNumber; var body = CreateCsvFromDto(policy); message.To = AdminEmailsTo.Select(email => new MailAddress(email)).ToArray(); message.Subject = "RAC Bicycle Insurance - " + policy.PolicyNumber; message.From = new MailAddress(AdminEmailsFrom, "RAC Bicycle Insurance"); message.ReplyTo = new MailAddress[] { message.From }; message.Text = body; // Todo complete the zip file implementation // ZipFile zipFile = new ZipFile(); // zipFile.Password = "******"; // zipFile.AddEntry(); message.AddAttachment(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(body)), subject + ".csv"); var transportWeb = new SendGrid.Web(_sendGridApiKey); var task = Task.Run(async() => { await transportWeb.DeliverAsync(message); }); task.Wait(TimeSpan.FromSeconds(30)); return(true); }
public async Task <string> GetGoogleDataLayer(long?policyId) { PolicyDTO policy = await GetPolicy(policyId); try { Dictionary <string, string> transactionProducts = new Dictionary <string, string>(); transactionProducts.Add("sku", "bicycleinsurance"); transactionProducts.Add("name", "bicycle-insurance"); transactionProducts.Add("category", "insurance"); transactionProducts.Add("price", policy.Option.AnnualPremium.ToString()); transactionProducts.Add("quantity", "1"); double?gst = policy.Option.AnnualPremium - (policy.Option.AnnualPremium / 1.1); object DataLayerObject = new { transactionId = policy.Payment.TransactionId, transactionAffiliation = "RAC Insurance", transactionTotal = policy.Option.AnnualPremium.ToString(), transactionTax = gst.ToString(), transactionShipping = 0, transactionProducts, @event = "bike.insurance.purchase" }; return(JsonConvert.SerializeObject(DataLayerObject)); } catch (Exception) { //todo google analytics is busted do something here. return(null); } }
public async Task <IEnumerable <PolicyDTO> > GetPolicies(string roleName) { var listRolePoliciesResponse = await _client.ListRolePoliciesAsync(new ListRolePoliciesRequest { RoleName = roleName }); var policyTasks = listRolePoliciesResponse .PolicyNames .Select(async policyName => { var getRolePolicyResponse = await _client.GetRolePolicyAsync(new GetRolePolicyRequest { PolicyName = policyName, RoleName = roleName }); var document = JsonConvert.DeserializeObject(Uri.UnescapeDataString(getRolePolicyResponse.PolicyDocument)); var p = new PolicyDTO( policyName: policyName, policyDocument: document ); return(p); } ); var polices = await Task.WhenAll(policyTasks); return(polices); }
public async Task <ActionResult <PolicyDTO> > Post([FromBody] CreatePolicyCommand data) { Guid policyId = await this.Mediator.Send(data); PolicyDTO policy = await this.Mediator.Send(new GetPolicyDetailsQuery(policyId)); return(this.CreatedAtRoute("GetPolicyDetails", new { policyNumber = policyId }, policy)); }
protected void CreatePaymentDetailDto(Policy pol, PolicyDTO dto) { PaymentDetail payment = pol.Payment; dto.Payment = new PaymentDetailDTO() { TransactionId = payment.TransactionId }; }
public async Task <PolicyDTO> CreatePolicy(BicycleQuoteQuestion bicycleQuoteQuestion) { BicyclePolicyDetailDTO details = MapToDto(bicycleQuoteQuestion); PolicyDTO policy = await BicyclePolicyApi.CreateWithHttpMessagesAsync(details, Jwt.CreateAuthorizationHeader(null)).Data(); policy = await UpdateContact(policy, bicycleQuoteQuestion.CustomerDetails.EmailAddress); return(policy); }
public void UpdateModelFromDto(PolicyDTO policy, BicycleQuote model) { model.PolicyNumber = policy.PolicyNumber; if (policy.Contact != null) { model.PolicyDetail.Contact.FirstName = policy.Contact.FirstName; model.PolicyDetail.Contact.LastName = policy.Contact.LastName; model.PolicyDetail.Contact.DateOfBirth = policy.Contact.DateOfBirth.HasValue ? new DateData(policy.Contact.DateOfBirth.Value) : null; model.PolicyDetail.Contact.ContactEmail = policy.Contact.EmailAddress; model.PolicyDetail.Contact.ContactNumber = policy.Contact.PhoneNumber; if (policy.Contact.Address != null) { model.PolicyDetail.Contact.Address = policy.Contact.Address.AddressLine1; model.PolicyDetail.Contact.Suburb = policy.Contact.Address.Suburb; model.PolicyDetail.Contact.PostCode = policy.Contact.Address.PostCode; } } BicycleQuoteQuoteOption option = new BicycleQuoteQuoteOption { Description = "Bike Insurance", IsSelected = true, PolicyStartDate = DateUtil.CurrentDateTime.ToString("dd MMMM yyyy") }; if (policy.Option != null) { // // values are mandatory in the database, therefore we can make the assumption that they are set. // they are also set as [Required] in the policy, so no idea why they are defined as nullable types. // option.AnnualPremium = (decimal)policy.Option.AnnualPremium.GetValueOrDefault(); option.Excess = (decimal)policy.Option.Excess.GetValueOrDefault(); option.Code = policy.Option.Code; option.SumInsured.Value = (int)Convert.ToDecimal(policy.Option.AgreedValue); model.PolicyPayment.PaymentDetails.PaymentMethod = 1; model.PolicyPayment.PaymentDetails.PaymentFrequency = 1; model.PolicyPayment.PaymentDetails.Excess = $"{policy.Option.Excess.GetValueOrDefault():C2}"; model.PolicyPayment.PaymentDetails.Premium = $"{policy.Option.AnnualPremium.GetValueOrDefault():C2}"; model.PolicyPayment.PaymentDetails.PolicyStartDate = DateUtil.CurrentDateTime.ToString("dd MMMM yyyy"); } model.Quote.Options = new List <BicycleQuoteQuoteOption> { option }; if (policy.Payment != null) { // TODO : it's been paid, do we need to do anything here?!? } }
protected async Task <PolicyDTO> UpdateContact(PolicyDTO policy, string emailAddress) { if (policy.Contact == null) { policy.Contact = new PolicyContactDTO(); } policy.Contact.EmailAddress = emailAddress; return(await PolicyApi.SetContactWithHttpMessagesAsync(policy.Id, policy.Contact, Jwt.CreateAuthorizationHeader(policy.Id)).Data()); }
public void Load(PolicyDTO policyParam, ActionType actionTypeParam) { actionType = actionTypeParam; Policy = policyParam; GridRuleListViewVisibility = false; if (actionType == ActionType.ModifyPolicy) { GridRuleListViewVisibility = true; } }
public async Task <PolicyDTO> UpdatePolicy(long?policyId, BicycleQuoteQuestion bicycleQuoteQuestion) { BicyclePolicyDetailDTO details = MapToDto(bicycleQuoteQuestion); PolicyDTO policy = await BicyclePolicyApi.SetDetailsWithHttpMessagesAsync(policyId.GetValueOrDefault(), details, Jwt.CreateAuthorizationHeader(policyId)).Data(); policy = await UpdateContact(policy, bicycleQuoteQuestion.CustomerDetails.EmailAddress); return(policy); }
public async Task <PolicyDTO> UpdateSumInsured(long?policyId, decimal sumInsured) { PolicyDTO policy = await GetPolicy(policyId); policy.Option.AgreedValue = sumInsured.ToString(CultureInfo.InvariantCulture); policy = await PolicyApi.SetPolicyOptionWithHttpMessagesAsync(policy.Id, policy.Option, Jwt.CreateAuthorizationHeader(policy.Id)).Data(); return(policy); }
private void SetReferenceData(PolicyDTO policy, BicycleQuote model) { ViewData.SetReferenceData(_policyDetailFormHandler.CreateReferenceData()); model.PolicyDetail.BikeDetails.Value = $"{Convert.ToDecimal(policy?.Option?.AgreedValue):C0}"; model.PolicyDetail.BikeDetails.Make = policy?.Detail?.Make; model.PolicyDetail.BikeDetails.Model = policy?.Detail?.Model; model.PolicyDetail.BikeDetails.Usage = policy?.Detail?.Type; model.PolicyDetail.BikeDetails.Year = policy?.Detail?.Year; }
public virtual async Task <ActionResult> Index() { BicycleQuote model = new BicycleQuote(); PolicyDTO policy = await _policyDetailFormHandler.GetPolicy(this.GetPolicyId()); _policyDetailFormHandler.UpdateModelFromDto(policy, model); SetReferenceData(policy, model); return(View(model)); }
public override PolicyDTO ConvertToDto(Policy policy) { PolicyDTO dto = base.ConvertToDto(policy); if (policy.Detail != null) { CreatePolicyDetailDto(policy, dto); } return(dto); }
private Result <Address> CreateBrainTreeBillingAddress(string customerId, PolicyDTO policy) { return(_brainTreeGateway.Address.Create(customerId, new AddressRequest { FirstName = policy.Contact.FirstName, LastName = policy.Contact.LastName, StreetAddress = policy.Contact.Address.AddressLine1, PostalCode = policy.Contact.Address.PostCode, Locality = policy.Contact.Address.Suburb, Region = policy.Contact.Address.Suburb })); }
protected void CreatePolicyDetailDto(Policy pol, PolicyDTO dto) { BicyclePolicyDetail detail = pol.Detail; dto.Detail = new BicyclePolicyDetailDTO() { Make = detail.Make, Model = detail.Model, Type = detail.Type, Year = detail.Year }; }
private Result <Customer> CreateBraintreeCustomer(string paymentTypeNonce, PolicyDTO policy) { var results = _brainTreeGateway.Customer.Create(new CustomerRequest() { PaymentMethodNonce = paymentTypeNonce, Email = policy.Contact.EmailAddress, FirstName = policy.Contact.FirstName, LastName = policy.Contact.LastName, Phone = policy.Contact.PhoneNumber, }); return(results); }
protected void CreatePolicyOptionDto(Policy pol, PolicyDTO dto) { PolicyOption option = pol.Option; dto.Option = new PolicyOptionDTO() { AnnualPremium = option.AnnualPremium, Code = option.Code, Description = option.Description, Excess = option.Excess, AgreedValue = option.AgreedValue }; }
private void SetReferenceData(PolicyDTO policy, BicycleQuote model) { ViewData.SetReferenceData(_confirmantionFormHandler.CreateReferenceData()); model.Confirmation.Make = policy?.Detail?.Make; model.Confirmation.Model = policy?.Detail?.Model; model.Confirmation.Year = policy?.Detail?.Year; // // Todo: The startdate should be stored in the database..... // model.Confirmation.PolicyStartDate = DateUtil.CurrentDateTime.ToString("dd MMMM yyyy"); model.Confirmation.Excess = $"{Convert.ToDecimal(policy?.Option?.Excess):C0}"; model.Confirmation.Premium = $"{Convert.ToDecimal(policy?.Option?.AnnualPremium):C0}"; }
public virtual async Task <ActionResult> Index() { BicycleQuote model = new BicycleQuote(); PolicyDTO policy = await _confirmantionFormHandler.GetPolicy(this.GetPolicyId()); model.GoogleDataLayer = await _confirmantionFormHandler.GetGoogleDataLayer(policy.Id); _confirmantionFormHandler.UpdateModelFromDto(policy, model); SetReferenceData(policy, model); ViewData.SetReferenceData(_confirmantionFormHandler.CreateReferenceData()); return(View(model)); }
public IEnumerable <PolicyDTO> GetAllPolicies() { var policies = _context.Policies.Where(p => p.Claims.Count() >= 1).ToList(); List <PolicyDTO> policyDTOs = new List <PolicyDTO>(); foreach (var policy in policies) { PolicyDTO policyDTO = new PolicyDTO(); policyDTO = _mapper.Map(policy, policyDTO); policyDTO.NumberOfSubmittedClaims = _context.Claims.Where(c => c.Police_No == policy.Police_No).Count(); policyDTOs.Add(policyDTO); } return(policyDTOs); }
public void Load(long policyId) { ShowBusyIndicator("در حال دریافت اطلاعات"); policyService.GetPolicy((res, exp) => appController.BeginInvokeOnDispatcher(() => { HideBusyIndicator(); if (exp == null) { Policy = res; DisplayName = BasicInfoAppLocalizedResources.RuleListViewTitle + " " + Policy.Name; } else { appController.HandleException(exp); } }), policyId); }
public async Task <IHttpActionResult> PostAsync([FromBody] PolicyDTO policy) { if (policy == null || !ModelState.IsValid) { return(BadRequest()); } try { PolicyDTO updatedPolicy = await repository.AddPolicy(policy); return(Content(HttpStatusCode.Created, updatedPolicy)); } catch (Exception ex) { return(InternalServerError(ex)); } }
private Result <Transaction> CreateBraintreeTransaction(PolicyDTO policy, string customerId) { Result <Transaction> createPaymentResult; var paymentRequest = new TransactionRequest() { Amount = (decimal)policy.Option.AnnualPremium.Value, Options = new TransactionOptionsRequest { SubmitForSettlement = true, AddBillingAddressToPaymentMethod = true, //StoreInVault = false, // prevents storing of paymentmethod in the vault regardless of outcome. }, CustomerId = customerId }; createPaymentResult = _brainTreeGateway.Transaction.Sale(paymentRequest); return(createPaymentResult); }