예제 #1
0
        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);
        }
예제 #2
0
        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));
        }
예제 #3
0
        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));
        }