public Models.ReservationModel CreateReservationModel(Reservation rsv, int clientId, string ip) { var item = new Models.ReservationModel(); item.ReservationID = rsv.ReservationID; item.ResourceID = rsv.Resource.ResourceID; item.ResourceName = rsv.Resource.ResourceName; item.AccountID = rsv.Account.AccountID; item.AccountName = rsv.Account.Name; item.ShortCode = rsv.Account.ShortCode; item.ReservedByClientID = rsv.Client.ClientID; item.ReservedByClientName = string.Format("{0} {1}", rsv.Client.FName, rsv.Client.LName); Client c; if (rsv.ClientIDBegin.HasValue) { if (rsv.ClientIDBegin.Value > 0) { c = DA.Current.Single <Client>(rsv.ClientIDBegin.Value); item.StartedByClientID = c.ClientID; item.StartedByClientName = string.Format("{0} {1}", c.FName, c.LName); } else { item.StartedByClientID = 0; item.StartedByClientName = string.Empty; } } else { c = DA.Current.Single <Client>(clientId); item.StartedByClientID = clientId; item.StartedByClientName = string.Format("{0} {1}", c.FName, c.LName); } var isInLab = KioskUtility.ClientInLab(rsv.Resource.ProcessTech.Lab.LabID, clientId, ip); ReservationState state = ReservationUtility.GetReservationState(rsv.ReservationID, clientId, isInLab); item.Startable = ReservationUtility.IsStartable(state); item.NotStartableMessage = GetNotStartableMessage(state); var inst = ActionInstanceUtility.Find(ActionType.Interlock, rsv.Resource.ResourceID); item.HasInterlock = inst != null; item.ReturnUrl = GetResourceUrl(rsv.Resource.ResourceID); return(item); }
private bool?GetState(OnTheFlyResource res) { ActionInstance act = ActionInstanceUtility.Find(ActionType.Interlock, res.Resource.ResourceID); if (act == null) { return(null); } var point = act.GetPoint(); var blockState = GetBlockState(point.Block.BlockID); var result = WagoInterlock.GetPointState(point.PointID, blockState); return(result); }