コード例 #1
0
ファイル: Gen6Controller.cs プロジェクト: spc-ofp/tubs-web
        public ActionResult Edit(Trip tripId, int pageNumber)
        {
            if (null == tripId)
            {
                return new NoSuchTripResult();
            }

            AddMinMaxDates(tripId);
            ViewBag.Title = String.Format("Edit GEN-6 page {1} for trip {0}", tripId.ToString(), pageNumber);
            ViewBag.TripNumber = tripId.SpcTripNumber ?? "This Trip";
            var pollutionEvent = FindByTripAndPageNumber(tripId, pageNumber);
            return View(pollutionEvent);
        }
コード例 #2
0
ファイル: Gen6Controller.cs プロジェクト: spc-ofp/tubs-web
        public ActionResult Add(Trip tripId)
        {
            if (null == tripId)
            {
                return new NoSuchTripResult();
            }

            AddMinMaxDates(tripId);
            ViewBag.Title = String.Format("Edit GEN-6 event for trip {0}", tripId.ToString());
            ViewBag.TripNumber = tripId.SpcTripNumber ?? "This Trip";
            var pevent = new PollutionEvent();
            pevent.Trip = tripId;
            return View(pevent);
        }
コード例 #3
0
ファイル: CrewController.cs プロジェクト: spc-ofp/tubs-web
        public ActionResult Edit(Trip tripId, CrewViewModel cvm)
        {
            if (!ModelState.IsValid)
            {
                if (IsApiRequest)
                {
                    return ModelErrorsResponse();
                }
                ViewBag.Title = String.Format("Edit crew list for {0}", tripId.ToString());
                return View(cvm);
            }

            using (var xa = MvcApplication.CurrentSession.BeginTransaction())
            {
                IRepository<Crew> repo = TubsDataService.GetRepository<Crew>(MvcApplication.CurrentSession);
                // Deletes first
                cvm.Deleted.ToList().ForEach(id => repo.DeleteById(id));

                // AsCrewList strips out any crew marked _destroy or that don't have details
                var crewlist = cvm.AsCrewList();

                crewlist.ToList().ForEach(c =>
                {
                    c.SetAuditTrail(User.Identity.Name, DateTime.Now);
                    c.Trip = tripId;
                    repo.Save(c);
                });

                // Flush to database
                xa.Commit();
            }
            if (IsApiRequest)
            {
                using (var repo = TubsDataService.GetRepository<Trip>(false))
                {
                    var trip = repo.FindById(tripId.Id) as PurseSeineTrip;
                    cvm = Mapper.Map<PurseSeineTrip, CrewViewModel>(trip);
                }
                return GettableJsonNetData(cvm);
            }

            return RedirectToAction("Index", "Crew", new { tripId = tripId.Id });
        }
コード例 #4
0
ファイル: MapController.cs プロジェクト: spc-ofp/tubs-web
        /// <summary>
        /// Return all trip positions as KML.
        /// </summary>
        /// <param name="tripId">Current trip</param>
        /// /// <param name="extension">File extension</param>
        /// <returns>KML document with all trip positions.</returns>
        public ActionResult AllData(Trip tripId, string extension)
        {
            if (null == tripId)
            {
                return InvalidTripResponse();
            }

            if (!IsKml(extension))
                return new HttpNotFoundResult();

            // Exclude any pushpins that won't display nicely
            var pushpins = tripId.Pushpins.Where(p => p.CanDisplay()).ToList();
            // Sort by date (assumes all timestamps have the same base frame of reference for date)
            // which occasionally is not true.
            pushpins.Sort(
                delegate(Pushpin p1, Pushpin p2)
                {
                    return Comparer<DateTime?>.Default.Compare(p1.Timestamp, p2.Timestamp);
                });

            var tripDoc = KmlBuilder.Build(tripId.Pushpins);
            tripDoc.name = "All Trip Positions";
            tripDoc.description =
                String.Format(
                    "Positions for trip {0} generated on {1} via URL: [{2}]",
                    tripId.ToString(),
                    DateTime.Now.ToShortDateString(),
                    this.HttpContext.Request.RawUrl);
            return new KmlResult()
            {
                Document = tripDoc,
                IsCompressed = IsCompressed(extension)
            };
        }
コード例 #5
0
ファイル: MapController.cs プロジェクト: spc-ofp/tubs-web
        /// <summary>
        /// Create KML document representing just the trip track.
        /// </summary>
        /// <param name="tripId">Current trip</param>
        /// <param name="isCompressed">Parameter for requesting compressed data</param>
        /// <returns>KML document containing trip track.</returns>
        internal KmlResult TrackKml(Trip tripId, bool isCompressed = false)
        {
            // Exclude any pushpins that won't display nicely
            var pushpins = tripId.Pushpins.Where(p => p.CanDisplay()).ToList();
            // Sort by date (assumes all timestamps have the same base frame of reference for date)
            // which occasionally is not true.
            pushpins.Sort(
                delegate(Pushpin p1, Pushpin p2)
                {
                    return Comparer<DateTime?>.Default.Compare(p1.Timestamp, p2.Timestamp);
                });

            var tripDoc = KmlBuilder.BuildTrack(tripId.Pushpins);
            tripDoc.name = "Trip Track";
            tripDoc.description =
                String.Format(
                    "Positions for trip {0} generated on {1} via URL: [{2}]",
                    tripId.ToString(),
                    DateTime.Now.ToShortDateString(),
                    this.HttpContext.Request.RawUrl);
            return new KmlResult()
            {
                Document = tripDoc,
                IsCompressed = isCompressed
            };
        }
