public MainWindow(IUnitOfWork unitOfWork, IMainRepository <User> userRepository, ITenantRepository <Store> storeRepository)
        {
            //InitializeComponent();
            //var dbLocation = string.Empty;

            //var userCount = userRepository.GetAll().Count();
            //var storeCount = storeRepository.GetAll().Count();
            //if (unitOfWork.ChangeDataBase("Store",@"C:\Users\muthukumara\Documents\TenantDB.db"))
            //{
            //    var newcount = storeRepository.GetAll().Count();
            //}

            var tempUser = BootStrapper.Resolve <IMainRepository <User> >();

            if (tempUser != null)
            {
                userRepository.Add(new User()
                {
                    Name = "Temp" + DateTime.Now
                });
            }
            userRepository.Add(new User()
            {
                Name = DateTime.Now.ToString()
            });
            unitOfWork.Commit();
            //using (var dbUser = new DBuser.USerdbEntities())
            //{
            //    var user = dbUser.Users.FirstOrDefault(u => u.Name == "NR");
            //    if (user != null)
            //    {
            //        dbLocation = user.DBName;
            //    }
            //}

            try
            {
                var connectionString = ConnectionTools.GetConnectionString("TenantDBEntities",
                                                                           dataSource: @"C:\\Users\\muthukumara\\Documents\\SQL_MT\\TenantDB.db");
                //if (dbLocation != string.Empty)
                //{
                //    using (var dbtenant = new DBTenant.TenantDBEntities())
                //    {
                //        dbtenant.Database.Connection.ConnectionString = connectionString;
                //        dbtenant.ChangeDatabase(dataSource: @"C:\\Users\\muthukumara\\Documents\\SQL_MT\\TenantDB.db");
                //        var count = dbtenant.Stores.Count();
                //        dbtenant.ChangeDatabase(dataSource: @"C:\Users\muthukumara\Documents\TenantDB.db");
                //        count = dbtenant.Stores.Count();
                //    }
                //}
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Beispiel #2
0
        public async Task EFTransactionTest()
        {
            using (var tran = _iMainRepository._context.Database.BeginTransaction())
            {
                try
                {
                    Random rd   = new Random();
                    var    main = new Main();
                    main.Id       = rd.Next();
                    main.Name     = $"{DateTime.Now}";
                    main.Telphone = "1111";
                    await _iMainRepository.Add(main);

                    await _iMainRepository.ExecuteSql($"INSERT INTO [dbo].[Main] ([id], [name], [telphone]) VALUES ('{rd.Next()}', 'test', '21')");

                    await _iMainRepository.ExecuteSql($"INSERT INTO [dbo].[Main] ([id], [name], [telphone]) VALUES ('{rd.Next()}', 'test', '21')");

                    await _iMainRepository.ExecuteSql($"INSERT INTO [dbo].[Main] ([id], [name], [telphone]) VALUES ('{rd.Next()}', 'test', '21')");

                    await _iMainRepository.ExecuteSql($"update [dbo].[Main] set name='事务更新测试'");

                    var data = await _iMainRepository.QueryAsNoTracking();//await必须加,不然commit提交之后,上下文就被释放了,这个时候_context.data.where()xxx就报错。无法访问的资源。

                    var test = DateTime.Parse("1111");
                    tran.Commit();
                }
                catch (Exception e)
                {
                    tran.Rollback();
                }
            }
        }
        public async Task <IActionResult> CreateColumn(ColumnForCreateDto columnData)
        {
            var column = _mapper.Map <Column>(columnData);

            _repo.Add(column);
            if (await _repo.SaveAll())
            {
                return(Ok());
            }
            return(BadRequest());
        }
        public async Task <IActionResult> CreateCard(CardForCreateDto cardData)
        {
            var card = _mapper.Map <Card>(cardData);

            _repo.Add(card);
            if (await _repo.SaveAll())
            {
                return(Ok());
            }
            return(BadRequest());
        }
        public async Task <IActionResult> AddValue(ValueToAddDto valueToAddDto)
        {
            var newValue = new Value()
            {
                Name = valueToAddDto.Name
            };

            _repo.Add(newValue);
            if (await _repo.SaveAll())
            {
                return(Ok(newValue));
            }

            return(BadRequest("Error saving new Value"));
        }
        public ActionResult Checkout(CheckoutModel model)
        {
            //kiểm tra giỏ hàng hoặc 1 số ràng buộc mà model không thể check
            var cart = GetCart();

            if (cart.LineCollection.Count() == 0)
            {
                ModelState.AddModelError("", "Giỏ hàng không được để trống");
            }
            //kiểm tra model có hợp lệ hay ko?
            if (ModelState.IsValid)
            {
                //save db
                //customer
                var customer = new Customer()
                {
                    Address      = model.ShipTo,
                    Avatar       = " ",
                    CustomerName = model.FullName,
                    Email        = model.Email,
                    Phone        = model.Phone,
                    ProvinceId   = 1
                };

                _mainRepository.Add(customer);

                //order
                var order = new Order()
                {
                    CustomerId      = customer.CustomerId,
                    OrderDate       = DateTime.Now,
                    PaymentMethodId = model.PaymentMethod,
                    ShipTo          = model.ShipTo,
                    SubTotal        = cart.ComputerTotal()
                };
                _mainRepository.Add(order);

                //order details
                var orderDetails = new List <OrderDetail>();
                foreach (var line in cart.LineCollection)
                {
                    var detail = new OrderDetail()
                    {
                        OrderId   = order.OrderId,
                        Quantity  = line.Quantity,
                        Price     = line.Product.Price,
                        ProductId = line.Product.ProductId
                    };

                    orderDetails.Add(detail);
                }
                _mainRepository.Add(orderDetails);

                //email khách

                string        subject = "Thông báo đặt hàng #" + order.OrderId;
                List <string> cc      = new List <string>()
                {
                    "*****@*****.**"
                };

                StringBuilder sb = new StringBuilder();

                sb.Append($"<h3>Kính chào: {model.FullName}</h3>");
                sb.Append("<p>Đơn hàng của bạn như sau: </p>");

                sb.Append("<table style='border:1px solid #ccc; padding:10px;width:100%'>");
                foreach (var line in cart.LineCollection)
                {
                    sb.Append("<tr>");

                    sb.Append($"<td style='padding:5px'>{line.Product.ProductName}</td>");
                    sb.Append($"<td style='padding:5px'>{line.Product.Price}</td>");
                    sb.Append($"<td style='padding:5px'>{line.Quantity}</td>");
                    sb.Append($"<td style='padding:5px'>{line.Product.Price * line.Quantity}</td>");

                    sb.Append("</tr>");
                }
                sb.Append("</table>");
                sb.Append($"<p>Tổng tiền:<strong>{cart.ComputerTotal()}</strong></p>");
                var pay = _mainRepository.PaymentMethods.FirstOrDefault(x => x.PaymentId == model.PaymentMethod);
                sb.Append($"<p>Hình thức thanh toán: {pay.PaymentName}</p>");
                sb.Append("<p>Nếu có thắc mắc vui lòng liên hệ theo số điện thoại 0914000892</p>");

                var mailSender = new EmailHelper();

                mailSender.Send(model.Email, subject, sb.ToString(), cc);

                //clear
                cart.Clear();
                //lưu thành công thì chuyển về trang thông báo kết quả đặt hàng.
                return(RedirectToAction("Completed"));
            }
            else
            {
                ModelState.AddModelError("", "Vui lòng nhập đủ dữ liệu.");
            }

            //nếu model lỗi, thì hiển thị lại view Checkout
            return(View(model));
        }