在C#中发送通知消息

时间:2014-05-05 11:39:46

标签: c#

作为我学习的一部分,我必须在C#中已经构建的Windows表单应用程序中进行开发。 该应用程序应如下工作。此应用程序将用于由高管及其经理组成的工作场所部门。高级管理人员将针对各种问题研究某些调查结果,一旦调查结果,该应用程序就可以上传该调查结果。但是,要发布调查结果,应该得到部门经理的批准。我的任务是设置一个按钮,该按钮应该按下按钮,管理员应该收到一条通知消息,例如“你有一个从”主管姓名“中获得批准的结果。管理人员将使用他们的用户名和密码登录系统。 manager也有一个单独的用户名和密码。管理员和管理员将在同一台服务器上,如果管理员在发送通知时没有登录到应用程序,它应该在他登录应用程序时出现。
有没有人知道在C#中发送这些通知消息的细节。我在谷歌尝试了很多,但没有成功。如果有人能帮助我,我会非常感激。

3 个答案:

答案 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
}