コード例 #6
0
ファイル: MapController.cs プロジェクト: spc-ofp/tubs-web
 /// <summary>
 /// Create KML document representing just the trip positions.
 /// </summary>
 /// <param name="tripId">Current trip</param>
 /// <param name="isCompressed">Parameter for requesting compressed data</param>
 /// <returns>KML document containing trip positions.</returns>
 internal KmlResult PositionsKml(Trip tripId, bool isCompressed = false)
 {
     // Exclude any pushpins that won't display nicely
     var pushpins = tripId.Pushpins.Where(p => p.CanDisplay()).ToList();
     // There's no call to sort these positions
     var tripDoc = KmlBuilder.Build(tripId.Pushpins, false);
     tripDoc.name = "All Trip Positions";
     tripDoc.description =
         String.Format(
             "Positions for trip {0} generated on {1} via URL: [{2}]",
             tripId.ToString(),
             DateTime.Now.ToShortDateString(),
             this.HttpContext.Request.RawUrl);
     return new KmlResult()
     {
         Document = tripDoc,
         IsCompressed = isCompressed
     };
 }
コード例 #7
0
ファイル: Gen6Controller.cs プロジェクト: spc-ofp/tubs-web
        public ActionResult List(Trip tripId)
        {
            if (null == tripId)
            {
                return new NoSuchTripResult();
            }

            ViewBag.Title = String.Format("GEN-6 events for trip {0}", tripId.ToString());
            ViewBag.TripNumber = tripId.SpcTripNumber ?? "This Trip";

            return View(tripId.PollutionEvents ?? new List<PollutionEvent>());
        }
コード例 #8
0
ファイル: Gen1Controller.cs プロジェクト: spc-ofp/tubs-web
 private ActionResult Load(Trip tripId, string titleFormat)
 {
     ViewBag.Title = String.Format(titleFormat, tripId.ToString());
     return View(CurrentAction, tripId);
 }
コード例 #9
0
ファイル: TripController.cs プロジェクト: spc-ofp/tubs-web
        public ActionResult PositionAudit(Trip tripId)
        {
            IList<PositionAuditViewModel> auditResults = new List<PositionAuditViewModel>(tripId.Pushpins.Count);
            var pushpins = tripId.Pushpins.ToList();
            pushpins.Sort(
                delegate(Pushpin p1, Pushpin p2)
                {
                    return Comparer<DateTime?>.Default.Compare(p1.Timestamp, p2.Timestamp);
                });

            PositionAuditViewModel previous = PositionAuditViewModel.FromPushpin(pushpins.FirstOrDefault());
            foreach (var pin in pushpins.Skip(1))
            {
                var current = PositionAuditViewModel.FromPushpin(pin);
                auditResults.Add(PositionAuditViewModel.Diff(previous, current));
                previous = current;
            }

            ViewBag.Title = String.Format("Position Audit for {0}", tripId.ToString());
            ViewBag.TripNumber = tripId.SpcTripNumber ?? "This Trip";
            return View(auditResults);
        }
コード例 #10
0
ファイル: TripController.cs プロジェクト: spc-ofp/tubs-web
        public ActionResult Details(Trip tripId)
        {
            // ViewBag means nothing for an API request
            if (!IsApiRequest)
            {
                AddTripNavbar(tripId);
                ViewBag.Title = tripId.ToString();
                ViewBag.BaseDownloadName =
                    string.Format(
                        "{0}_{1}_",
                        tripId.Observer.StaffCode.NullSafeTrim(),
                        tripId.TripNumber.NullSafeTrim());
            }

            var vm = Mapper.Map<Trip, TripSummaryViewModel>(tripId);

            if (IsApiRequest)
                return GettableJsonNetData(vm);

            return View(vm);
        }
コード例 #11
0
ファイル: SeaDayController.cs プロジェクト: spc-ofp/tubs-web
 public ActionResult List(Trip tripId)
 {
     var repo = new TubsRepository<SeaDay>(MvcApplication.CurrentSession);
     // Push the projection into a List so that it's not the NHibernate collection implementation
     var days = repo.FilterBy(d => d.Trip.Id == tripId.Id).ToList<SeaDay>();
     ViewBag.Title = String.Format("Sea days for {0}", tripId.ToString());
     ViewBag.TripNumber = tripId.SpcTripNumber ?? "This Trip";
     return View(days);
 }
コード例 #12
0
ファイル: SetHaulController.cs プロジェクト: spc-ofp/tubs-web
        public ActionResult List(Trip tripId)
        {
            var trip = tripId as LongLineTrip;
            var repo = TubsDataService.GetRepository<LongLineSet>(MvcApplication.CurrentSession);
            var sets =
                TubsDataService.GetRepository<LongLineSet>(MvcApplication.CurrentSession)
                    .FilterBy(s => s.Trip.Id == tripId.Id)
                    .OrderBy(s => s.SetNumber);

            ViewBag.Title = String.Format("Sets for {0}", tripId.ToString());
            ViewBag.TripNumber = tripId.SpcTripNumber ?? "This Trip";
            return View(sets);
        }