Example #1
0
        public IActionResult Create(BannerModel model, IFormFile image)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (model.ID == 0)
                    {
                        #region For Create

                        var banner = _mapper.Map <Banner>(model);
                        if (image != null)
                        {
                            string urlImage = MyTool.UploadImage(image, "wwwroot", "Image", "Sliders");
                            if (!string.IsNullOrEmpty(urlImage))
                            {
                                banner.ImagePath = urlImage;
                            }
                        }

                        db.Banners.Add(banner);
                        db.SaveChanges();

                        #endregion For Create
                        TempData["StatusMessage"] = "Successfully created";
                    }
                    else
                    {
                        #region for edit

                        var bannerEdit = _mapper.Map <Banner>(model);

                        if (image != null)
                        {
                            string urlImage = MyTool.UploadImage(image, "wwwroot", "Image", "Sliders");
                            if (!string.IsNullOrEmpty(urlImage))
                            {
                                bannerEdit.ImagePath = urlImage;
                            }
                        }

                        db.Update(bannerEdit);
                        db.SaveChanges();

                        #endregion for edit
                        TempData["StatusMessage"] = "Successfully updated";
                    }

                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                TempData["StatusMessage"] = ex.Message;

                return(View(model));
            }

            return(View(model));
        }
        public async Task <IActionResult> Login(LoginViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, set lockoutOnFailure: true
                var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    _logger.LogInformation(1, "User logged in.");

                    CustomerInfo customerInfo = _context.CustomerInfos.FirstOrDefault(x => x.UserName == model.UserName);
                    if (customerInfo == null)
                    {
                        var transaction = _context.Database.BeginTransaction();
                        try
                        {
                            customerInfo = new CustomerInfo
                            {
                                UserName = model.UserName,
                                Email    = _context.Users.FirstOrDefault(x => x.UserName == model.UserName).Email,
                            };
                            _context.Add(customerInfo);
                            _context.SaveChanges();
                            transaction.Commit();
                        }
                        catch (Exception ex)
                        {
                            transaction.Rollback();
                        }
                    }

                    return(RedirectToLocal(returnUrl));
                }
                if (result.RequiresTwoFactor)
                {
                    return(RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));
                }
                if (result.IsLockedOut)
                {
                    _logger.LogWarning(2, "User account locked out.");
                    return(View("Lockout"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return(View(model));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public IActionResult Create(SettingModel model, IFormFile avata) //setting upload file
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (model.ID == 0)
                    {
                        #region For Create

                        var entity = _mapper.Map <Setting>(model);
                        db.Settings.Add(entity);
                        db.SaveChanges();

                        #endregion For Create
                        TempData["StatusMessage"] = "Successfully created";
                    }
                    else
                    {
                        #region for edit

                        var entity = db.Settings.Find(model.ID);
                        entity = _mapper.Map(model, entity);

                        db.Update(entity);
                        db.SaveChanges();

                        #endregion for edit
                        TempData["StatusMessage"] = "Successfully updated";
                    }

                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                TempData["StatusMessage"] = ex.Message;
                return(View(model));
            }

            return(View(model));
        }
        public IActionResult Create(WarrantyModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (model.ID == 0)
                    {
                        #region For Create

                        var warranty = _mapper.Map <CT_WarrantyTime>(model);
                        db.CT_WarrantyTimes.Add(warranty);
                        db.SaveChanges();

                        #endregion For Create
                        TempData["StatusMessage"] = "Successfully created";
                    }
                    else
                    {
                        #region for edit

                        var warrantyEdit = _mapper.Map <CT_WarrantyTime>(model);

                        db.Update(warrantyEdit);
                        db.SaveChanges();

                        #endregion for edit
                        TempData["StatusMessage"] = "Successfully updated";
                    }

                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                TempData["StatusMessage"] = ex.Message;

                return(View(model));
            }
            return(View(model));
        }
