Last active
July 16, 2020 17:58
-
-
Save amkherad/88b8a06d1b6b544df383e076cea6673e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class IranPostRemoteDet | |
| { | |
| private readonly IDataFormatters _dataFormatters; | |
| private const string DetPlaceholder = @" | |
| {ShCode} | |
| {PharmacyMobile} | |
| {RequestOrderId} | |
| {StateId} | |
| {CityId} | |
| {ProductName} | |
| {WeightInGrams} | |
| {ProductPriceInIrr} | |
| {Tip} | |
| {IsCod} | |
| {ReceiverFirstName}-{ReceiverLastName} | |
| {Address} | |
| {AddressPostalCode} | |
| {Email} | |
| {BuyerIpAddress} | |
| {TotalPrice} | |
| {Tax} | |
| "; | |
| public int OrderId { get; set; } | |
| public int ThirdPartyTransferId { get; set; } | |
| public string PharmacyMobile { get; set; } | |
| public string PostRequestOrderId { get; set; } | |
| public string ProductName { get; set; } | |
| public string ShCode { get; set; } | |
| public double WeightInGrams { get; set; } | |
| public string ReceiverFirstName { get; set; } | |
| public string ReceiverLastName { get; set; } | |
| public decimal ProductPriceInIrr { get; set; } | |
| public string Address { get; set; } | |
| public string AddressPostalCode { get; set; } | |
| public string Email { get; set; } | |
| public string BuyerIpAddress { get; set; } | |
| public decimal TotalPrice { get; set; } | |
| public decimal Tax { get; set; } | |
| public int ProvinceId { get; set; } | |
| public int CityId { get; set; } | |
| public int Tip { get; set; } | |
| public bool IsCod { get; set; } | |
| public IranPostRemoteDet( | |
| IDataFormatters dataFormatters | |
| ) | |
| { | |
| if (dataFormatters is null) throw new ArgumentNullException(nameof(dataFormatters)); | |
| _dataFormatters = dataFormatters; | |
| } | |
| public string ValidPostalCode | |
| { | |
| get | |
| { | |
| var result = AddressPostalCode; | |
| if (!_dataFormatters.IsValidIranPostalCode(result) || result.Equals("1111111111")) | |
| { | |
| result = GeneratePostalCode(CityId); | |
| if (result.Equals("1111111111")) | |
| { | |
| result = "1311111111"; | |
| } | |
| } | |
| return _dataFormatters.NormalizeUnicodeNumbers(result); | |
| } | |
| } | |
| private string GeneratePostalCode( | |
| int cityId | |
| ) | |
| { | |
| var postalCode = cityId.ToString().PadRight(10, '1'); | |
| return postalCode; | |
| } | |
| public string Det | |
| { | |
| get | |
| { | |
| var productName = ProductName; | |
| var receiverFirstName = ReceiverFirstName.Replace('^', ' '); | |
| var receiverLastName = ReceiverLastName.Replace('^', ' '); | |
| var addressPostalCode = ValidPostalCode.Replace('^', ' '); | |
| var address = Address.Replace('^', ' '); | |
| var shCode = ShCode.Replace('^', ' '); | |
| var pharmacyMobile = PharmacyMobile.Replace('^', ' '); | |
| var email = Email?.Replace('^', ' ') ?? "--"; | |
| var buyerIpAddress = BuyerIpAddress?.Replace('^', ' ') ?? "0"; | |
| var sb = new StringBuilder(200); | |
| sb.Append(shCode).Append('^'); // ShCode | |
| sb.Append(pharmacyMobile).Append('^'); // PharmacyMobile | |
| sb.Append(PostRequestOrderId).Append('^'); // OrderId | |
| sb.Append(ProvinceId).Append('^'); //ProvinceId | |
| sb.Append(CityId).Append('^'); // CityId | |
| sb.Append(productName).Append('^'); // ProductName | |
| sb.Append(WeightInGrams.ToString("0")).Append('^'); // WeightInGrams | |
| sb.Append(ProductPriceInIrr.ToString("0")).Append('^'); // ProductPriceInIrr | |
| sb.Append(Tip.ToString()).Append('^'); // Tip | |
| sb.Append(IsCod ? "0" : "1").Append('^'); // IsCod | |
| sb.Append(receiverFirstName).Append('-').Append(receiverLastName).Append('^'); // ReceiverFirstName | |
| sb.Append(address).Append('^'); // Address | |
| sb.Append(addressPostalCode).Append('^'); // AddressPostalCode | |
| sb.Append(email).Append('^'); // Email | |
| sb.Append(buyerIpAddress).Append('^'); // BuyerIpAddress | |
| sb.Append(TotalPrice.ToString("0")).Append('^'); // TotalPrice | |
| sb.Append(Tax.ToString("0")); // Tax | |
| return sb.ToString(); | |
| } | |
| } | |
| public override string ToString() => Det; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment