Try your search with a different keyword or use * as a wildcard.
@model ShoppingCartModel
@using System.Text
@using Nop.Core
@using Nop.Core.Domain.Catalog
@using Nop.Core.Domain.Media
@using Nop.Services.Media
@inject IDownloadService downloadService
@inject CatalogSettings catalogSettings
@if (Model.CheckoutAttributes.Count > 0)
{
    var attributeChangeScriptsBuilder = new StringBuilder();
    
        
            @foreach (var attribute in Model.CheckoutAttributes)
            {
                var controlId = $"checkout_attribute_{attribute.Id}";
                var textPrompt = !string.IsNullOrEmpty(attribute.TextPrompt) ? attribute.TextPrompt : attribute.Name;
                var textPromptId = $"checkout_attribute_{attribute.Id}_textprompt";
                - 
                    
                    @if (attribute.IsRequired)
                    {
                        *
                    }
                
 
                - 
                    @switch (attribute.AttributeControlType)
                    {
                        case AttributeControlType.DropdownList:
                            {
                        
                            attributeChangeScriptsBuilder.AppendFormat("$('#{0}').on('change', function(){{checkoutAttributeChange();}});\n", controlId);
                            }
                            break;
                        case AttributeControlType.RadioList:
                            {
                        
                            @foreach (var attributeValue in attribute.Values)
                            {
                                var attributeName = string.IsNullOrEmpty(attributeValue.PriceAdjustment) ?
                                    attributeValue.Name :
                                    T("ShoppingCart.CheckoutAttributes.PriceAdjustment", attributeValue.Name, attributeValue.PriceAdjustment).Text; 
                                - 
                                    
                                    
                                
 
                                attributeChangeScriptsBuilder.AppendFormat("$('#{0}_{1}').on('click', function(){{checkoutAttributeChange();}});\n", controlId, attributeValue.Id);
                            }
                        
                            }
                            break;
                        case AttributeControlType.Checkboxes:
                        case AttributeControlType.ReadonlyCheckboxes:
                            {
                        
                            @foreach (var attributeValue in attribute.Values)
                            {
                                var attributeName = string.IsNullOrEmpty(attributeValue.PriceAdjustment) ?
                                    attributeValue.Name :
                                    T("ShoppingCart.CheckoutAttributes.PriceAdjustment", attributeValue.Name, attributeValue.PriceAdjustment).Text; 
                                - 
                                    
                                    
                                
 
                                attributeChangeScriptsBuilder.AppendFormat("$('#{0}_{1}').on('click', function(){{checkoutAttributeChange();}});\n", controlId, attributeValue.Id);
                            }
                        
                            }
                            break;
                        case AttributeControlType.TextBox:
                            {
                                
                            }
                            break;
                        case AttributeControlType.MultilineTextbox:
                            {
                                
                            }
                            break;
                        case AttributeControlType.Datepicker:
                            {
                                 
                            }
                            break;
                        case AttributeControlType.FileUpload:
                            {
                                var allowedFileTypes = string.Empty;
                                if (attribute.AllowedFileExtensions.Any())
                                {
                                    var fileTypeList = attribute.AllowedFileExtensions
                                    .Select(x => new FileExtensionContentTypeProvider().TryGetContentType($".{x}", out var contentType) ? $"'{contentType}'" : null)
                                        .Where(ft => !string.IsNullOrEmpty(ft))
                                        .ToList();
                                    allowedFileTypes = string.Join(", ", fileTypeList);
                                }
                                Download download = null;
                                if (!string.IsNullOrEmpty(attribute.DefaultValue) && Guid.TryParse(attribute.DefaultValue, out var downloadGuid))
                                {
                                    download = await downloadService.GetDownloadByGuidAsync(downloadGuid);
                                }
                                @* register CSS and JS *@
                                
                                
                                
                                
                                
                                
                                
                                                      
                                
                            }
                            break;
                        case AttributeControlType.ColorSquares:
                            {
                                
                                    @foreach (var attributeValue in attribute.Values)
                                    {
                                        var attributeName = string.IsNullOrEmpty(attributeValue.PriceAdjustment) ?
                                            attributeValue.Name :
                                            T("ShoppingCart.CheckoutAttributes.PriceAdjustment", attributeValue.Name, attributeValue.PriceAdjustment).Text; 
                                        - 
                                            
                                        
 
                                        attributeChangeScriptsBuilder.AppendFormat("$('#{0}_{1}').on('click', function(){{checkoutAttributeChange();}});\n", controlId, attributeValue.Id);
                                    }
                                
                                
                            }
                            break;
                        case AttributeControlType.ImageSquares:
                            {
                                //not support attribute type
                            }
                            break;
                    }
                 
            }
        
    
    
}