private void SendCartEmail(CartContactModel cartContactModel) { var sendgrid = _context.ApiKey.Find(1); var sendGridClient = new SendGridClient(sendgrid.ApiKey1); var myMessage = new SendGridMessage(); //myMessage.AddTo("*****@*****.**"); //myMessage.AddTo(cartContactModel.ContactModel.Email); myMessage.From = new EmailAddress("*****@*****.**", "LuxeDreamEventHire"); myMessage.SetTemplateId("d-8b50f89729a24c0590fcee9ef8bee1fe"); var contactDetail = cartContactModel.ContactModel; var cartDetail = cartContactModel.CartModel; //return Ok(cartDetail.CartProd; //var cartProds = ""; //foreach (var cart in cartDetail.CartProd) //{ // cartProds = cartProds + cart.Quantity + " of " + " " + cart.Title + "\r\n"; //} myMessage.SetTemplateData(new { FirstName = contactDetail.FirstName, LastName = contactDetail.LastName, PlannedTime = cartDetail.PlannedTime.ToString("D"), Email = contactDetail.Email, PhoneNum = contactDetail.PhoneNum, //cartProds = cartProds, cartProds = cartDetail.CartProd, Message = contactDetail.Message }); sendGridClient.SendEmailAsync(myMessage); }
public async Task <ActionResult <Cart> > PostCart(int id, CartContactModel cartContactModel) { var result = new Result <Cart>(); try { SendCartEmail(cartContactModel); } catch (Exception e) { result.ErrorMessage = $@"Sending Email Failed, {e.Message}"; result.IsSuccess = false; return(BadRequest(result)); } Contact contact = new Contact(); _mapper.Map(cartContactModel.ContactModel, contact); try { await _context.Contact.AddAsync(contact); await _context.SaveChangesAsync(); } catch (Exception e) { result.ErrorMessage = e.Message; result.IsSuccess = false; return(BadRequest(result)); } Cart cart = new Cart(); _mapper.Map(cartContactModel.CartModel, cart); cart.CreateOn = DateTime.Now; cart.IsActivate = 1; cart.ContactId = contact.ContactId; cart.UserId = id; try { await _context.Cart.AddAsync(cart); await _context.SaveChangesAsync(); } catch (Exception e) { result.ErrorMessage = e.Message; result.IsFound = false; return(BadRequest(result)); } cartContactModel.ProductTimetableModel.ToList().ForEach(s => { _context.ProductTimetable.Add(new ProductTimetable { ProdDetailId = s.ProdDetailId, ProdId = s.ProdId, BeginDate = s.BeginDate, EndDate = s.EndDate, Quantity = s.Quantity, CartId = cart.CartId, }); }); try { await _context.SaveChangesAsync(); } catch (Exception e) { result.ErrorMessage = e.Message; result.IsSuccess = false; return(BadRequest(result)); } return(Ok(result)); }
public async Task <ActionResult <Cart> > PostCart(int id, CartContactModel cartContactModel) { var result = new Result <Cart>(); try { //SendCartEmail(cartContactModel); } catch (Exception e) { result.ErrorMessage = $@"Sending Email Failed, {e.Message}"; result.IsSuccess = false; return(BadRequest(result)); } Contact contact = new Contact(); _mapper.Map(cartContactModel.ContactModel, contact); try { await _context.Contact.AddAsync(contact); await _context.SaveChangesAsync(); } catch (Exception e) { result.ErrorMessage = e.Message; result.IsSuccess = false; return(BadRequest(result)); } Cart cart = new Cart(); _mapper.Map(cartContactModel.CartModel, cart); cart.CreateOn = toNZTimezone(DateTime.UtcNow); cart.IsActivate = 1; cart.IsPay = 0; cart.IsEmailSend = 0; cart.ContactId = contact.ContactId; cart.Location = cartContactModel.CartModel.Location; cart.Price = cartContactModel.CartModel.Price; cart.SavedAmount = cartContactModel.CartModel.SavedAmount; //cart.RentalPaidFee = cartContactModel.CartModel.Price * 0.50m; cart.RentalPaidFee = 0; cart.DepositPaidFee = 0; cart.EventStartDate = cartContactModel.CartModel.EventStartDate; cart.EventEndDate = cartContactModel.CartModel.EventEndDate; cart.IsPickup = cartContactModel.CartModel.IsPickup; cart.Region = cartContactModel.CartModel.Region; cart.UserId = id; cart.IsExpired = 0; cart.TradingTime = cartContactModel.CartModel.TradingTime; cart.TradingTime = cartContactModel.CartModel.ReturnTime; cart.Coupon = cartContactModel.CartModel.Coupon; try { await _context.Cart.AddAsync(cart); await _context.SaveChangesAsync(); } catch (Exception e) { result.ErrorMessage = e.Message; result.IsFound = false; return(BadRequest(result)); } cartContactModel.CartModel.CartProd.Where(cp => cp.SaleProdId != null).ToList().ForEach(p => { SaleProduct saleProd = _context.SaleProducts.Where(sp => sp.SaleProdId == p.SaleProdId).FirstOrDefault(); saleProd.AvailableStock -= p.Quantity; }); cartContactModel.ProductTimetableModel.ToList().ForEach(s => { _context.ProductTimetable.Add(new ProductTimetable { ProdDetailId = s.ProdDetailId, ProdId = s.ProdId, BeginDate = s.BeginDate, EndDate = s.EndDate, Quantity = s.Quantity, CartId = cart.CartId, IsActive = 1, }); }); try { await _context.SaveChangesAsync(); } catch (Exception e) { result.ErrorMessage = e.Message; result.IsSuccess = false; return(BadRequest(result)); } if (cart.Coupon != "") { Popup popup = await _context.Popups.Where(x => x.Coupon == cart.Coupon).FirstOrDefaultAsync(); if (null == popup) { result.ErrorMessage = "Coupon not exist."; result.IsSuccess = false; return(BadRequest(result)); } if (popup.IsValid == 0) { result.IsSuccess = false; result.ErrorMessage = "This coupon is expired."; return(BadRequest(result)); } try { popup.IsValid = 0; _context.Popups.Update(popup); await _context.SaveChangesAsync(); } catch (Exception e) { result.ErrorMessage = e.Message; result.IsSuccess = false; return(BadRequest(result)); } } result.Data = cart; return(Ok(result)); }