public static bool MailArticle(Entities.Article a, string listEmail) { Entities.EmailQueue email = new Entities.EmailQueue(); string body = a.Body; body += Sign; email.Subject = a.Title; email.Body = body; email.SendTo = ""; email.Bcc = listEmail; email.isFinish = false; try { if (!SendEmail.SendMail(email)) { return(false); } } catch (Exception ex) { string data = className + ex.Message.ToString(); Logs.LogWrite(string.Format(Configs.ERROR_ACTION, data)); return(false); } return(true); }
public void UpdateArticle(Entities.Article article, List <int> categoryIds) { var count = _articleRepository.GetCount(a => a.Title == article.Title && a.Id != article.Id); if (count > 0) { throw new InvalidOperationException("Title Already Exists"); } _articleRepository.Update(article); var response = _articleRepository.GetList(a => a.Title == article.Title); if (response.Count > 0) { foreach (var categoryId in categoryIds) { var articleCategory = new ArticleCategory { CategoryId = categoryId, ArticleId = response[0].Id }; _articleCategoryRepository.Insert(articleCategory); } } }
public void DeleteArticle(Entities.Article article) { article.IsActive = false; article.IsDeleted = true; article.UpdateDate = DateTime.UtcNow; _articleRepository.Update(article); }
public static ArticleIdSlugAndTitle Build(Entities.Article article) { return(new ArticleIdSlugAndTitle { Id = article.Id, Title = article.Title, Slug = article.Slug, }); }
public void SaveArticle(Entities.Article entity) { // Пометка, что это - новая статья (текст) if (entity.Id == default) { _context.Entry(entity).State = EntityState.Added; } else { _context.Entry(entity).State = EntityState.Modified; } _context.SaveChanges(); }
public static ArticleSummaryDto Build(Entities.Article article) { return(new ArticleSummaryDto { Id = article.Id, Title = article.Title, Slug = article.Slug, Description = article.Description, CommentsCount = article.CommentsCount, Categories = CategoryOnlyNameDto.BuildAsStringList(article.ArticleCategories), User = UserBasicEmbeddedInfoDto.Build(article.User), Tags = TagOnlyNameDto.BuildAsStringList(article.ArticlesTags), PublishAt = article.PublishedOn, UpdatedAt = article.UpdatedAt }); }
public AjaxResult add(Entities.Article entity) { try { entity.CreateTime = DateTime.Now; Repository <ArticleRepositories>().AddSingle(entity); return(new AjaxResult() { status = true, message = "新增成功" }); } catch (Exception ex) { return(new AjaxResult() { status = false, message = "新增失败:" + ex.Message }); } }
/// <summary> /// Creates a new article on the given blog. /// </summary> /// <param name="blogId">The blog that the article will belong to.</param> /// <param name="article">The article being created. Id should be null.</param> /// <param name="metafields">Optional metafield data that can be returned by the <see cref="MetaFieldService"/>.</param> /// <param name="cancellationToken">Cancellation Token</param> public virtual async Task <Entities.Article> CreateAsync(long blogId, Entities.Article article, IEnumerable <Entities.MetaField> metafields = null, CancellationToken cancellationToken = default) { var req = PrepareRequest($"blogs/{blogId}/articles.json"); var body = article.ToDictionary(); if (metafields != null) { body.Add("metafields", metafields); } var content = new JsonContent(new { article = body }); var response = await ExecuteRequestAsync <Entities.Article>(req, HttpMethod.Post, cancellationToken, content, "article"); return(response.Result); }
public AjaxResult edit(Entities.Article entity) { try { //这里更新要注意,如果页面上没有保持所有字段的值,那么这里应该先从数据库获取对象,在更新这个对象的相应的值, entity.LastUpdated = DateTime.Now; Repository <ArticleRepositories>().UpdateSingle(entity); Repository <ArticleRepositories>().RepositoryContext.SaveChanges(); return(new AjaxResult() { status = true, message = "修改成功" }); } catch (Exception ex) { return(new AjaxResult() { status = false, message = "修改失败:" + ex.Message }); } }
public static ArticleDetailsDto Build(Entities.Article article) { var commentDtos = new List <CommentDetailsDto>(); foreach (var comment in article.Comments) { commentDtos.Add(CommentDetailsDto.Build(comment)); } return(new ArticleDetailsDto { Id = article.Id, Slug = article.Slug, Title = article.Slug, Body = article.Body, PublishedAt = article.PublishedOn, Comments = commentDtos, User = UserBasicEmbeddedInfoDto.Build(article.User), Tags = TagOnlyNameDto.BuildAsStringList(article.ArticlesTags), Categories = CategoryOnlyNameDto.BuildAsStringList(article.ArticleCategories), }); }
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)); } }
public JsonResult DoChangeCost(int productId, long money) { SelectListItem item = new SelectListItem(); int userId = 0; // UserId // Kiểm tra đăng nhập if (CookieHelper.Get(AdminConfigs.COOKIES_USER_ID) == null) { item.Text = AdminConfigs.ERROR_NOT_LOGIN; item.Value = ((int)Errors.NOT_LOGIN).ToString(); return(Json(item)); } else { userId = int.Parse(CookieHelper.Get(AdminConfigs.COOKIES_USER_ID)); } Entities.Product product = _service.GetById(productId); UserService _userService = new UserService(); // Người đăng nhập Entities.User user = _userService.GetById(userId); // Đổi số tiền sang đơn vị triệu money = StringHelperExtension.MoneyExchange(money); // Kiểm tra số lần đổi giá. // Kiểm tra số tiền nhập vào. // Số tiền phải nhỏ hơn giá hiện tại // Lớn hơn 1/10 giá trị ngôi nhà. item = CheckInputCost(_service, product, money); if (int.Parse(item.Value) < 0) { TempData[AdminConfigs.TEMP_MESSAGE] = AdminConfigs.MESSAGE_UPDATE_ERROR; return(Json(item)); } // Lấy thông tin thay đổi giá Entities.Product_ChangeCost productChangeCost = new Entities.Product_ChangeCost(); productChangeCost.ProductId = productId; productChangeCost.UserId = userId; productChangeCost.UserName = user.UserName; productChangeCost.PhoneNumber = user.Phone; productChangeCost.Cost = money; // Lấy danh sách những người đang theo dõi ngoại trừ người thực hiện thao tác này. List <int> ListUserIdFollow = _service.ListUserIdProductFollow(productId); ListUserIdFollow.Remove(userId); // Danh sách những email cần phải gửi thông tin. List <string> ListEmail = new List <string>(); // Lấy thông tin lần cập nhật cuối cùng Entities.Product_ChangeCost lastChangeCost = _service.GetLastChangeCost(productId, productChangeCost.UserId); int result = _service.UpdateProductChangeCost(productChangeCost); if (result < 0) { item = new SelectListItem(); item.Text = AdminConfigs.ERROR_PRODUCT_NOT_KNOW; item.Value = ((int)ProductCase.NO).ToString(); } else { // Chuyển thành trạng thái theo dõi. _service.ChangeFollow(productChangeCost.ProductId, productChangeCost.UserId, true); // 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(product.Id, product.Text.ToAlias()) + "'>" + product.Text + "</a>"; ArticleService articleService = new ArticleService(); Entities.Article article = new Entities.Article(); // Cập nhật vào bảng sản phẩm trong trường hợp chính chủ. if (product.UserId == userId) { product.UpdateCost = money; product.UpdateBy = userId; result = _service.UpdateCost(product); Entities.ProductMessage message = new Entities.ProductMessage(); if (result > 0) { // Lấy danh sách những người đã đặt giá List <Entities.Product_ChangeCost> lstChangeCost = _service.GetListProductChangeCost(product.Id, product.UserId, 10000); if (lstChangeCost.Count > 0) { foreach (var obj in lstChangeCost) { // Nếu giá của người muốn mua > giá muốn bán thì sẽ cập nhật vào bảng muốn bán sản phẩm if (obj.Cost >= product.UpdateCost) { Entities.Product_WantSell pws = new Entities.Product_WantSell(); pws.ProductId = product.Id; pws.Text = product.Text; pws.CostSell = (int)product.UpdateCost; pws.BuyerId = obj.UserId; pws.CostBuy = (int)obj.Cost; pws.UpdateTime = DateTime.Now; pws.Times = 1; pws.IsChecked = false; _service.InsertProductWantSell(pws); // Cập nhật vào bảng thông báo cho người này message = new Entities.ProductMessage(); message.ProductId = product.Id; message.ProductText = product.Text; message.Read_Flag = false; message.Delete_Flag = false; message.CreateDate = DateTime.Now; message.From = product.UserId; message.To = obj.UserId; // người bán [user] muốn bán sản phẩm [product] cho bạn. Hãy gọi điện tới số [phone] để có thể mua sản phẩm này" message.Content = string.Format(AdminConfigs.MESSAGE_PRODUCT_04); _service.Insert(message); #region Gửi mail cho những người liên quan. // Lấy form mail từ bài viết article = articleService.GetByAlias("[email_thong_bao_muon_ban_san_pham]"); // Xử lý các tham số trong mail. // Thay tên người bán article.Body = article.Body.Replace("[user]", user.UserName); // Thay tên sản phẩm article.Title = article.Title.Replace("[product]", product.Text); article.Body = article.Body.Replace("[product]", link); // Lấy số phone người bán article.Body = article.Body.Replace("[phone]", user.Phone); // Lấy email của người mua. ListEmail = new List <string>(); ListEmail.Add(obj.Email); var temp = _service.ListEmailAgency(product.Id); if (temp.Count > 0) { ListEmail.AddRange(temp); } BusinessLayer.Helpers.MailHelper.MailArticle(article, ListEmail); #endregion } else { // Cập nhật vào danh sách những người cần được thông báo if (!ListUserIdFollow.Contains(obj.UserId)) { ListUserIdFollow.Add(obj.UserId); } } } } } // Cập nhật thông báo cho những người đang theo dõi & những người đã đặt giá. message = new Entities.ProductMessage(); message.ProductId = product.Id; message.ProductText = product.Text; message.Read_Flag = false; message.Delete_Flag = false; message.CreateDate = DateTime.Now; message.From = product.UserId; //message.To = obj.UserId; // người bán [user] đã thay đổi giá bán sản phẩm [product] thành {0}"; message.Content = string.Format(AdminConfigs.MESSAGE_PRODUCT_03, money.MoneyFormat()); _service.InsertList(message, ListUserIdFollow); //_service.Insert(message); #region Gửi mail cho những người liên quan. // Lấy form mail từ bài viết article = articleService.GetByAlias("[email_thong_bao_sua_gia_ban]"); // Xử lý các tham số trong mail. // Thay số tiền article.Body = article.Body.Replace("[gia_ban_moi]", money.MoneyFormat()); // Thay tên người bán article.Body = article.Body.Replace("[user]", user.UserName); // Thay tên sản phẩm article.Title = article.Title.Replace("[product]", product.Text); article.Body = article.Body.Replace("[product]", link); // Lấy danh sách email những người đang theo dõi. ListEmail = new List <string>(); ListEmail = _service.ListUserEmailFollow(product.Id, userId); // Lấy danh sách email của các môi giới var temp2 = _service.ListEmailAgency(product.Id); if (temp2.Count > 0) { ListEmail.AddRange(temp2); } BusinessLayer.Helpers.MailHelper.MailArticle(article, ListEmail); #endregion } else { Entities.ProductMessage message = new Entities.ProductMessage(); message.ProductId = product.Id; message.ProductText = product.Text; message.Read_Flag = false; message.Delete_Flag = false; message.CreateDate = DateTime.Now; message.From = productChangeCost.UserId; //message.To = product.UserId; if (!ListUserIdFollow.Contains(product.UserId)) { ListUserIdFollow.Add(product.UserId); } if (lastChangeCost != null) { // người mua [user] đã thay đổi giá mua sản phẩm [product] từ {0} thành {1}"; message.Content = string.Format(AdminConfigs.MESSAGE_PRODUCT_02, lastChangeCost.Cost.MoneyFormat(), money.MoneyFormat()); _service.InsertList(message, ListUserIdFollow); #region Gửi mail cho những người liên quan. // Lấy form mail từ bài viết article = articleService.GetByAlias("[email_thong_bao_sua_gia_mua]"); // Xử lý các tham số trong mail. // Thay số tiền article.Body = article.Body.Replace("[gia_cu]", lastChangeCost.Cost.MoneyFormat()); article.Body = article.Body.Replace("[gia_moi]", money.MoneyFormat()); // Thay tên người mua article.Body = article.Body.Replace("[user]", user.UserName); // Thay tên sản phẩm article.Title = article.Title.Replace("[product]", product.Text); article.Body = article.Body.Replace("[product]", link); // Lấy danh sách những người đang theo dõi sản phẩm ListEmail = new List <string>(); ListEmail = _service.ListUserEmailFollow(product.Id, userId); // Lấy email người bán sản phẩm. string email = _service.GetEmailByProductId(product.Id); ListEmail.Add(email); // Lấy danh sách email của các môi giới var temp = _service.ListEmailAgency(product.Id); if (temp.Count > 0) { ListEmail.AddRange(temp); } BusinessLayer.Helpers.MailHelper.MailArticle(article, ListEmail); #endregion } else { // người mua [user] đã đặt mua sản phẩm [product] với giá {0}"; message.Content = string.Format(AdminConfigs.MESSAGE_PRODUCT_01, money.MoneyFormat()); _service.InsertList(message, ListUserIdFollow); #region Gửi mail cho những người liên quan. // Lấy form mail từ bài viết article = articleService.GetByAlias("[email_thong_bao_dat_gia_mua]"); // Xử lý các tham số trong mail. // Thay số tiền article.Body = article.Body.Replace("[gia_mua]", money.MoneyFormat()); // Thay tên người mua article.Body = article.Body.Replace("[user]", user.UserName); // Thay tên sản phẩm article.Title = article.Title.Replace("[product]", product.Text); article.Body = article.Body.Replace("[product]", link); // Lấy email người bán sản phẩm. ListEmail = new List <string>(); string email = _service.GetEmailByProductId(product.Id); ListEmail.Add(email); // Lấy danh sách email của các môi giới var temp = _service.ListEmailAgency(product.Id); if (temp.Count > 0) { ListEmail.AddRange(temp); } if (temp.Count > 0) { ListEmail.AddRange(temp); } BusinessLayer.Helpers.MailHelper.MailArticle(article, ListEmail); #endregion } } TempData[AdminConfigs.TEMP_MESSAGE] = AdminConfigs.MESSAGE_UPDATE_SUCCESS; item.Text = AdminConfigs.MESSAGE_PRODUCT_ORDER_OK; item.Value = "1"; } return(Json(item)); }
public void UpdateSingle(Entities.Article article) { Repository <ArticleRepositories>().UpdateSingle(article); }
public void AddSingle(Entities.Article article) { Repository <ArticleRepositories>().AddSingle(article); }
public void CreateArticle(Entities.Article article) { unitOfWork.Articles.Create(article); }