protected void gvTasks_RowCommand(object sender, GridViewCommandEventArgs e)
{
HttpCookie cookie = Request.Cookies["CurrentPages"];
if (cookie != null)
{
string cookieValue = cookie.Value;
string[] currentPages = cookieValue.Split(';');
if (currentPages.Where(p => p.Contains("Details_Label.aspx")).Count() > 0)
{
if (Session[GlobalString.UserSeesionName] != null)
{
JSMethod.AlertAndRedirect("You are labeling another data.", "Tasks.aspx", this);
return;
//Response.Redirect("Tasks.aspx");
}
else
{
Response.Redirect("LogIn.aspx");
}
}
}
int index = Convert.ToInt32(e.CommandArgument.ToString());
string taskName = gvTasks.DataKeys[index].Value.ToString();
//if the task status is full
List<TaskResult> taskResults = TaskResult.AllTaskResults[taskName];
if (taskResults.Count() > 0)
{
int haveLabled = taskResults.Select(re => re.Id).Distinct().Count();
int totalCount = LabelData.GetLableDataCount(taskName);
if (haveLabled > totalCount)
{
Session["ErrorMessage"] = "The distinct data in result file is more than that in task file. please check the data folder. ";
Response.Redirect("Error.aspx");
}
LabelData data = TaskControl.GetOneCanLabeledData(taskName);
if (data == null)
{
JSMethod.Alert("The task has been done or you have labeled it. Please label others.", this);
return;
}
Response.Redirect("Details_Label.aspx?Id=" + data.Id + "&&TaskName=" + taskName);
}
else
{
LabelData data = TaskControl.GetOneCanLabeledData(taskName);
if (data == null)
{
JSMethod.Alert("The task has been done or you have labeled it. Please label others.", this);
return;
}
Response.Redirect("Details_Label.aspx?Id=" + data.Id + "&&TaskName=" + taskName);
}
}