示例#1
0
        public ReservationClient GetReservationClient(IReservationItem rsv, IClient client, IEnumerable <IResourceClient> resourceClients, IEnumerable <IReservationInviteeItem> invitees)
        {
            var physicalAccessUtil = GetPhysicalAccessUtility();
            var inlab = physicalAccessUtil.ClientInLab(client.ClientID, rsv.LabID);

            return(ReservationClient.Create(rsv, client, resourceClients, invitees, inlab));
        }
 public ActionResult GetPositions(int sectorIdTo, string listPositions)
 {
     var list = MibClient2.Tools.MibJson.FromJsonString<List<int>>(listPositions);
     var reservationClient = new ReservationClient(apiConfig.GetString("ImxApiMediaUrl"), apiConfig.GetString("oAuthConsumerKey"), apiConfig.GetString("oAuthConsumerSecret"), 1);
     var positions = reservationClient.GetPositions(sectorIdTo, list); ;
     return Json(positions, JsonRequestBehavior.AllowGet);
 }
示例#3
0
        public ActionResult Delete(int reservationId)
        {
            ReservationClient client = new ReservationClient();

            if (client.Delete(reservationId))
            {
                TempData["message"] = string.Format($"The ReservationID {reservationId} was deleted");
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult GetMatrixPositions(int sectorId, string minimumRow, string maximumRow,
            int minimumColumn, int maximumColumn, bool ascendingRow, bool ascendingColumn, MapRowSequenceType rowSequenceType)
        {
            var reservationClient = new ReservationClient(apiConfig.GetString("ImxApiMediaUrl"), apiConfig.GetString("oAuthConsumerKey"), apiConfig.GetString("oAuthConsumerSecret"), 1);

            var positions = reservationClient.GetPositionsByLocation(sectorId,
                minimumRow, maximumRow, minimumColumn, maximumColumn, ascendingRow, ascendingColumn, rowSequenceType);

            return Json(positions, JsonRequestBehavior.AllowGet);
        }
        private ReservationStateArgs GetReservationStateArgs(IReservationItem rsv, int currentUserClientId, int inviteeClientId, bool inlab, DateTime now)
        {
            IClient client = Provider.Data.Client.GetClient(currentUserClientId);
            IEnumerable <IResourceClient>         resourceClients = Provider.Scheduler.Resource.GetResourceClients(rsv.ResourceID);
            IEnumerable <IReservationInviteeItem> invitees        = new[] { GetMockReservationInvitee(inviteeClientId, rsv.ReservationID) };

            ReservationClient rc = Helper.GetReservationClient(rsv, client, resourceClients, invitees);

            rc.InLab = inlab;
            ReservationStateArgs result = ReservationStateArgs.Create(rsv, rc, now);

            return(result);
        }
示例#6
0
        public ReservationClient GetReservationClient(IReservationItem rsv, IEnumerable <IReservationInviteeItem> invitees, IClient client)
        {
            var resourceClients = Provider.Scheduler.Reservation.GetResourceClients(rsv.ResourceID);
            var userAuth        = Reservations.GetAuthLevel(resourceClients, client);

            var result = new ReservationClient
            {
                ClientID      = client.ClientID,
                ReservationID = rsv.ReservationID,
                ResourceID    = rsv.ResourceID,
                IsReserver    = rsv.ClientID == client.ClientID,
                IsInvited     = invitees.Any(x => x.InviteeID == client.ClientID),
                InLab         = ClientInLab(rsv.LabID),
                UserAuth      = userAuth
            };

            return(result);
        }
示例#7
0
 public ActionResult Edit(Reservation reservation)
 {
     if (ModelState.IsValid)
     {
         ReservationClient client = new ReservationClient();
         if (reservation.ReservationId == 0)
         {
             client.Create(reservation);
         }
         else
         {
             if (client.Update(reservation))
             {
                 TempData["message"] = string.Format($"The ReservationID " +
                                                     $"{reservation.ReservationId} has been saved");
             }
         }
         return(RedirectToAction("Index"));
     }
     else
     {
         return(View(reservation));
     }
 }
        public ReservationState GetReservationCell(CustomTableCell rsvCell, IReservationItem rsv, ReservationClient client, IEnumerable <IReservationProcessInfo> reservationProcessInfos, IEnumerable <IReservationInviteeItem> invitees, LocationPathInfo locationPath, ViewType view, DateTime now)
        {
            int reservationId = rsv.ReservationID;
            int resourceId    = rsv.ResourceID;

            // Reservation State
            var args  = ReservationStateArgs.Create(rsv, client, now);
            var state = ReservationStateUtility.Create(now).GetReservationState(args);

            // Tooltip Caption and Text
            string caption = Reservations.GetReservationCaption(state);
            string toolTip = Reservations.Create(Provider, now).GetReservationToolTip(rsv, state, reservationProcessInfos, invitees);

            rsvCell.Attributes["data-tooltip"] = toolTip;
            rsvCell.Attributes["data-caption"] = caption;

            // Remove the create reservation link if it was added.
            if (rsvCell.Controls.Count > 0)
            {
                rsvCell.Controls.Clear();
            }

            // BackGround color and cursor - set by CSS
            rsvCell.CssClass = state.ToString();

            var div = new HtmlGenericControl("div");

            div.Attributes.Add("class", "reservation-container");

            var cellText = rsv.DisplayName;

            if (rsv.RecurrenceID.GetValueOrDefault(-1) > 0)
            {
                cellText += " [R]";
            }

            // Reservation Text
            Literal litReserver = new Literal
            {
                Text = $"<div class=\"cell-text\">{cellText}</div>"
            };

            div.Controls.Add(litReserver);

            // Delete Button
            // 2/11/05 - GPR: allow tool engineers to cancel any non-started, non-repair reservation in the future
            ClientAuthLevel userAuth = args.UserAuth;

            PathInfo path = PathInfo.Create(rsv.BuildingID, rsv.LabID, rsv.ProcessTechID, rsv.ResourceID);
            string   navurl;

            //if (state == ReservationState.Editable || state == ReservationState.StartOrDelete || state == ReservationState.StartOnly || (userAuth == ClientAuthLevel.ToolEngineer && DateTime.Now < rsv.BeginDateTime && rsv.ActualBeginDateTime == null && state != ReservationState.Repair))
            // [2020-09-18 jg] StartOnly should not allow delete and NotInLab should allow delete
            if (CanDeleteReservation(state, args, now))
            {
                navurl = UrlUtility.GetDeleteReservationUrl(rsv.ReservationID, rsvCell.CellDate, state, view);
                var hypDelete = new HyperLink
                {
                    NavigateUrl = NavigateUrl(navurl, path, locationPath),
                    ImageUrl    = "~/images/deleteGrid.gif",
                    CssClass    = "ReservDelete"
                };

                hypDelete.Attributes["data-tooltip"] = "Click to cancel reservation";
                hypDelete.Attributes["data-caption"] = "Cancel this reservation";

                div.Controls.Add(hypDelete);

                rsvCell.HorizontalAlign = HorizontalAlign.Left;
                rsvCell.VerticalAlign   = VerticalAlign.Top;
            }

            // 2011/04/03 Modify button
            // [2020-09-18 jg] StartOnly should not allow modification (also NotInLab should not allow modification)
            //if (state == ReservationState.Editable || state == ReservationState.StartOrDelete || state == ReservationState.StartOnly)
            if (CanModifyReservation(state, args, now))
            {
                navurl = UrlUtility.GetModifyReservationUrl(rsv.ReservationID, rsvCell.CellDate, state, view);
                var hypModify = new HyperLink
                {
                    NavigateUrl = NavigateUrl(navurl, path, locationPath),
                    ImageUrl    = "~/images/edit.png",
                    CssClass    = "ReservModify"
                };

                hypModify.Attributes["data-tooltip"] = "Click to modify reservation";
                hypModify.Attributes["data-caption"] = "Modify this reservation";

                div.Controls.Add(hypModify);

                rsvCell.HorizontalAlign = HorizontalAlign.Left;
                rsvCell.VerticalAlign   = VerticalAlign.Top;
            }

            rsvCell.Controls.Add(div);

            return(state);
        }
示例#9
0
        public ViewResult Edit(int reservationId)
        {
            ReservationClient client = new ReservationClient();

            return(View(client.Read(reservationId)));
        }
示例#10
0
        public ActionResult Index()
        {
            ReservationClient client = new ReservationClient();

            return(View(client.ReadAll()));
        }