コード例 #1
0
        public async Task <IHttpActionResult> SetPolicyOption(long id, [FromBody] PolicyOptionDTO options)
        {
            long?tokenId = User.Identity.GetPolicyIdFromToken();

            if (tokenId != id)
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                Policy policy = await _serviceFactory.GetPolicyService().SetPolicyOption(id, options);

                return(Ok(_serviceFactory.GetPolicyService().ConvertToDto(policy)));
            }
            catch (BadRequestException)
            {
                return(BadRequest());
            }
            catch (Exception)
            {
                return(NotFound());
            }
        }
コード例 #2
0
        public async Task <Policy> SetPolicyOption(long policyId, PolicyOptionDTO option)
        {
            if (option == null)
            {
                throw new BadRequestException();
            }

            using (InsuranceDbContext context = ContextFactory.CreateContext())
            {
                Policy policy = await FetchPolicy(context, policyId, true);

                if (policy.Option == null)
                {
                    await CalculatePolicyOption(policy);
                }

                policy.Option = CreatePolicyOptionFromCoverOption(policy.Option, option);
                policy.Option = await CalculatePolicyOption(policy);

                await context.SaveChangesAsync();

                return(policy);
            }
        }
コード例 #3
0
        /// <param name='operations'>
        /// The operations group for this extension method.
        /// </param>
        /// <param name='id'>
        /// </param>
        /// <param name='options'>
        /// </param>
        /// <param name='cancellationToken'>
        /// The cancellation token.
        /// </param>
        public static async Task <PolicyDTO> SetPolicyOptionAsync(this IPolicies operations, long?id, PolicyOptionDTO options, CancellationToken cancellationToken = default(CancellationToken))
        {
            HttpOperationResponse <PolicyDTO> result = await operations.SetPolicyOptionWithHttpMessagesAsync(id, options, null, cancellationToken).ConfigureAwait(false);

            return(result.Body);
        }
コード例 #4
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='id'>
 /// </param>
 /// <param name='options'>
 /// </param>
 public static PolicyDTO SetPolicyOption(this IPolicies operations, long?id, PolicyOptionDTO options)
 {
     return(Task.Factory.StartNew(s => ((IPolicies)s).SetPolicyOptionAsync(id, options), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
コード例 #5
0
 private PolicyOption CreatePolicyOptionFromCoverOption(PolicyOption option, PolicyOptionDTO optionDto)
 {
     option.AgreedValue = optionDto.AgreedValue;
     return(option);
 }