using System.Threading.Tasks;
using System.Web.Mvc;
using Abp.Auditing;
using Abp.Authorization;
using Abp.Domain.Repositories;
using IwbZero.ToolCommon.StringModel;
using WeApp.BaseSystem.Query;
using WeApp.Configuration;
using WeApp.TrainingCamp;
using WeApp.TrainingCamp.Dto;
using WeApp.Views.Shared.Camp;
namespace WeApp.Controllers
{
///
/// 演练实施
///
[AbpAllowAnonymous, DisableAuditing]
public class PlayController : IwbControllerBase
{
protected IRepository CampRepository { get; }
protected QueryAppService QueryApp { get; }
private int TimeOut = 60 * 5;
public PlayController(QueryAppService queryApp, IRepository campRepository)
{
QueryApp = queryApp;
CampRepository = campRepository;
}
///
/// 专家屏页面
///
///
///
public async Task Index(string id)
{
CampInfo camp;
if (id == "1")
{
camp = await CampRepository.FirstOrDefaultAsync(a => a.CampState == CampStateDefinition.Run);
if (camp == null)
{
CheckErrors("未查询到正在运行的培训营!");
return Content("Error");
}
}
else
{
string campNo = id.IsEmpty() ? (string)Session["CampNo"] : id;
if (campNo.IsEmpty())
{
TempData[ExerciseController.SelectDataKey] = new SelectCampModel
{
PageUrl = "/Play/Index",
PageTitle = "演示屏选择培训营",
HasGroup = false
};
return RedirectToAction("SelectCamp", "Exercise");
}
camp = await CampRepository.FirstOrDefaultAsync(a => a.Id == campNo);
if (camp == null)
{
CheckErrors($"未查到到编号为【{campNo}】的培训营!");
return null;
}
Session["CampNo"] = campNo;
Session.Timeout = TimeOut;
}
ViewBag.Camp = ObjectMapper.Map(camp);
if (camp.CampState != CampStateDefinition.Run)
{
return View("Wait");
}
ViewBag.Groups = await QueryApp.GetCampGroups(id);
return View();
} ///
/// 专家屏页面
///
///
///
public async Task IndexWithScore(string id)
{
CampInfo camp;
if (id == "1")
{
camp = await CampRepository.FirstOrDefaultAsync(a => a.CampState == CampStateDefinition.Run);
if (camp == null)
{
CheckErrors("未查询到正在运行的培训营!");
return Content("Error");
}
}
else
{
string campNo = id.IsEmpty() ? (string)Session["CampNo"] : id;
if (campNo.IsEmpty())
{
TempData[ExerciseController.SelectDataKey] = new SelectCampModel
{
PageUrl = "/Play/IndexWithScore",
PageTitle = "演示屏选择培训营",
HasGroup = false
};
return RedirectToAction("SelectCamp", "Exercise");
}
camp = await CampRepository.FirstOrDefaultAsync(a => a.Id == campNo);
if (camp == null)
{
CheckErrors($"未查到到编号为【{campNo}】的培训营!");
return null;
}
Session["CampNo"] = campNo;
Session.Timeout = TimeOut;
}
ViewBag.Camp = ObjectMapper.Map(camp);
if (camp.CampState != CampStateDefinition.Run)
{
return View("Wait");
}
ViewBag.Groups = await QueryApp.GetCampGroups(id);
return View();
}
}
}