Esempio n. 1
0
        public async Task <ActionResult <Order> > Post(Order order)
        {
            Random random = new Random();

            order.OrderCode          = random.Next(999999);
            order.OrderPlacementDate = DateTime.UtcNow.AddHours(5);
            order.OrderDeliveryDate  = DateTime.UtcNow.AddHours(5);
            _db.Orders.Update(order);

            await _db.SaveChangesAsync();

            foreach (var item in order.OrderItems)
            {
                Product product = await _db.Products.Where(x => x.Id == item.ProductId).FirstOrDefaultAsync();

                product.Quantity = product.Quantity - item.Quantity;
                _db.SaveChangesAsync();
            }
            var User = await _db.Users.Where(x => x.Id == order.UserId).FirstOrDefaultAsync();

            EmailService email = new EmailService(_db);
            SMSService   sms   = new SMSService(_db);

            sms.sendOrderCodeSMS(order.OrderCode, User.Contact_Number);
            email.sendOrderCode(order.OrderCode, User.Email_Address);

            var Riders = await _db.Users.Where(x => x.RoleId == 4 && x.IsDisabled == false && x.IsVerified == true).ToListAsync();

            foreach (var rider in Riders)
            {
                var Message = "New Order is placed. login to kuicksave for details";
                sms.sendMessage(Message, rider.Contact_Number);
            }
            return(CreatedAtAction(nameof(GetSingle), new { id = order.Id }, order));
        }