Example #5
0
        public IActionResult ChangeUserInfo(CustomerInfoModel model)
        {
            var customerInfor = _mapper.Map <CustomerInfo>(model);
            var transaction   = _context.Database.BeginTransaction();

            try
            {
                _context.Update(customerInfor);
                _context.SaveChanges();
                transaction.Commit();
            }
            catch (System.Exception)
            {
                transaction.Rollback();
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult Create(ProductModel model, IFormFile Avatar, List <IFormFile> DetailImages, string PropertyJsonString)
        {
            try
            {
                string wwwPath     = _env.WebRootPath;
                string contentPath = _env.ContentRootPath;

                string AvatarPath      = Path.Combine(this._env.WebRootPath, "Image", "Products");
                string DetailImagePath = Path.Combine(this._env.WebRootPath, "Image", "Products", "Details");

                if (!Directory.Exists(DetailImagePath))
                {
                    Directory.CreateDirectory(DetailImagePath);
                }
                if (!Directory.Exists(AvatarPath))
                {
                    Directory.CreateDirectory(AvatarPath);
                }
                List <ProductColorSize> PropertyList = JsonConvert.DeserializeObject <List <ProductColorSize> >(PropertyJsonString);

                if (ModelState.IsValid)
                {
                    string fileNameAvata = "";
                    if (Avatar != null)
                    {
                        fileNameAvata = Path.GetFileName(Avatar.FileName);
                        using (FileStream stream = new FileStream(Path.Combine(AvatarPath, fileNameAvata), FileMode.Create))
                        {
                            Avatar.CopyTo(stream);
                        }
                    }

                    if (model.ID == 0)
                    {
                        #region For Create

                        var product = _mapper.Map <Product>(model);

                        if (!string.IsNullOrEmpty(fileNameAvata))
                        {
                            product.ImagePath = fileNameAvata;
                        }
                        db.Products.Add(product);
                        db.SaveChanges();
                        if (PropertyList != null)
                        {
                            foreach (var item in PropertyList)
                            {
                                item.ProductID   = product.ID;
                                item.ProductName = db.Products.Find(product.ID).ProductName;
                                item.NameColor   = db.CT_Colors.SingleOrDefault(x => x.ColorId == item.ColorId).Name;

                                db.ProductColorSizes.Add(item);
                            }
                            db.SaveChanges();
                        }

                        #endregion For Create

                        #region Upload detail image and save to db

                        foreach (var item in DetailImages)
                        {
                            var fileNameTemp = Path.GetFileName(item.FileName);
                            using (FileStream stream = new FileStream(Path.Combine(DetailImagePath, fileNameTemp), FileMode.Create))
                            {
                                item.CopyTo(stream);
                            }
                            if (!string.IsNullOrEmpty(item.FileName))
                            {
                                Image DetailImage = new Image();
                                DetailImage.ImagePath   = item.FileName;
                                DetailImage.ReferenceId = product.ID;
                                DetailImage.Type        = "Product";
                                DetailImage.IsShow      = true;
                                db.Images.Add(DetailImage);
                                db.SaveChanges();
                            }
                        }

                        #endregion Upload detail image and save to db
                        TempData["StatusMessage"] = "Successfully created";
                    }
                    else
                    {
                        #region for edit

                        var product = db.Products.Find(model.ID);

                        product = _mapper.Map(model, product);

                        if (!string.IsNullOrEmpty(fileNameAvata))
                        {
                            product.ImagePath = fileNameAvata;
                        }

                        db.Update(product);
                        db.SaveChanges();
                        if (PropertyList != null)
                        {
                            foreach (var item in PropertyList)
                            {
                                item.ProductID   = model.ID;
                                item.ProductName = db.Products.Find(model.ID).ProductName;
                                item.NameColor   = db.CT_Colors.SingleOrDefault(x => x.ColorId == item.ColorId).Name;
                                if (item.Id == 0)
                                {
                                    db.ProductColorSizes.Add(item);
                                }
                                else
                                {
                                    db.ProductColorSizes.Update(item);
                                }
                            }
                            db.SaveChanges();
                        }

                        #endregion for edit

                        #region Upload detail image and save to db

                        foreach (var item in DetailImages)
                        {
                            var fileNameTemp = Path.GetFileName(item.FileName);
                            using (FileStream stream = new FileStream(Path.Combine(DetailImagePath, fileNameTemp), FileMode.Create))
                            {
                                item.CopyTo(stream);
                            }
                            if (!string.IsNullOrEmpty(item.FileName))
                            {
                                Image DetailImage = new Image();
                                DetailImage.ImagePath   = item.FileName;
                                DetailImage.ReferenceId = product.ID;
                                DetailImage.Type        = "Product";
                                DetailImage.IsShow      = true;
                                db.Images.Add(DetailImage);
                                db.SaveChanges();
                            }
                        }

                        #endregion Upload detail image and save to db
                        TempData["StatusMessage"] = "Successfully updated";
                    }

                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                ViewBag.ColorList = db.CT_Colors.Where(x => x.Active == true).ToList();

                #region Load category for dropdownlist

                List <Category> categoryList = db.Categories.ToList();
                model.CategoryList = new List <SelectListItem>();

                var temp = new SelectListItem();

                temp.Text  = "----Assign category of product----";
                temp.Value = "0";
                model.CategoryList.Add(temp);
                BindTree(categoryList, null, model.CategoryList);

                #endregion Load category for dropdownlist

                TempData["StatusMessage"] = ex.Message;
                return(View(model));
            }

            return(View(model));
        }
        public IActionResult ToOrder(CustomerInfoModel model)
        {
            //Get cart from Session
            var cart = HttpContext.Session.GetString("cart");

            if (cart == null)
            {
                return(View("ErrorOrder"));
            }

            List <CartModel> dataCart = JsonConvert.DeserializeObject <List <CartModel> >(cart);

            if (ModelState.IsValid)
            {
                //Get info of customer
                var customerinfor = _db.CustomerInfos.Where(x => x.UserName == this.User.Identity.Name).FirstOrDefault();
                //CustomerInfoModel contains order infomation
                if (customerinfor != null)
                {
                    customerinfor.FullName    = model.FullName;
                    customerinfor.Address     = model.Address;
                    customerinfor.PhoneNumber = model.PhoneNumber;
                    customerinfor.ProvinceID  = model.ProvinceID;
                    customerinfor.DistrictID  = model.DistrictID;
                    customerinfor.WardID      = model.WardID;
                    customerinfor.Note        = model.Note;
                    //save modified informations to database
                    _db.SaveChanges();
                }

                //Create order
                var OrdersModel = new Order();
                if (model.UserName == null)
                {
                    OrdersModel.UserName = "******";
                }
                else
                {
                    OrdersModel.UserName = model.UserName;
                }
                OrdersModel.FullName    = model.FullName;
                OrdersModel.Address     = model.Address;
                OrdersModel.PhoneNumber = model.PhoneNumber;
                OrdersModel.ProvinceID  = model.ProvinceID;
                OrdersModel.DistrictID  = model.DistrictID;
                OrdersModel.WardID      = model.WardID;
                OrdersModel.OrderDate   = DateTime.Now;
                OrdersModel.Total       = model.Total;
                OrdersModel.ShipFee     = model.ShipFee;

                _db.Orders.Add(OrdersModel);

                _db.SaveChanges();

                for (int i = 0; i < dataCart.Count; i++)
                {
                    var OrdersDetailModel = new OrderDetail();

                    OrdersDetailModel.OrderId     = OrdersModel.OrderId;
                    OrdersDetailModel.ProductId   = dataCart[i].Product.ID;
                    OrdersDetailModel.ProductName = dataCart[i].Product.ProductName;
                    OrdersDetailModel.Quantity    = dataCart[i].Quantity;
                    OrdersDetailModel.UnitPrice   = dataCart[i].DetailProduct.UnitPriceNew;
                    OrdersDetailModel.ColorSize   = dataCart[i].DetailProduct.NameColor;
                    _db.OrderDetails.Add(OrdersDetailModel);
                }

                _db.SaveChanges();

                //Send Email if login

                #region Email

                if (customerinfor != null)
                {
                    if (!string.IsNullOrEmpty(customerinfor.Email))
                    {
                        var    mailRequest   = new MailRequest();
                        string OrderIDFormat = OrdersModel.OrderId.ToString("#00000000");
                        mailRequest.ToEmail = customerinfor.Email; //get user email
                        mailRequest.Subject = $"Order Confirmation #{OrderIDFormat} - Estore247";
                        mailRequest.Body    = "";

                        var orderDetails = _db.OrderDetails.Where(x => x.OrderId == OrdersModel.OrderId).ToList();

                        var bodyorderdetail = CreatOderDetailHTML(orderDetails, OrdersModel.Total.Value, OrdersModel.ShipFee.Value);

                        string ward = _db.CT_Wards.Where(m => m.ID == OrdersModel.WardID)
                                      .Select(m => m.Name)
                                      .FirstOrDefault();
                        string district = _db.CT_Districts.Where(m => m.ID == OrdersModel.DistrictID)
                                          .Select(m => m.Name)
                                          .FirstOrDefault();
                        string province = _db.CT_Provinces.Where(m => m.ID == OrdersModel.ProvinceID)
                                          .Select(m => m.Name)
                                          .FirstOrDefault();

                        string address = OrdersModel.Address + ", " + ward + ", " + district + ", " + province;

                        // Read file template html
                        var webRoot = _env.WebRootPath;

                        string pathToFile = Path.Combine(this._env.WebRootPath, "Template")
                                            + Path.DirectorySeparatorChar.ToString()
                                            + "EmailOrder.html";

                        var builder = new BodyBuilder();
                        using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
                        {
                            builder.HtmlBody = SourceReader.ReadToEnd();
                        }
                        //Render order ID: 10 --> #0000010
                        mailRequest.Body = string.Format(builder.HtmlBody,
                                                         OrdersModel.FullName,
                                                         "#" + (OrdersModel.OrderId.ToString("#00000000")),
                                                         string.Format("{0:dd/MM/yyyy hh:mm:ss tt}", OrdersModel.OrderDate),
                                                         address
                                                         , OrdersModel.PhoneNumber
                                                         , bodyorderdetail);

                        mailService.SendEmailAsync(mailRequest);
                    }
                }

                #endregion Email

                //Clear Cart session
                HttpContext.Session.Remove("cart");
                return(RedirectToAction("ToOrder"));
            }
            return(View("ErrorOrder"));
        }
Example #8
0
        public IActionResult Create(CategoryModel model, IFormFile image)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (model.ID == 0)
                    {
                        #region For Create

                        var category = _mapper.Map <Category>(model);
                        if (image != null)
                        {
                            string urlImage = MyTool.UploadImage(image, "wwwroot", "Image", "Categories");
                            if (!string.IsNullOrEmpty(urlImage))
                            {
                                category.Image = urlImage;
                            }
                        }

                        db.Categories.Add(category);
                        db.SaveChanges();

                        #endregion For Create
                        TempData["StatusMessage"] = "Successfully created";
                    }
                    else
                    {
                        #region for edit

                        //var categoryEdit = db.Categories.SingleOrDefault(x=> x.ID == model.ID);
                        //Require make a new instane of Category ty
                        var categoryEdit = _mapper.Map <Category>(model);
                        //categoryEdit = _mapper.Map(model, categoryEdit);
                        if (image != null)
                        {
                            string urlImage = MyTool.UploadImage(image, "wwwroot", "Image", "Categories");
                            if (!string.IsNullOrEmpty(urlImage))
                            {
                                categoryEdit.Image = urlImage;
                            }
                        }

                        db.Update(categoryEdit);
                        db.SaveChanges();

                        #endregion for edit
                        TempData["StatusMessage"] = "Successfully updated";
                    }

                    return(RedirectToAction("Index"));
                }
            }
            catch (Exception ex)
            {
                TempData["StatusMessage"] = ex.Message;

                #region Load category for dropdownlist

                List <Category> cateList = db.Categories.ToList();
                model.LstParentCategory = new List <SelectListItem>();

                var tempItem = new SelectListItem();

                tempItem.Text  = "----Assign parent category role----";
                tempItem.Value = "0";
                model.LstParentCategory.Add(tempItem);
                BindTree(cateList, null, model.LstParentCategory);

                #endregion Load category for dropdownlist

                return(View(model));
            }

            #region Load category for dropdownlist

            List <Category> categoryList = db.Categories.ToList();
            model.LstParentCategory = new List <SelectListItem>();

            var temp = new SelectListItem();

            temp.Text  = "----Assign parent category role----";
            temp.Value = "0";
            model.LstParentCategory.Add(temp);
            BindTree(categoryList, null, model.LstParentCategory);

            #endregion Load category for dropdownlist

            return(View(model));
        }