public ActionResult Create(UserNews login) { try { string fileName = Path.GetFileNameWithoutExtension(login.ImageFile.FileName); string extension = Path.GetExtension(login.ImageFile.FileName); fileName = fileName + DateTime.Now.ToString("yymmssfff") + extension; login.Foto = "~/Image/" + fileName; fileName = Path.Combine(Server.MapPath("~/Image/"), fileName); login.ImageFile.SaveAs(fileName); using (NewsContext dbModel = new NewsContext()) { News new_table = new News(); new_table.Data = login.Data; new_table.Noutati = login.Noutati; new_table.Foto = login.Foto; dbModel.New.Add(new_table); dbModel.SaveChanges(); } ModelState.Clear(); return(RedirectToAction("Index")); } catch { return(View()); } }
public Task <int> CreateNews(string userId, News news) { var userNews = _newsContext.News.Find(x => x.UserId == userId).FirstOrDefault(); var maxNewsId = userNews == null ? 100 : userNews.NewsList.Max(x => x.NewsId); if (news.NewsId == 0) { news.NewsId = maxNewsId + 1; } if (userNews == null) { userNews = new UserNews() { UserId = userId, NewsList = new List <News>() { news } }; _newsContext.News.InsertOne(userNews); } else { var filter = Builders <UserNews> .Filter.Where(x => x.UserId == userId); var update = Builders <UserNews> .Update.Push(x => x.NewsList, news); var created = _newsContext.News.FindOneAndUpdate(filter, update); } var createdNewsId = _newsContext.News.Find(x => x.UserId == userId).FirstOrDefault().NewsList.Where(x => x.NewsId == news.NewsId).FirstOrDefault().NewsId; return(Task.FromResult(createdNewsId)); }
public void SendMessageToUser(bool isSystem, string toUserID, string msgTitle, string msgContent, string msgUrl, List <UserNewsUrls> userNewsUrlss = null) { if (isSystem) { string fromUserID = "*****@*****.**"; UserNews userNews = new UserNews { UserId = toUserID, fromUser = fromUserID, msgTitle = msgTitle, msgContent = msgContent, msgUrl = msgUrl, time = DateTime.Now }; dbUserNews.Create(userNews); int sn = userNews.sn; if (userNewsUrlss != null) { foreach (UserNewsUrls unus in userNewsUrlss) { unus.UserNewsSn = sn; dbUserNewsUrls.Create(unus); } } string fromUserName = db.AspNetUsers.Where(n => n.UserName == fromUserID).Select(n => n.Name).FirstOrDefault(); string fromUserIdName = fromUserName + "<" + fromUserID + ">"; var hubContext = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext <msit116apexLayout.newsHub>(); hubContext.Clients.User(toUserID).addNewsToPage(fromUserIdName, msgTitle, msgContent, msgUrl, userNewsUrlss); } }
public void UserMessage(UserNews model) { UserNews userNews = db.UserNews.Find(model.sn); if (userNews.UserId == User.Identity.GetUserName()) { userNews.read = model.read; db.SaveChanges(); } }
/// <summary> /// Method for creating a news /// </summary> /// <param name="userId">The id of the user who is creating the news</param> /// <param name="news">The properties of the news to be added</param> /// <returns>The id of the newly created news</returns> public async Task <int> CreateNews(string userId, News news) { ///The custom starting id of news news.NewsId = 101; var filter = Builders <UserNews> .Filter.Eq(u => u.UserId, userId); var userNewsResult = await newsContext.News.FindAsync(filter); ///Check whether user exists or not var userNews = await userNewsResult.FirstOrDefaultAsync(); ///if user doesnt exists create a new document and insert the news if (userNews == null) { var newUserNews = new UserNews() { UserId = userId, NewsList = new List <News>() { news } }; await newsContext.News.InsertOneAsync(newUserNews); var inserted = await GetNewsById(userId, news.NewsId); return(inserted != null ? inserted.NewsId : -1); } ///If user exists and user has any news find the maximum id of the news present else if (userNews != null && userNews.NewsList != null && userNews.NewsList.Any()) { news.NewsId = userNews.NewsList.Max(n => n.NewsId) + 1; } ///Configure update for pushing new news to the list of news of the user var update = Builders <UserNews> .Update.Push(u => u.NewsList, news); ///Update the newslist of the user if present or else insert the item var result = await newsContext.News.UpdateOneAsync(filter, update, new UpdateOptions { IsUpsert = true }); if (result.IsAcknowledged && (result.ModifiedCount > 0 || result.UpsertedId != null)) { return(news.NewsId); } return(-1); }
public Task <bool> AddOrUpdateReminder(string userId, int newsId, Reminder reminder) { var userNewws = _newsContext.News.Find(x => x.UserId == userId).FirstOrDefault(); var newsobj = new News() { Reminder = reminder, NewsId = newsId }; var filter = Builders <UserNews> .Filter.And( Builders <UserNews> .Filter.Where(x => x.UserId == userId), Builders <UserNews> .Filter.ElemMatch(x => x.NewsList, c => c.NewsId == newsId)); if (userNewws == null) { var newUserNews = new UserNews() { UserId = userId, NewsList = new List <News>() { newsobj } }; _newsContext.News.InsertOne(newUserNews); } else { var news = userNewws.NewsList.Where(x => x.NewsId == newsId).FirstOrDefault(); UpdateResult update; if (news == null) { //userNewws.NewsList = new List<News>() { newsobj }; update = _newsContext.News.UpdateOne(filter, Builders <UserNews> .Update.AddToSet(x => x.NewsList, newsobj)); } else { update = _newsContext.News.UpdateOne(filter, Builders <UserNews> .Update.Set(x => x.NewsList[-1].Reminder, reminder) .Set(x => x.NewsList[-1].NewsId, newsId)); } var getUpdatedCount = update.ModifiedCount; } var updatedValue = _newsContext.News.Find(filter).FirstOrDefault(); var result = updatedValue != null; return(Task.FromResult(result)); }
public List <int> SendMessageToAll(string msgTitle, string msgContent, string msgUrl, List <UserNewsUrls> userNewsUrlss = null, string noDefaultAct = "") { IEnumerable <AspNetUsers> aspNetUsers = dbAspNetUsers.GetAll().ToList(); string fromUserID = "*****@*****.**"; var hubContext = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext <msit116apexLayout.newsHub>(); List <int> userNewsSnList = new List <int>(); foreach (AspNetUsers usert in aspNetUsers) { UserNews userNews = new UserNews { UserId = usert.UserName, fromUser = fromUserID, msgTitle = msgTitle, msgContent = msgContent, msgUrl = msgUrl, time = DateTime.Now, noDefaultAction = noDefaultAct != "" ? true : false }; dbUserNews.Create(userNews); int sn = userNews.sn; userNewsSnList.Add(sn); if (userNewsUrlss != null) { foreach (UserNewsUrls unus in userNewsUrlss) { unus.UserNewsSn = sn; if (noDefaultAct != "") { unus.UserNewsUrl = unus.UserNewsUrl + "&userNewsSn=" + sn; } dbUserNewsUrls.Create(unus); } } string fromUserName = db.AspNetUsers.Where(n => n.UserName == fromUserID).Select(n => n.Name).FirstOrDefault(); string fromUserIdName = fromUserName + "<" + fromUserID + ">"; hubContext.Clients.User(usert.UserName).addNewsToPage(fromUserIdName, msgTitle, msgContent, msgUrl, userNewsUrlss, noDefaultAct, sn.ToString()); } //string fromUserName = db.AspNetUsers.Where(n => n.UserName == fromUserID).Select(n => n.Name).FirstOrDefault(); //string fromUserIdName = fromUserName + "<" + fromUserID + ">"; //var hubContext = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<msit116apexLayout.newsHub>(); //hubContext.Clients.All.addNewsToPage(fromUserIdName, msgTitle, msgContent, msgUrl, userNewsUrlss, noDefaultAct); return(userNewsSnList); }
public int SendMessageToUser(string fromUserID, string toUserID, string msgTitle, string msgContent, string msgUrl, List <UserNewsUrls> userNewsUrlss = null, string noDefaultAct = "") { UserNews userNews = new UserNews { UserId = toUserID, fromUser = fromUserID, msgTitle = msgTitle, msgContent = msgContent, msgUrl = msgUrl, time = DateTime.Now, noDefaultAction = noDefaultAct != "" ? true : false }; dbUserNews.Create(userNews); int sn = userNews.sn; if (userNewsUrlss != null) { foreach (UserNewsUrls unus in userNewsUrlss) { unus.UserNewsSn = sn; if (noDefaultAct != "") { unus.UserNewsUrl = unus.UserNewsUrl + "&userNewsSn=" + sn; } dbUserNewsUrls.Create(unus); } } string fromUserName = db.AspNetUsers.Where(n => n.UserName == fromUserID).Select(n => n.Name).FirstOrDefault(); string fromUserIdName = fromUserName + "<" + fromUserID + ">"; var hubContext = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext <msit116apexLayout.newsHub>(); hubContext.Clients.User(toUserID).addNewsToPage(fromUserIdName, msgTitle, msgContent, msgUrl, userNewsUrlss, noDefaultAct, sn.ToString()); return(sn); }
public ActionResult UserConfirmUserPower(string needConfirmUserID, int?needConfirmPowerID, int?ConfirmResult, int?userNewsSn) { if (needConfirmUserID != "" && needConfirmPowerID.HasValue && ConfirmResult.HasValue && userNewsSn.HasValue) { ConfirmUserPowerMethod CUPM = new ConfirmUserPowerMethod(); int?returnConfirmEndurpchSn = CUPM.UserConfirmUserPowerM(User.Identity.GetUserName(), needConfirmUserID, needConfirmPowerID.Value, ConfirmResult.Value); //將通知轉為核准/否決並轉到已讀 UserNews un = db.UserNews.Where(n => n.sn == userNewsSn.Value).FirstOrDefault(); IEnumerable <UserNewsUrls> unuie = db.UserNewsUrls.Where(n => n.UserNewsSn == userNewsSn.Value); un.read = true; string strCResult = ConfirmResult.Value == 1 ? "核准" : "否決"; un.msgUrl = ""; //un.msgContent += "<br/><button class='btn btn-info' disabled>" + strCResult + "</button>"; foreach (var unu in unuie) { db.UserNewsUrls.Remove(unu); } UserNewsUrls resultunus = new UserNewsUrls { UserNewsSn = un.sn, UserNewsCSS = "btn btn-info disabled", UserNewsTitle = strCResult, UserNewsUrl = "" }; db.UserNewsUrls.Add(resultunus); db.SaveChanges(); if (returnConfirmEndurpchSn.HasValue) { CUPM.ExecConfirmIsEnd(returnConfirmEndurpchSn.Value); } } //TODO return(RedirectToAction("UserMessage", "Account", new { area = "" })); }
public ActionResult RemoveUserMessage(UserNews model) { string result = ""; //檢查員工 if (cm.checkIsEmployee(User.Identity.GetUserName())) { //檢查權限刪除通知的權限ID為5 if (cm.checkHasPower(User.Identity.GetUserName(), 5)) { //檢查覆核 UserNews userNews = db.UserNews.Find(model.sn); List <UserNewsUrls> userNewsUrls = db.UserNewsUrls.Where(n => n.UserNewsSn == model.sn).ToList(); string userName = db.AspNetUsers.Where(n => n.UserName == userNews.fromUser).Select(n => n.Name).First(); string confirmDescription = ""; confirmDescription += "<div style='border:1px solid black;margin: 2px'>"; confirmDescription += "<p>欲移除通知:</p>"; confirmDescription += "<div style='border:1px solid black;margin: 2px'>"; confirmDescription += "<p>寄送者:" + userName + "<" + userNews.fromUser + ">" + "</p>"; confirmDescription += "<p>標題:" + userNews.msgTitle + "</p>"; confirmDescription += "<p>內容:" + userNews.msgContent + "</p>"; confirmDescription += "<p>發送時間:" + userNews.time + "</p>連結:"; confirmDescription += "<a href='" + userNews.msgUrl + "' class='btn btn-success'>連結</a>"; foreach (var unus in userNewsUrls) { confirmDescription += "<a href='" + unus.UserNewsUrl + "' class='" + unus.UserNewsCSS + "'>" + unus.UserNewsTitle + "</a>"; } confirmDescription += "</div>"; confirmDescription += "</div>"; int? outurpchSn; string ckConfirm = cm.checkNeedConfirm(out outurpchSn, User.Identity.GetUserName(), 5, Url.Action("UserConfirmUserPower", "ConfirmUserPower", new { area = "" }), confirmDescription); if (ckConfirm == "") { //UserNews userNews = db.UserNews.Find(model.sn); if (userNews.UserId == User.Identity.GetUserName()) { IEnumerable <UserNewsUrls> unus = db.UserNewsUrls.Where(n => n.UserNewsSn == userNews.sn); foreach (var unu in unus) { db.UserNewsUrls.Remove(unu); } db.UserNews.Remove(userNews); db.SaveChanges(); } } else { result = ckConfirm; if (outurpchSn.HasValue) { string tableName1 = ""; string primaryColumnName1 = ""; string primaryColumnValue1 = ""; SaveExecConfirmDataModelActionEnum execAction1; string primaryColumnType1 = ""; List <SaveExecConfirmDataModel> cecdm2 = new List <SaveExecConfirmDataModel>(); //UserNews userNews = db.UserNews.Find(model.sn); tableName1 = "UserNews"; primaryColumnName1 = "sn"; primaryColumnValue1 = userNews.sn.ToString(); execAction1 = SaveExecConfirmDataModelActionEnum.Remove; primaryColumnType1 = "int"; List <string> cColumnEmtry = new List <string>(); if (userNews.UserId == User.Identity.GetUserName()) { IEnumerable <UserNewsUrls> unus = db.UserNewsUrls.Where(n => n.UserNewsSn == userNews.sn); foreach (var unu in unus) { string tableName2 = "UserNewsUrls"; string primaryColumnName2 = "UserNewsUrlsID"; string primaryColumnValue2 = unu.UserNewsUrlsID.ToString(); SaveExecConfirmDataModelActionEnum execAction2 = SaveExecConfirmDataModelActionEnum.Remove; string primaryColumnType2 = "int"; SaveExecConfirmDataModel cecdm2t = new SaveExecConfirmDataModel { urpchSn = outurpchSn.Value, tableName = tableName2, primaryColumnName = primaryColumnName2, primaryColumnValue = primaryColumnValue2, primaryColumnType = primaryColumnType2, execAction = execAction2, cColumnName = cColumnEmtry, cColumnValue = cColumnEmtry, cColumnType = cColumnEmtry }; cecdm2.Add(cecdm2t); } } cm.SaveExecConfirmData(cecdm2); SaveExecConfirmDataModel cecdm1 = new SaveExecConfirmDataModel { urpchSn = outurpchSn.Value, tableName = tableName1, primaryColumnName = primaryColumnName1, primaryColumnValue = primaryColumnValue1, primaryColumnType = primaryColumnType1, execAction = execAction1, cColumnName = cColumnEmtry, cColumnValue = cColumnEmtry, cColumnType = cColumnEmtry }; cm.SaveExecConfirmData(cecdm1); } } } else { result = "沒有權限"; } } else { UserNews userNews = db.UserNews.Find(model.sn); if (userNews.UserId == User.Identity.GetUserName()) { bool checkUrls = true; while (checkUrls) { UserNewsUrls unus = db.UserNewsUrls.Where(n => n.UserNewsSn == userNews.sn).FirstOrDefault(); if (unus != null) { db.UserNewsUrls.Remove(unus); } else { checkUrls = false; } } db.UserNews.Remove(userNews); db.SaveChanges(); } } return(Content(result)); }