В моем приложении 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();
}
}
Любая помощь о том, как решить эту проблему будет принята.