Сходное количество записей для разных пользовательских сессий - PullRequest
0 голосов
/ 12 апреля 2020

В моем приложении MVC вход пользователя осуществляется через сеансы. Существует панель мониторинга, которая отображает количество билетов, назначенное каждому пользователю. Этот счет инициируется с помощью процедуры SQL.

ALTER PROC [dbo].[Usp_GetTicketCountByUserID]
    @UserID int
AS
BEGIN
    Select  AssignToAdmin,
        COUNT(CASE WHEN [Status] = 'A' then 1 else NULL END) openCount,
        COUNT(CASE WHEN [Status] = 'C' then 2 else NULL END) ClosedCount
    from AssignedRoles
    where AssignToAdmin = @UserID
    GROUP BY AssignToAdmin
END
GO

Когда я выполняю процедуру с SQL, я получаю правильные результаты, однако из приложения отображается ноль (0). Я заметил, что когда я удаляю предложение where, он отображает одинаковое количество для всех пользователей, что не должно иметь место.

Контроллер:

var x = _ITimesheet.GetTimeSheetsCountByUserID(Convert.ToInt32(Session["UserID"]));

if (x != null)
{
    ViewBag.MyCall = x.OpenCount;
    ViewBag.ClosedTicket = x.ClosedCount;
}
else
{
    ViewBag.MyCall = 0;
    ViewBag.ClosedTicket = 0;
}

Класс

public DisplayViewModel GetTimeSheetsCountByUserID(int UserID)
{
    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["TSC"].ToString()))
    {
        var param = new DynamicParameters();
        param.Add("@UserID", UserID);
        return con.Query<DisplayViewModel>("Usp_GetTicketCountByUserID", param, null, true, 0, System.Data.CommandType.StoredProcedure).FirstOrDefault();
    }
}

Любая помощь о том, как решить эту проблему будет принята.

1 Ответ

0 голосов
/ 12 апреля 2020

Я понял это. Очевидно, я неправильно назначил этот класс [UserID] вместо [AdminID]. Это потому, что у меня есть различные сессии, основанные на роли пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...