Ejemplo n.º 1
0
        public void Create(AddCustomerQueryRequest request)
        {
            
            var shopContext = new ShopContext("Shop");
            var customer = shopContext.Customers.Add(request.Customer);
            customer.CustomerProductQueries = new List<CustomerProductQuery>();
            foreach (var productId in request.ProductIds)
            {
                customer.CustomerProductQueries.Add(new CustomerProductQuery() { ProductId = productId });
            }

            shopContext.SaveChanges();

            // send email to sales team - in reality would refactor out to a seperate service - more of these settings should probably go in config
            SmtpClient client = new SmtpClient(ConfigurationManager.AppSettings["SmtpServer"]);
            client.Credentials = new NetworkCredential("username", "password");
            MailMessage mailMessage = new MailMessage();
            mailMessage.From = new MailAddress("*****@*****.**");
            mailMessage.To.Add("*****@*****.**");
            var productNames = shopContext.Products.Where(p => request.ProductIds.Contains(p.Id)).Select(p => p.Name);
            mailMessage.Body =
                $"Customer {customer.FirstName} {customer.LastName} has a price query about Product Ids {string.Join(",", productNames)}";
            mailMessage.Subject = "subject";
            try
            {
                client.Send(mailMessage);
            }
            catch (Exception)
            {
                //dont allow email error to cause issue to user
                //log email error here
            }


        }
Ejemplo n.º 2
0
 // GET api/products
 public IEnumerable<Product> Get()
 {
     var shopContext = new ShopContext("Shop");
     var products = shopContext.Products;
     return products;
 }