Files
2025-12-11 09:17:16 +08:00

177 lines
5.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Mvc;
using Common;
using Domain;
using Service;
namespace WebSite.Controllers
{
public class HostAirController : BaseController
{
private static log4net.ILog logger = log4net.LogManager.GetLogger(typeof(HostAirController));
public IHostAirManager HostAirManager { get; set; }
public IHostManager HostManager { get; set; }
#region Action
public ActionResult Index()
{
return View();
}
[Authorize]
public ActionResult LoadHostAirs(int hostID)
{
var list = HostAirManager.LoadByHostID(hostID);
var result = list.Select(r => new {
r.HostID,
ModalTypeID = r.Modal.ModalType.ID,
CustomerName = (Language == Language.CN ? r.Modal.CustomerName : r.Modal.EnglishName),
r.No,
r.OnOff,
r.CurrentTemp,
r.SettingTemp,
r.Speed,
r.KeepTemp,
r.InitTemp,
r.HightTemp,
r.LowerTemp,
r.DeadTemp,
r.HotDevition,
r.ColdDevition,
r.WelcomeTime,
r.IsLockTemp,
r.LockTemp,
r.Mode,
Valve = HttpContext.InnerLanguage(r.Valve.ToString()),
r.ControlType,
ControlTypeName = HttpContext.InnerLanguage(r.ControlType.ToString() + "Control"),
r.CompensatoryTemp,
r.RelateRoomStatus,
r.RelateDoorContact,
r.ColdHotMode,
r.ColdHotSwitchDelayTime,
r.FanStop,
r.DisableFanHighSpeed,
r.SleepFlag,
r.SleepStartTime,
r.SleepEndTime,
r.SleepDevition,
r.TimeFlag,
r.TimeStartTime1,
r.TimeEndTime1,
r.TimeStartTime2,
r.TimeEndTime2,
r.TimeStartTime3,
r.TimeEndTime3
});
return Json(result, JsonRequestBehavior.AllowGet);
}
[Authorize]
public ActionResult Save(string jsonData)
{
try
{
IDictionary<string, string> data = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonData);
if (data == null)
{
throw new ApplicationException(HttpContext.InnerLanguage("PleaseChooseAirConditioning"));
}
if (!data.ContainsKey("HostID"))
{
throw new ApplicationException(HttpContext.InnerLanguage("InvalidRoom"));
}
var host = HostManager.Get(Convert.ToInt32(data["HostID"]));
if (host == null)
{
throw new ApplicationException(HttpContext.InnerLanguage("InvalidRoom"));
}
if (!host.Status)
{
string message = String.Format(HttpContext.InnerLanguage("SendFailedHostOffline"), host.RoomNumber);
return Json(new { IsSuccess = false, Message = message });
}
if (host.RoomCard != null)
{
throw new ApplicationException(HttpContext.InnerLanguage("ThisRoomIsInTheCardAndCanNotSetAirConditioningInformation"));
}
int modalTypeId = 0;
if (!data.ContainsKey("ModalTypeID") || !int.TryParse(data["ModalTypeID"], out modalTypeId))
{
throw new ApplicationException(HttpContext.InnerLanguage("InvalidAirConditioning"));
}
var hostAir = HostAirManager.GetByModalTypeID(host.ID, modalTypeId);
if (hostAir == null)
{
throw new ApplicationException(HttpContext.InnerLanguage("InvalidAirConditioning"));
}
hostAir.SettingTemp = Convert.ToInt32(data["SettingTemp"]);
hostAir.CompensatoryTemp = Convert.ToSingle(data["CompensatoryTemp"]);
hostAir.Speed = Convert.ToInt32(data["Speed"]);
hostAir.Mode = Convert.ToInt32(data["Mode"]);
hostAir.IsLockTemp = Convert.ToBoolean(data["IsLockTemp"]);
hostAir.LockTemp = Convert.ToInt32(data["LockTemp"]);
hostAir.KeepTemp = Convert.ToInt32(data["KeepTemp"]);
hostAir.InitTemp = Convert.ToInt32(data["InitTemp"]);
hostAir.HightTemp = Convert.ToInt32(data["HightTemp"]);
hostAir.LowerTemp = Convert.ToInt32(data["LowerTemp"]);
hostAir.ColdHotSwitchDelayTime = Convert.ToInt32(data["ColdHotSwitchDelayTime"]);
hostAir.ColdHotMode = Convert.ToInt32(data["ColdHotMode"]);
hostAir.DeadTemp = Convert.ToInt32(data["DeadTemp"]);
hostAir.HotDevition = Convert.ToInt32(data["HotDevition"]);
hostAir.ColdDevition = Convert.ToInt32(data["ColdDevition"]);
hostAir.WelcomeTime = Convert.ToInt32(data["WelcomeTime"]);
hostAir.RelateRoomStatus = Convert.ToBoolean(data["RelateRoomStatus"]);
hostAir.RelateDoorContact = Convert.ToBoolean(data["RelateDoorContact"]);
hostAir.FanStop = Convert.ToBoolean(data["FanStop"]);
hostAir.DisableFanHighSpeed = Convert.ToBoolean(data["DisableFanHighSpeed"]);
hostAir.SleepFlag = false;
hostAir.SleepStartTime = "00:00";
hostAir.SleepEndTime = "00:00";
hostAir.SleepDevition = 0;
hostAir.TimeFlag = false;
hostAir.TimeStartTime1 = "00:00";
hostAir.TimeEndTime1 = "00:00";
hostAir.TimeStartTime2 = "00:00";
hostAir.TimeEndTime2 = "00:00";
hostAir.TimeStartTime3 = "00:00";
hostAir.TimeEndTime3 = "00:00";
HostAirManager.Update(hostAir);
return Json(new { IsSuccess = true, Message = HttpContext.InnerLanguage("SentSuccessfully") });
}
catch (Exception ex)
{
if (logger.IsErrorEnabled)
{
logger.Error(HttpContext.InnerLanguage("SendAirconditioningSettingsFailed"), ex);
}
return Json(new { IsSuccess = false, Message = HttpContext.InnerLanguage("SendFailedBecause") + ex.Message });
}
}
#endregion
}
}