using System.Net;
using System.Web.Mvc;
using Kreta.BusinessLogic.Helpers;
using Kreta.Core.Exceptions;
using Kreta.Web.Areas.TanuloErtekeles.ApiControllers;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Models.EditorTemplates;

namespace Kreta.Web.Areas.TanuloErtekeles.Controllers
{
    public class BaseElektronikusUzenetKeresoController : Controller
    {
        #region Properties

        public static string GridName => "ElektronikusUzenetKeresoGrid";
        public static string SearchFormName => "ElektronikusUzenetKeresoSearchForm";

        public static string InfoPopUpId => "ElektronikusUzenetKeresoInfoPopUpWindow";

        #endregion Properties

        public ActionResult OpenElektronikusUzenetKeresoInfoPopUp(int feljegyzesId, int tanuloId, string osztalyNev)
        {
            try
            {
                var co = new FeljegyzesekHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetFeljegyzesById(feljegyzesId, tanuloId, osztalyNev: osztalyNev);
                var model = BaseFeljegyzesekApiController.ConvertFeljegyzesCoToModel(co);

                var popUpModel = new PopUpModel(model, "ElektronikusUzenetKereso_Info_PopUp");
                popUpModel = popUpModel.AddCancelBtn(popUpModel, "FeljegyzesKeresoHelper.elektronikusUzenetKeresoInfoPopUpCancel");

                return PartialView(Constants.General.PopupView, popUpModel);
            }
            catch (BlException ex)
            {
                throw new StatusError(HttpStatusCode.BadRequest, ex.Message);
            }
        }
    }
}