/// <summary> /// Cập nhật sản phẩm cho thuê /// </summary> /// <param name="Id"></param> /// <returns></returns> public ActionResult UpdateLeaseProduct(int Id) { ViewBag.ActionSubMenu = "Lease"; // Kiểm tra quyền đăng bài Entities.Item role = new Entities.Item(); int result = CheckRolePost(ref role); if (result < 0) { return(Redirect(result)); } Models.ProductModel model = new Models.ProductModel(); if (Id > 0) { Entities.Product e = productService.GetById(Id); model.MapFrom(e, ref model); } else { // set default. model.SellStartDate = DateTime.Now; model.SellEndDate = DateTime.Now.AddMonths(1); model.UserId = int.Parse(CookieHelper.Get(AdminConfigs.COOKIES_USER_ID)); model.UserName = CookieHelper.Get(AdminConfigs.COOKIES_USERNAME); } LoadModel(ref model); // Add list product List <Entities.Product> lstEntity = productService.List(); ViewBag.ListProduct = lstEntity; ViewBag.NumberItem = lstEntity.Count; ViewBag.ActionForm = "UpdateLeaseProduct"; ViewBag.SubmitValue = Id > 0 ? AdminConfigs.BUTTON_UPDATE : AdminConfigs.BUTTON_POST_NEW; return(PartialView("Index", model)); }
public ActionResult UpdateLeaseProduct(int id, Models.ProductModel model, int[] ListRegionNeighbor) { ViewBag.ActionSubMenu = "Lease"; bool isSuccess = false; int newId = 0; // Kiểm tra quyền đăng bài Entities.Item role = new Entities.Item(); int roleId = CheckRolePost(ref role); if (roleId < 0) { Logs.LogWrite("UpdateLeaseProduct Kiểm tra quyền đăng"); return(Redirect(roleId)); } if (ModelState.IsValid) { Entities.Product e = new Entities.Product(); model.Id = id; model.Transaction_Type = (int)Enums.TransactionType.CHO_THUE; // nhà cho thuê model.UserId = int.Parse(CookieHelper.Get(AdminConfigs.COOKIES_USER_ID)); // Chuyển tiền thành triệu. model.StandardCost = StringHelperExtension.MoneyExchange(model.StandardCost); model.MapFrom(model, ref e); if (id <= 0) { e.UpdateBy = e.UserId; // Lấy thông tin username e.UserName = CookieHelper.Get(AdminConfigs.COOKIES_USERNAME); // Lấy thông tin role. e.RoleId = role.Id; e.RoleText = role.Text; } int result = 0; result = productService.Save(e); if (result < 0) { ViewBag.Message = AdminConfigs.MESSAGE_UPDATE_ERROR; ViewBag.AlertClass = AdminConfigs.CLASS_ALERT_DANGER; TempData[AdminConfigs.TEMP_MESSAGE] = AdminConfigs.MESSAGE_UPDATE_ERROR; } else { newId = result; #region Xử lý thêm ảnh vào database Models.ImageConfig[] arrImg = GetAllFileInfo(id, ImageType.PRODUCT_TEMP, e.UserName); if (arrImg.Count() > 0) { string sourceFolder = AdminConfigs.PHYSICAL_PATH + CookieHelper.Get(AdminConfigs.COOKIES_USERNAME).ToLower() + AdminConfigs.DIRSEPARATOR + AdminConfigs.FOLDER_PRODUCT_TEMPS; string targetFolder = AdminConfigs.PHYSICAL_PATH + CookieHelper.Get(AdminConfigs.COOKIES_USERNAME).ToLower() + AdminConfigs.DIRSEPARATOR + AdminConfigs.FOLDER_PRODUCTS; string urlImg = AdminConfigs.IMAGE_PATH + CookieHelper.Get(AdminConfigs.COOKIES_USERNAME).ToLower() + AdminConfigs.ALTDIRECTORYSEPARATORCHAR + AdminConfigs.FOLDER_PRODUCTS + AdminConfigs.ALTDIRECTORYSEPARATORCHAR; string urlImgTemp = AdminConfigs.IMAGE_PATH + CookieHelper.Get(AdminConfigs.COOKIES_USERNAME).ToLower() + AdminConfigs.ALTDIRECTORYSEPARATORCHAR + AdminConfigs.FOLDER_PRODUCT_TEMPS + AdminConfigs.ALTDIRECTORYSEPARATORCHAR; try { // Cập nhật avatar productService.UpdateAvatar(result, arrImg[0].caption, urlImg + AdminConfigs.AVATAR_WIDTH + "_" + AdminConfigs.AVATAR_HEIGHT + AdminConfigs.ALTDIRECTORYSEPARATORCHAR); // Cập nhật tất cả ảnh vào DB Entities.ProductImage pi; foreach (Models.ImageConfig img in arrImg) { pi = new Entities.ProductImage(); pi.ProductId = result; pi.Text = img.caption; pi.Size = img.size; pi.ImageUrl = urlImg; pi.DateUpload = System.DateTime.Now; productService.Insert(pi); FileHelper.CropImage(Server.MapPath(Url.Content(urlImgTemp + img.caption))); } // Xử lý chuyển ảnh từ folder temp sang folder product. FileHelper.MoveFile(sourceFolder, targetFolder); } catch { } } #endregion #region Xử lý cập nhật danh sách Product - Region // Cập nhật vùng cố định. Entities.Product_Region pr; if (id == 0) { pr = new Entities.Product_Region(); // Insert pr.ProductId = result; pr.RegionId = model.regionFixedId; pr.Fixed = true; pr.Status = true; productService.Insert(pr); if (ListRegionNeighbor != null) { foreach (int regionId in ListRegionNeighbor) { pr = new Entities.Product_Region(); pr.ProductId = result; pr.RegionId = regionId; pr.Fixed = false; pr.Status = true; productService.Insert(pr); } } } else { // Update vùng cố định. int regionFixedDB = productService.GetRegionFixed(id); // Nếu đã tồn tại thì kiểm tra sự trùng khớp với regionFixedId if (regionFixedDB > 0) { // Nếu có sự khác thì cập nhật. if (regionFixedDB != model.regionFixedId) { pr = productService.GetProductRegion(id, regionFixedDB); pr.RegionId = model.regionFixedId; productService.Update(pr); } } // Cập nhật vùng lân cận. // 1. Lấy danh sách vùng lân cận theo product ID // 2. So sánh vùng lân cận đã lưu trong DB với vùng lân cận mới // + Nếu trong DB có mà danh sách mới không có thì update Status--> false. // + Nếu trong DB không có thì thêm mới. var listNeighborRegionDB = productService.ListNeighborRegion(id); if (listNeighborRegionDB != null) { foreach (Entities.Item item in listNeighborRegionDB) { if (!ListRegionNeighbor.Contains(item.Id)) { // Update status. pr = productService.GetProductRegion(id, item.Id); pr.Status = false; productService.Update(pr); } } foreach (int regionId in ListRegionNeighbor) { if (!listNeighborRegionDB.Exists(x => x.Id == regionId)) { // Add new pr = new Entities.Product_Region(); pr.ProductId = id; pr.RegionId = regionId; pr.Fixed = false; pr.Status = true; productService.Insert(pr); } else { // Update if status = false. pr = productService.GetProductRegion(id, regionId); if (pr.Status == false) { pr.Status = true; productService.Update(pr); } } } } else { foreach (int regionId in ListRegionNeighbor) { // Add new pr = new Entities.Product_Region(); pr.ProductId = id; pr.RegionId = regionId; pr.Fixed = false; pr.Status = true; productService.Insert(pr); } } } #endregion #region Xử lý gửi mail cho môi giới // Lấy thông tin host. Uri uri = Request.Url; string urlHost = uri.GetLeftPart(UriPartial.Authority); // Link sản phẩm. string link = "<a href='" + urlHost + "/" + AdminConfigs.FRIENDLY_LINK_PRODUCT_DETAIL.ToFriendlyUrl(result, e.Text.ToAlias()) + "'>" + e.Text + "</a>"; ArticleService articleService = new ArticleService(); Entities.Article article = new Entities.Article(); // Danh sách những email cần phải gửi thông tin. List <string> ListEmail = new List <string>(); // Lấy form mail từ bài viết article = articleService.GetByAlias("[email_thong_bao_san_pham_moi]"); // Xử lý các tham số trong mail. // Thay tên người bán article.Body = article.Body.Replace("[user]", e.UserName); // Thay tên sản phẩm article.Title = article.Title.Replace("[product]", e.Text); article.Body = article.Body.Replace("[product]", link); // Lấy danh sách email của các môi giới ListEmail = productService.ListEmailAgency(result); BusinessLayer.Helpers.MailHelper.MailArticle(article, ListEmail); #endregion TempData[AdminConfigs.TEMP_MESSAGE] = AdminConfigs.MESSAGE_UPDATE_SUCCESS; isSuccess = true; } } else { var errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); ViewBag.Message = AdminConfigs.MESSAGE_UPDATE_ERROR; ViewBag.AlertClass = AdminConfigs.CLASS_ALERT_DANGER; } LoadModel(ref model); ViewBag.ActionForm = "UpdateLeaseProduct"; ViewBag.SubmitValue = id > 0 ? AdminConfigs.BUTTON_UPDATE : AdminConfigs.BUTTON_ADD; if (isSuccess) { //return RedirectToAction("Index", new { type = "", page = 1 }); return(RedirectToAction("Detail", "Template1", new { area = "", Id = newId })); } else { return(PartialView("Index", model)); } }