public Result <EmailOrderManageModel> GetEmailOrder() { var defaultCountry = _referenceData.DefaultCountry; var toReturn = new EmailOrderManageModel() { Shipping = new AddressModel() { Country = new CountryListItemModel(defaultCountry) }, SkuOrdereds = new List <SkuOrderedManageModel>() { new SkuOrderedManageModel(null) }, IdPaymentMethodType = (int)PaymentMethodType.Marketing, }; return(toReturn); }
public async Task <Result <bool> > SendEmailOrder([FromBody] EmailOrderManageModel model) { if (!Validate(model)) { return(false); } if (!await _reCaptchaValidator.Validate(model.Token)) { ModelState.AddModelError(string.Empty, ErrorMessagesLibrary.Data[ErrorMessagesLibrary.Keys.WrongCaptcha]); return(false); } var lookups = await _settingService.GetLookupsAsync(SettingConstants.EMAIL_ORDER_LOOKUP_NAMES.Split(',')); var requestorsLookup = lookups.FirstOrDefault(p => p.Name == SettingConstants.EMAIL_ORDER_REQUESTOR_LOOKUP_NAME); var reasonsLookup = lookups.FirstOrDefault(p => p.Name == SettingConstants.EMAIL_ORDER_REASON_LOOKUP_NAME); var shippingTypeLookup = lookups.FirstOrDefault(p => p.Name == SettingConstants.EMAIL_ORDER_SHIPPING_TYPE_LOOKUP_NAME); if (model.IdEmailOrderShippingType != null && model.IdEmailOrderShippingType.Value == (int)EmailOrderShippingType.WillCall) { model.Shipping.Address1 = null; model.Shipping.Address2 = null; model.Shipping.City = null; model.Shipping.County = null; model.Shipping.Country = null; model.Shipping.Zip = null; model.Shipping.Fax = null; model.Shipping.Phone = null; } var email = new EmailOrderEmail() { DateCreated = DateTime.Now, DetailsOnEvent = model.DetailsOnEvent, Instuction = model.Instuction, Requestor = model.IdRequestor.HasValue ? requestorsLookup.LookupVariants.FirstOrDefault(p => p.Id == model.IdRequestor.Value)?.ValueVariant : null, Reason = model.IdReason.HasValue ? reasonsLookup.LookupVariants.FirstOrDefault(p => p.Id == model.IdReason.Value)?.ValueVariant : null, EmailOrderShippingType = model.IdEmailOrderShippingType.HasValue ? shippingTypeLookup.LookupVariants.FirstOrDefault(p => p.Id == model.IdEmailOrderShippingType.Value)?.ValueVariant : null, Shipping = new AddressBaseModel() { Company = model.Shipping.Company, FirstName = model.Shipping.FirstName, LastName = model.Shipping.LastName, Address1 = model.Shipping.Address1, Address2 = model.Shipping.Address2, City = model.Shipping.City, County = model.Shipping.County, Country = model.Shipping.Country != null?_countryNameCodeResolver.GetCountryName(model.Shipping.Country.Id) : null, State = model.Shipping.Country != null?_countryNameCodeResolver.GetStateName(model.Shipping.Country.Id, model.Shipping.State) : null, Zip = model.Shipping.Zip, Fax = model.Shipping.Fax, Phone = model.Shipping.Phone, } }; email.DateCreatedDatePart = email.DateCreated.ToString("MM/dd/yyyy"); email.DateCreatedTimePart = email.DateCreated.ToString("hh:mm tt"); email.Skus = model.SkuOrdereds?.Where(p => !string.IsNullOrEmpty(p.Code) && p.QTY.HasValue && p.Price.HasValue).Select(p => new EmailOrderSku() { Code = p.Code, QTY = p.QTY.Value, Price = p.Price.Value }).ToList() ?? new List <EmailOrderSku>(); await _notificationService.SendEmailOrderEmailAsync(email); return(true); }