作为我学习的一部分,我必须在C#中已经构建的Windows表单应用程序中进行开发。
该应用程序应如下工作。此应用程序将用于由高管及其经理组成的工作场所部门。高级管理人员将针对各种问题研究某些调查结果,一旦调查结果,该应用程序就可以上传该调查结果。但是,要发布调查结果,应该得到部门经理的批准。我的任务是设置一个按钮,该按钮应该按下按钮,管理员应该收到一条通知消息,例如“你有一个从”主管姓名“中获得批准的结果。管理人员将使用他们的用户名和密码登录系统。 manager也有一个单独的用户名和密码。管理员和管理员将在同一台服务器上,如果管理员在发送通知时没有登录到应用程序,它应该在他登录应用程序时出现。
有没有人知道在C#中发送这些通知消息的细节。我在谷歌尝试了很多,但没有成功。如果有人能帮助我,我会非常感激。
答案 0 :(得分:0)
为此,您需要为“消息”或“通知”创建数据库抽象。架构可能如下所示:
Messages
--------
Id uniqueidentifier not null primary key
UserId uniqueidentifier not null
IsRead bit null
Text varchar(MAX) null
因此,当读取消息时,您将发送(可能)AJAX请求以更新IsRead
字段以显示消息已被读取。您还可以使用AJAX检查用户是否有任何尚未阅读的消息,并在UI上显示它们。
如果您有任何其他问题,请告诉我们。
编辑:如何将AJAX与MVC和jQuery一起使用。
在你的控制器中创建这样的动作:
[Authorize]
public JsonResult GetMessagesForUser()
{
// get user ID
Guid userId = YourIdentityProvider.User.Id;
// check messages like this:
var messages = from m in ctx.Messages
where m.UserId == userId
&& m.IsRead == false
select m;
return Json(messages.ToList(), JsonRequestBehavior.AllowGet);
}
然后,在您的视图中,每隔几秒检查一条新消息,如下所示:
setTimeout(function() {
$.ajax({
url: '@Url.Action("GetMessagesForUser")',
type: 'get',
dataType: 'json',
success: function(data) {
console.log(data); // new messages
}
});
}, 3000);
答案 1 :(得分:0)
似乎在这种情况下使用事件是好的。当按下按钮时,按下按钮的事件被提出,并且由于经理和管理人员订阅了该事件,他们将被通知
答案 2 :(得分:0)
this.yourButton.Click += new System.EventHandler(ManagerEventHandler);
this.yourButton.Click += new System.EventHandler(ExecutiveEventHandler);
private void ManagerEventHandler(object sender, EventArgs e)
{
//TODO
}
private void ExecutiveEventHandler(object sender, EventArgs e)
{
//TODO
}