Пример #1
0
        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);
        }
Пример #2
0
        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);
        }