/// <summary> /// 新增或者编辑文章发布 /// </summary> /// <param name="id">要编辑的文章发布ID</param> /// <returns></returns> public ActionResult ArtPublishAddOrEdit(Guid? id) { MallArtPublish oMallArtPublish = new MallArtPublish(); //新建文章发布 if (id.Equals(Guid.Empty) || id == null) { //若为超级管理员则有权限读取所有文章、渠道、文章位子 if (CurrentSession.IsAdmin == true) { //文章选择下拉框 var oArticleList = (from o in dbEntity.MallArticles where (o.Deleted == false) select o).ToList(); List<SelectListItem> ArticleList = new List<SelectListItem>(); foreach (var item in oArticleList) { SelectListItem aitem = new SelectListItem(); aitem.Text = item.Code; aitem.Value = item.Gid.ToString(); ArticleList.Add(aitem); } ViewBag.ArticleList = ArticleList; //渠道选择下拉框 var oChannelList = (from m in dbEntity.MemberChannels where (m.Deleted == false) select m).ToList(); List<SelectListItem> ChannelList = new List<SelectListItem>(); foreach (var item in oChannelList) { SelectListItem citem = new SelectListItem(); citem.Text = item.Code; citem.Value = item.Gid.ToString(); ChannelList.Add(citem); } ViewBag.ChannelList = ChannelList; //文章位置选择下拉框 var oPositionList = (from n in dbEntity.MallArtPositions where (n.Deleted == false) select n).ToList(); List<SelectListItem> PositionList = new List<SelectListItem>(); foreach (var item in oPositionList) { SelectListItem pitem = new SelectListItem(); pitem.Text = item.Code; pitem.Value = item.Gid.ToString(); PositionList.Add(pitem); } ViewBag.PositionList = PositionList; //是否显示 List<SelectListItem> ShowList = SelectEnumList(oMallArtPublish.Show); ViewData["StartTime"] = ""; ViewData["EndTime"] = ""; } //若为普通用户 else { Guid gUserID = (Guid)CurrentSession.UserID; //如果用户ID不为空,首先读出该用户有权限查看的组织,其次读出所有有权限查看组织下的文章和文章位置 if (!gUserID.Equals(Guid.Empty)) { MemberPrivilege oMemberPrivilege = (from m in dbEntity.MemberPrivileges where (m.Deleted == false && m.UserID == gUserID && m.Ptype == 2) select m).SingleOrDefault(); //该用户只有权限查看自己所属组织 if (oMemberPrivilege == null) { MemberUser oMemberUser = (from o in dbEntity.MemberUsers where (o.Gid == gUserID && o.Deleted == false) select o).SingleOrDefault(); if (oMemberUser != null) { Guid gOrgID = oMemberUser.OrgID; //文章选择下拉框 var oArticle = (from p in dbEntity.MallArticles where (p.OrgID == gOrgID && p.Deleted == false) select p).ToList(); List<SelectListItem> ArticleList = new List<SelectListItem>(); foreach (var item in oArticle) { SelectListItem aitem = new SelectListItem(); aitem.Text = item.Code; aitem.Value = item.Gid.ToString(); ArticleList.Add(aitem); } ViewBag.ArticleList = ArticleList; //文章位置选择下拉框 var oPosition = (from q in dbEntity.MallArtPositions where (q.OrgID == gOrgID && q.Deleted == false) select q).ToList(); List<SelectListItem> PositionList = new List<SelectListItem>(); foreach (var item in oPosition) { SelectListItem pitem = new SelectListItem(); pitem.Text = item.Code; pitem.Value = item.Gid.ToString(); PositionList.Add(pitem); } ViewBag.PositionList = PositionList; } } //该用户能够查看多个组织 else { Guid PrivId = oMemberPrivilege.Gid; List<SelectListItem> ArticleList = new List<SelectListItem>(); List<SelectListItem> PositionList = new List<SelectListItem>(); //授权组织 var oMemPrivItem = (from o in dbEntity.MemberPrivItems where (o.PrivID == PrivId && o.Deleted == false) select o).ToList(); //读取每个组织下的文章和文章位置 foreach (var item in oMemPrivItem) { Guid gOrg = (Guid)item.RefID; var oArticle = (from p in dbEntity.MallArticles where (p.OrgID == gOrg && p.Deleted == false) select p).ToList(); foreach (var aitem in oArticle) { SelectListItem saitem = new SelectListItem(); saitem.Text = aitem.Code; saitem.Value = aitem.Gid.ToString(); ArticleList.Add(saitem); } var oPosition = (from q in dbEntity.MallArtPositions where (q.OrgID == gOrg && q.Deleted == false) select q).ToList(); foreach (var pitem in oPosition) { SelectListItem spitem = new SelectListItem(); spitem.Text = pitem.Code; spitem.Value = pitem.Gid.ToString(); PositionList.Add(spitem); } } //该用户默认的组织 MemberUser oMemberUser = (from o in dbEntity.MemberUsers where (o.Gid == gUserID && o.Deleted == false) select o).SingleOrDefault(); if (oMemberUser != null) { Guid gOrgID = oMemberUser.OrgID; //文章选择下拉框 var oArticle = (from p in dbEntity.MallArticles where (p.OrgID == gOrgID && p.Deleted == false) select p).ToList(); foreach (var item in oArticle) { SelectListItem aitem = new SelectListItem(); aitem.Text = item.Code; aitem.Value = item.Gid.ToString(); ArticleList.Add(aitem); } ViewBag.ArticleList = ArticleList; //文章位置选择下拉框 var oPosition = (from q in dbEntity.MallArtPositions where (q.OrgID == gOrgID && q.Deleted == false) select q).ToList(); foreach (var item in oPosition) { SelectListItem pitem = new SelectListItem(); pitem.Text = item.Code; pitem.Value = item.Gid.ToString(); PositionList.Add(pitem); } ViewBag.PositionList = PositionList; } } } //该用户有权查看的渠道 MemberPrivilege oMemPrivilege = (from n in dbEntity.MemberPrivileges where (n.Ptype == 3 && n.UserID == gUserID && n.Deleted == false) select n).SingleOrDefault(); List<SelectListItem> ChannelList = new List<SelectListItem>(); //只有权查看自己所属的渠道 if (oMemPrivilege == null) { MemberUser oMemberUser = (from o in dbEntity.MemberUsers where (o.Gid == gUserID && o.Deleted == false) select o).SingleOrDefault(); Guid gChannelID = oMemberUser.ChlID; MemberChannel oMemberChannel = (from p in dbEntity.MemberChannels where(p.Gid==gChannelID &&p.Deleted==false)select p).SingleOrDefault(); if(oMemberChannel!=null) { SelectListItem citem = new SelectListItem(); citem.Text = oMemberChannel.Code; citem.Value = oMemberChannel.Gid.ToString(); ChannelList.Add(citem); } } else { Guid gPrivId = oMemPrivilege.Gid; var oMemPrivItem = (from o in dbEntity.MemberPrivItems where(o.PrivID==gPrivId&&o.Deleted==false)select o).ToList(); foreach (var item in oMemPrivItem) { Guid ChannelID =(Guid)item.RefID; MemberChannel oMemberChannel = (from p in dbEntity.MemberChannels where (p.Gid == ChannelID && p.Deleted == false) select p).SingleOrDefault(); if (oMemberChannel != null) { SelectListItem citem = new SelectListItem(); citem.Text = oMemberChannel.Code; citem.Value = oMemberChannel.Gid.ToString(); ChannelList.Add(citem); } } MemberUser oMemberUser = (from o in dbEntity.MemberUsers where (o.Gid == gUserID && o.Deleted == false) select o).SingleOrDefault(); Guid gChannelID = oMemberUser.ChlID; MemberChannel oMemrChannel = (from p in dbEntity.MemberChannels where (p.Gid == gChannelID && p.Deleted == false) select p).SingleOrDefault(); if (oMemrChannel != null) { SelectListItem citem = new SelectListItem(); citem.Text = oMemrChannel.Code; citem.Value = oMemrChannel.Gid.ToString(); ChannelList.Add(citem); } } ViewBag.ChannelList = ChannelList; ViewBag.ShowList = SelectEnumList(oMallArtPublish.Show); ViewData["StartTime"] = ""; ViewData["EndTime"] = ""; } } //编辑某一文章发布 else { oMallArtPublish = (from o in dbEntity.MallArtPublishes where (o.Deleted == false && o.Gid == id) select o).SingleOrDefault(); if (oMallArtPublish != null) { //若为超级管理员则有权限读取所有文章、渠道、文章位子 if (CurrentSession.IsAdmin == true) { //文章选择下拉框 var oArticleList = (from o in dbEntity.MallArticles where (o.Deleted == false) select o).ToList(); List<SelectListItem> ArticleList = new List<SelectListItem>(); foreach (var item in oArticleList) { SelectListItem aitem = new SelectListItem(); aitem.Text = item.Code; aitem.Value = item.Gid.ToString(); if (item.Gid == oMallArtPublish.ArtID) aitem.Selected = true; ArticleList.Add(aitem); } ViewBag.ArticleList = ArticleList; //渠道选择下拉框 var oChannelList = (from m in dbEntity.MemberChannels where (m.Deleted == false) select m).ToList(); List<SelectListItem> ChannelList = new List<SelectListItem>(); foreach (var item in oChannelList) { SelectListItem citem = new SelectListItem(); citem.Text = item.Code; citem.Value = item.Gid.ToString(); if (item.Gid == oMallArtPublish.ChlID) citem.Selected = true; ChannelList.Add(citem); } ViewBag.ChannelList = ChannelList; //文章位置选择下拉框 var oPositionList = (from n in dbEntity.MallArtPositions where (n.Deleted == false) select n).ToList(); List<SelectListItem> PositionList = new List<SelectListItem>(); foreach (var item in oPositionList) { SelectListItem pitem = new SelectListItem(); pitem.Text = item.Code; pitem.Value = item.Gid.ToString(); if (item.Gid == oMallArtPublish.PosID) pitem.Selected = true; PositionList.Add(pitem); } ViewBag.PositionList = PositionList; //是否显示 List<SelectListItem> ShowList = SelectEnumList(oMallArtPublish.Show); CultureInfo culture = new CultureInfo(CurrentSession.Culture); ViewData["StartTime"] = oMallArtPublish.StartTime.Value.ToString(culture.DateTimeFormat.ShortDatePattern); ViewData["EndTime"] = oMallArtPublish.EndTime.Value.ToString(culture.DateTimeFormat.ShortDatePattern); } //若为普通用户 else { Guid gUserID = (Guid)CurrentSession.UserID; //如果用户ID不为空,首先读出该用户有权限查看的组织,其次读出所有有权限查看组织下的文章和文章位置 if (!gUserID.Equals(Guid.Empty)) { MemberPrivilege oMemberPrivilege = (from m in dbEntity.MemberPrivileges where (m.Deleted == false && m.UserID == gUserID && m.Ptype == 2) select m).SingleOrDefault(); //该用户只有权限查看自己所属组织 if (oMemberPrivilege == null) { MemberUser oMemberUser = (from o in dbEntity.MemberUsers where (o.Gid == gUserID && o.Deleted == false) select o).SingleOrDefault(); if (oMemberUser != null) { Guid gOrgID = oMemberUser.OrgID; //文章选择下拉框 var oArticle = (from p in dbEntity.MallArticles where (p.OrgID == gOrgID && p.Deleted == false) select p).ToList(); List<SelectListItem> ArticleList = new List<SelectListItem>(); foreach (var item in oArticle) { SelectListItem aitem = new SelectListItem(); aitem.Text = item.Code; aitem.Value = item.Gid.ToString(); if (item.Gid == oMallArtPublish.ArtID) aitem.Selected = true; ArticleList.Add(aitem); } ViewBag.ArticleList = ArticleList; //文章位置选择下拉框 var oPosition = (from q in dbEntity.MallArtPositions where (q.OrgID == gOrgID && q.Deleted == false) select q).ToList(); List<SelectListItem> PositionList = new List<SelectListItem>(); foreach (var item in oPosition) { SelectListItem pitem = new SelectListItem(); pitem.Text = item.Code; pitem.Value = item.Gid.ToString(); if (item.Gid == oMallArtPublish.PosID) pitem.Selected = true; PositionList.Add(pitem); } ViewBag.PositionList = PositionList; } } //该用户能够查看多个组织 else { Guid PrivId = oMemberPrivilege.Gid; List<SelectListItem> ArticleList = new List<SelectListItem>(); List<SelectListItem> PositionList = new List<SelectListItem>(); //授权组织 var oMemPrivItem = (from o in dbEntity.MemberPrivItems where (o.PrivID == PrivId && o.Deleted == false) select o).ToList(); //读取每个组织下的文章和文章位置 foreach (var item in oMemPrivItem) { Guid gOrg = (Guid)item.RefID; var oArticle = (from p in dbEntity.MallArticles where (p.OrgID == gOrg && p.Deleted == false) select p).ToList(); foreach (var aitem in oArticle) { SelectListItem saitem = new SelectListItem(); saitem.Text = aitem.Code; saitem.Value = aitem.Gid.ToString(); if (aitem.Gid == oMallArtPublish.ArtID) saitem.Selected = true; ArticleList.Add(saitem); } var oPosition = (from q in dbEntity.MallArtPositions where (q.OrgID == gOrg && q.Deleted == false) select q).ToList(); foreach (var pitem in oPosition) { SelectListItem spitem = new SelectListItem(); spitem.Text = pitem.Code; spitem.Value = pitem.Gid.ToString(); if (pitem.Gid == oMallArtPublish.PosID) spitem.Selected = true; PositionList.Add(spitem); } } //该用户默认的组织 MemberUser oMemberUser = (from o in dbEntity.MemberUsers where (o.Gid == gUserID && o.Deleted == false) select o).SingleOrDefault(); if (oMemberUser != null) { Guid gOrgID = oMemberUser.OrgID; //文章选择下拉框 var oArticle = (from p in dbEntity.MallArticles where (p.OrgID == gOrgID && p.Deleted == false) select p).ToList(); foreach (var item in oArticle) { SelectListItem aitem = new SelectListItem(); aitem.Text = item.Code; aitem.Value = item.Gid.ToString(); if (item.Gid == oMallArtPublish.ArtID) aitem.Selected = true; ArticleList.Add(aitem); } ViewBag.ArticleList = ArticleList; //文章位置选择下拉框 var oPosition = (from q in dbEntity.MallArtPositions where (q.OrgID == gOrgID && q.Deleted == false) select q).ToList(); foreach (var item in oPosition) { SelectListItem pitem = new SelectListItem(); pitem.Text = item.Code; pitem.Value = item.Gid.ToString(); if (item.Gid == oMallArtPublish.PosID) pitem.Selected = true; PositionList.Add(pitem); } ViewBag.PositionList = PositionList; } } } //该用户有权查看的渠道 MemberPrivilege oMemPrivilege = (from n in dbEntity.MemberPrivileges where (n.Ptype == 3 && n.UserID == gUserID && n.Deleted == false) select n).SingleOrDefault(); List<SelectListItem> ChannelList = new List<SelectListItem>(); //只有权查看自己所属的渠道 if (oMemPrivilege == null) { MemberUser oMemberUser = (from o in dbEntity.MemberUsers where (o.Gid == gUserID && o.Deleted == false) select o).SingleOrDefault(); Guid gChannelID = oMemberUser.ChlID; MemberChannel oMemberChannel = (from p in dbEntity.MemberChannels where (p.Gid == gChannelID && p.Deleted == false) select p).SingleOrDefault(); if (oMemberChannel != null) { SelectListItem citem = new SelectListItem(); citem.Text = oMemberChannel.Code; citem.Value = oMemberChannel.Gid.ToString(); if (oMemberChannel.Gid == oMallArtPublish.ChlID) citem.Selected = true; ChannelList.Add(citem); } } //授权查看多个渠道 else { Guid gPrivId = oMemPrivilege.Gid; var oMemPrivItem = (from o in dbEntity.MemberPrivItems where (o.PrivID == gPrivId && o.Deleted == false) select o).ToList(); foreach (var item in oMemPrivItem) { Guid ChannelID = (Guid)item.RefID; MemberChannel oMemberChannel = (from p in dbEntity.MemberChannels where (p.Gid == ChannelID && p.Deleted == false) select p).SingleOrDefault(); if (oMemberChannel != null) { SelectListItem citem = new SelectListItem(); citem.Text = oMemberChannel.Code; citem.Value = oMemberChannel.Gid.ToString(); if (oMemberChannel.Gid == oMallArtPublish.ChlID) citem.Selected = true; ChannelList.Add(citem); } } MemberUser oMemberUser = (from o in dbEntity.MemberUsers where (o.Gid == gUserID && o.Deleted == false) select o).SingleOrDefault(); Guid gChannelID = oMemberUser.ChlID; MemberChannel oMemChannel = (from p in dbEntity.MemberChannels where (p.Gid == gChannelID && p.Deleted == false) select p).SingleOrDefault(); if (oMemChannel != null) { SelectListItem citem = new SelectListItem(); citem.Text = oMemChannel.Code; citem.Value = oMemChannel.Gid.ToString(); if (oMemChannel.Gid == oMallArtPublish.ChlID) citem.Selected = true; ChannelList.Add(citem); } } ViewBag.ChannelList = ChannelList; ViewBag.ShowList = SelectEnumList(oMallArtPublish.Show); CultureInfo culture = new CultureInfo(CurrentSession.Culture); ViewData["StartTime"] = oMallArtPublish.StartTime.Value.ToString(culture.DateTimeFormat.ShortDatePattern); ViewData["EndTime"] = oMallArtPublish.EndTime.Value.ToString(culture.DateTimeFormat.ShortDatePattern); } } } return View("ArtPublishAddOrEdit",oMallArtPublish); }
/// <summary> /// 保存新增或者编辑的文章 /// </summary> /// <param name="mallArtPublish"></param> /// <returns></returns> public string ArtPublishSave(MallArtPublish mallArtPublish, FormCollection formCollection) { MallArtPublish oMallArtPublish = new MallArtPublish(); Guid gArtPublish = mallArtPublish.Gid; if (gArtPublish.Equals(Guid.Empty)) { oMallArtPublish.ArtID = mallArtPublish.ArtID; oMallArtPublish.ChlID = mallArtPublish.ChlID; oMallArtPublish.PosID = mallArtPublish.PosID; oMallArtPublish.Sorting = mallArtPublish.Sorting; oMallArtPublish.Show = mallArtPublish.Show; oMallArtPublish.TotalRank = mallArtPublish.TotalRank; oMallArtPublish.MatterRank = mallArtPublish.MatterRank; oMallArtPublish.LayoutRank = mallArtPublish.LayoutRank; oMallArtPublish.ComfortRank = mallArtPublish.ComfortRank; string startTime = formCollection["startTime"]; if (startTime != "") { DateTimeOffset DStartTime = DateTimeOffset.Parse(startTime); oMallArtPublish.StartTime = DStartTime; } else { oMallArtPublish.StartTime =DateTimeOffset.Now; } string endTime = formCollection["endTime"]; if (endTime != "") { DateTimeOffset DEndTime = DateTimeOffset.Parse(endTime); oMallArtPublish.EndTime = DEndTime; } else { oMallArtPublish.EndTime = DateTimeOffset.Now; } oMallArtPublish.Remark = mallArtPublish.Remark; dbEntity.MallArtPublishes.Add(oMallArtPublish); dbEntity.SaveChanges(); } else { oMallArtPublish = (from o in dbEntity.MallArtPublishes where (o.Gid == gArtPublish && o.Deleted == false) select o).SingleOrDefault(); if (oMallArtPublish != null) { oMallArtPublish.ArtID = mallArtPublish.ArtID; oMallArtPublish.ChlID = mallArtPublish.ChlID; oMallArtPublish.PosID = mallArtPublish.PosID; oMallArtPublish.Sorting = mallArtPublish.Sorting; oMallArtPublish.Show = mallArtPublish.Show; oMallArtPublish.TotalRank = mallArtPublish.TotalRank; oMallArtPublish.MatterRank = mallArtPublish.MatterRank; oMallArtPublish.LayoutRank = mallArtPublish.LayoutRank; oMallArtPublish.ComfortRank = mallArtPublish.ComfortRank; string startTime = formCollection["startTime"]; if (startTime != "") { oMallArtPublish.StartTime = DateTimeOffset.Parse(startTime); } else { oMallArtPublish.StartTime = DateTimeOffset.Now; } string endTime = formCollection["endTime"]; if (endTime != "") { oMallArtPublish.EndTime = DateTimeOffset.Parse(endTime); } else { oMallArtPublish.EndTime = DateTimeOffset.Now; } oMallArtPublish.Remark = mallArtPublish.Remark; dbEntity.SaveChanges(); } } return "success"; }