113 lines
4.1 KiB
C#
113 lines
4.1 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
|
using Nop.Core.Domain.Common;
|
|
using Nop.Web.Framework.Models;
|
|
using Nop.Web.Framework.Mvc.ModelBinding;
|
|
|
|
namespace Nop.Web.Models.Common;
|
|
|
|
public partial record AddressModel : BaseNopEntityModel
|
|
{
|
|
public AddressModel()
|
|
{
|
|
AvailableCountries = new List<SelectListItem>();
|
|
AvailableStates = new List<SelectListItem>();
|
|
CustomAddressAttributes = new List<AddressAttributeModel>();
|
|
AddressFields = new KeyValuePair<AddressField, string>[7];
|
|
}
|
|
|
|
[NopResourceDisplayName("Address.Fields.FirstName")]
|
|
public string FirstName { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.LastName")]
|
|
public string LastName { get; set; }
|
|
[DataType(DataType.EmailAddress)]
|
|
[NopResourceDisplayName("Address.Fields.Email")]
|
|
public string Email { get; set; }
|
|
|
|
|
|
public bool CompanyEnabled { get; set; }
|
|
public bool CompanyRequired { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.Company")]
|
|
public string Company { get; set; }
|
|
|
|
public bool CountryEnabled { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.Country")]
|
|
public int? CountryId { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.Country")]
|
|
public string CountryName { get; set; }
|
|
|
|
public int? DefaultCountryId { get; set; }
|
|
|
|
public bool StateProvinceEnabled { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.StateProvince")]
|
|
public int? StateProvinceId { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.StateProvince")]
|
|
public string StateProvinceName { get; set; }
|
|
|
|
public bool CountyEnabled { get; set; }
|
|
public bool CountyRequired { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.County")]
|
|
public string County { get; set; }
|
|
|
|
public bool CityEnabled { get; set; }
|
|
public bool CityRequired { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.City")]
|
|
public string City { get; set; }
|
|
|
|
public bool StreetAddressEnabled { get; set; }
|
|
public bool StreetAddressRequired { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.Address1")]
|
|
public string Address1 { get; set; }
|
|
|
|
public bool StreetAddress2Enabled { get; set; }
|
|
public bool StreetAddress2Required { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.Address2")]
|
|
public string Address2 { get; set; }
|
|
|
|
public bool ZipPostalCodeEnabled { get; set; }
|
|
public bool ZipPostalCodeRequired { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.ZipPostalCode")]
|
|
public string ZipPostalCode { get; set; }
|
|
|
|
public bool PhoneEnabled { get; set; }
|
|
public bool PhoneRequired { get; set; }
|
|
[DataType(DataType.PhoneNumber)]
|
|
[NopResourceDisplayName("Address.Fields.PhoneNumber")]
|
|
public string PhoneNumber { get; set; }
|
|
|
|
public bool FaxEnabled { get; set; }
|
|
public bool FaxRequired { get; set; }
|
|
[NopResourceDisplayName("Address.Fields.FaxNumber")]
|
|
public string FaxNumber { get; set; }
|
|
|
|
public string AddressLine { get; set; }
|
|
public KeyValuePair<AddressField, string>[] AddressFields { get; set; }
|
|
|
|
public IList<SelectListItem> AvailableCountries { get; set; }
|
|
public IList<SelectListItem> AvailableStates { get; set; }
|
|
|
|
public string FormattedCustomAddressAttributes { get; set; }
|
|
public IList<AddressAttributeModel> CustomAddressAttributes { get; set; }
|
|
|
|
public Address ToEntity(Address destination = null)
|
|
{
|
|
destination ??= new Address();
|
|
|
|
destination.Id = Id;
|
|
destination.FirstName = FirstName;
|
|
destination.LastName = LastName;
|
|
destination.Email = Email;
|
|
destination.Company = Company;
|
|
destination.CountryId = CountryId == 0 ? null : CountryId;
|
|
destination.StateProvinceId = StateProvinceId == 0 ? null : StateProvinceId;
|
|
destination.County = County;
|
|
destination.City = City;
|
|
destination.Address1 = Address1;
|
|
destination.Address2 = Address2;
|
|
destination.ZipPostalCode = ZipPostalCode;
|
|
destination.PhoneNumber = PhoneNumber;
|
|
destination.FaxNumber = FaxNumber;
|
|
|
|
return destination;
|
|
}
|
|
} |