Example #1
0
        public ActionResult ResolveSquawk(ResolveSquawkViewModel viewModel)
        {
            ProfileCommon profile = (ProfileCommon)HttpContext.Profile;
            Squawk        squawk  = _dataService.GetSquawkById(viewModel.Id);

            squawk.ResolutionNotes = viewModel.ResolutionNotes;
            squawk.ResolvedById    = profile.MemberId;
            squawk.ResolvedOn      = DateTime.Now;
            squawk.Status          = viewModel.Status;

            _dataService.UpdateSquawk(squawk);

            SquawkDetailViewModel sqVM = new SquawkDetailViewModel()
            {
                Id                 = squawk.Id,
                AircraftId         = squawk.AircraftId,
                Description        = squawk.Description,
                PostedById         = squawk.PostedById,
                PostedOn           = squawk.PostedOn,
                RegistrationNumber = squawk.Aircraft.RegistrationNumber,
                ResolutionNotes    = squawk.ResolutionNotes,
                ResolvedOn         = squawk.ResolvedOn,
                ResolvedBy         = profile.FirstName + " " + profile.LastName,
                Status             = squawk.Status,
                Subject            = squawk.Subject
            };

            return(View(ViewNames.SquawkDetails, sqVM));
        }
Example #2
0
        public ActionResult Edit(int id)
        {
            Squawk          squawk       = _dataService.GetSquawkById(id);
            List <Aircraft> aircraftList = _dataService.GetAllAirplanes();
            List <Member>   memberList   = _dataService.GetAllMembersByRole("Admin");

            EditSquawkViewModel viewModel = new EditSquawkViewModel();

            viewModel.AircraftId         = squawk.AircraftId;
            viewModel.Description        = squawk.Description;
            viewModel.Id                 = squawk.Id;
            viewModel.PostedById         = squawk.PostedById;
            viewModel.PostedBy           = squawk.PostedBy.FullName;
            viewModel.PostedOn           = squawk.PostedOn;
            viewModel.RegistrationNumber = squawk.Aircraft.RegistrationNumber;
            viewModel.Status             = squawk.Status;
            viewModel.Subject            = squawk.Subject;

            //TODO: Finish this!
            if (squawk.Comments.Count() > 0)
            {
                viewModel.Comments = squawk.Comments.Select(c => new SquawkCommentViewModel()
                {
                    Text = c.Text
                }).ToList();
            }

            ViewBag.AircraftId   = new SelectList(aircraftList, "Id", "Name", squawk.AircraftId);
            ViewBag.OriginatorId = new SelectList(memberList, "Id", "Status", squawk.PostedById);

            return(View(viewModel));
        }
Example #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            Squawk squawk = db.Squawks.Find(id);

            db.Squawks.Remove(squawk);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #4
0
        /// <summary>
        /// The Squawk
        ///
        /// This command uses the WD capabilities to emit a quick audible/visible pulse called
        /// a "squawk". The squawk command has no effect if the WD is currently active (warning
        /// in progress).
        ///
        /// <param name="squawkInfo" <see cref="byte"> Squawk Info</ param >
        /// <returns> the command result Task </returns>
        /// </summary>
        public Task <CommandResult> Squawk(byte squawkInfo)
        {
            Squawk command = new Squawk();

            // Set the fields
            command.SquawkInfo = squawkInfo;

            return(Send(command));
        }
Example #5
0
 public ActionResult Create([Bind(Include = "PlaneId,Issue,DateRecorded,Resolved,DateResolved,WhoResolved,CostToResolve,ContactPhone,ContactName")] Squawk squawk)
 {
     if (ModelState.IsValid)
     {
         db.Squawks.Add(squawk);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.PlaneId = new SelectList(db.Planes, "Id", "TailNumber", squawk.PlaneId);
     return(View(squawk));
 }
Example #6
0
        // GET: Squawks/Create
        public ActionResult Create()
        {
            ViewBag.PlaneId = new SelectList(db.Planes, "Id", "TailNumber");
            var squawk = new Squawk();

            squawk.PlaneId      = 1;
            squawk.DateRecorded = DateTime.Now;
            var latestSquawk = db.Squawks.Where(x => x.PlaneId == squawk.PlaneId).OrderByDescending(x => x.DateRecorded).FirstOrDefault();

            if (latestSquawk != null)
            {
            }
            return(View(squawk));
        }
Example #7
0
        // GET: Squawks/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Squawk squawk = db.Squawks.Find(id);

            if (squawk == null)
            {
                return(HttpNotFound());
            }
            return(View(squawk));
        }
Example #8
0
        public ActionResult Create(CreateSquawkViewModel model)
        {
            if (ModelState.IsValid)
            {
                Squawk squawk = new Squawk()
                {
                    AircraftId     = model.AircraftId,
                    Subject        = model.Subject,
                    Description    = model.Description,
                    GroundAircraft = model.GroundAircraft,
                    PostedById     = ProfileCommon.GetProfile().MemberId,
                    PostedOn       = DateTime.Now,
                    Status         = SquawkStatus.Open.ToString()
                };
                _dataService.AddSquawk(squawk);

                if (model.GroundAircraft)
                {
                    _dataService.UpdateAircraftStatus(model.AircraftId, AircraftStatus.Grounded.ToString());
                }

                try
                {
                    Aircraft aircraft = _dataService.GetAircraftById(model.AircraftId);

                    MailMessage message = new MailMessage();
                    message.Subject = "Squawk posted for " + aircraft.RegistrationNumber;
                    message.From    = new MailAddress("*****@*****.**");
                    message.Body    = model.Subject + "\t";
                    message.Body   += model.Description;

                    List <Member> owners = _dataService.GetAircraftOwners(model.AircraftId);
                    foreach (var owner in aircraft.Owners)
                    {
                        message.To.Add(new MailAddress(owner.Login.Email));
                    }

                    SendEmail(message);
                }
                catch (Exception ex)
                {
                    LogError("Error while sending squawk notification email for aircraftId " + model.AircraftId + "\t" + ex.ToString());
                }

                return(RedirectToAction("ListActiveSquawks"));
            }

            return(View(model));
        }
Example #9
0
        public ActionResult Index(SquawkInputModel model)
        {
            if (ModelState.IsValid)
            {
                var newSquawk = new Squawk
                {
                    UserId    = User.Identity.Id(),
                    Content   = model.Squawk.Left(400),
                    CreatedAt = DateTime.Now
                };
                _db.Insert(newSquawk);
            }

            return(Index());
        }
Example #10
0
        // GET: Squawks/Edit/5 SECTION DONE
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Squawk squawk = db.Squawks.Find(id);

            if (squawk == null)
            {
                return(HttpNotFound());
            }
            ViewBag.PlaneId = new SelectList(db.Planes, "Id", "TailNumber", squawk.PlaneId);
            return(View(squawk));
        }
Example #11
0
        public ActionResult ResolveSquawk(int squawkId)
        {
            Squawk squawk = _dataService.GetSquawkById(squawkId);

            ResolveSquawkViewModel vm = new ResolveSquawkViewModel();

            vm.Status             = squawk.Status;
            vm.AircraftId         = squawk.AircraftId;
            vm.Description        = squawk.Description;
            vm.Id                 = squawk.Id;
            vm.RegistrationNumber = squawk.Aircraft.RegistrationNumber;
            vm.ResolutionNotes    = squawk.ResolutionNotes;
            vm.Subject            = squawk.Subject;

            return(View(ViewNames.ResolveSquawk, vm));
        }
Example #12
0
        public ViewResult Details(int id)
        {
            Squawk squawk = _dataService.GetSquawkById(id);

            SquawkDetailViewModel model = new SquawkDetailViewModel()
            {
                AircraftId         = squawk.AircraftId,
                Description        = squawk.Description,
                Id                 = squawk.Id,
                PostedBy           = squawk.PostedBy.FullName,
                PostedOn           = squawk.PostedOn,
                RegistrationNumber = squawk.Aircraft.RegistrationNumber,
                ResolvedOn         = squawk.ResolvedOn,
                ResolutionNotes    = squawk.ResolutionNotes,
                Status             = squawk.Status,
                Subject            = squawk.Subject
            };

            if (squawk.ResolvedById != null)
            {
                Member resolvedBy = _dataService.GetMember((int)squawk.ResolvedById);
                model.ResolvedBy = resolvedBy.FullName;
            }

            foreach (var comment in squawk.Comments)
            {
                SquawkCommentViewModel commentVM = new SquawkCommentViewModel()
                {
                    Id         = comment.Id,
                    PostedById = comment.PostedByMemberId,
                    PostedOn   = comment.PostDate,
                    Text       = comment.Text
                };

                Member poster = _dataService.GetMember(comment.PostedByMemberId);
                commentVM.PostedBy = poster.FullName;

                model.Comments.Add(commentVM);
            }

            return(View(ViewNames.SquawkDetails, model));
        }
 public void ApplyStateVector(StateVector stateVector, long version)
 {
     lock (_SyncLock) {
         LastSeenInOpenSkyUtc = DateTime.UtcNow;
         Version = Math.Max(Version, Callsign.UpdateValue(stateVector.Callsign, version));
         Version = Math.Max(Version, OriginCountry.UpdateValue(stateVector.OriginCountry, version));
         Version = Math.Max(Version, LastPositionTime.UpdateValue(stateVector.TimeOfLastPosition, version));
         Version = Math.Max(Version, LastMessageTime.UpdateValue(stateVector.TimeOfLastMessage, version));
         Version = Math.Max(Version, Latitude.UpdateValue(stateVector.Latitude, version));
         Version = Math.Max(Version, Longitude.UpdateValue(stateVector.Longitude, version));
         Version = Math.Max(Version, AltitudeFeet.UpdateValue(stateVector.AltitudeFeet, version));
         Version = Math.Max(Version, OnGround.UpdateValue(stateVector.OnGround, version));
         Version = Math.Max(Version, GroundSpeedKnots.UpdateValue(stateVector.GroundSpeedKnots, version));
         Version = Math.Max(Version, Track.UpdateValue(stateVector.Track, version));
         Version = Math.Max(Version, VerticalRateFeetPerSecond.UpdateValue(stateVector.VerticalRateFeetPerSecond, version));
         Version = Math.Max(Version, Squawk.UpdateValue(stateVector.Squawk, version));
         Version = Math.Max(Version, SpecialPurposeIndicator.UpdateValue(stateVector.SpecialPurposeIndicator, version));
         Version = Math.Max(Version, PositionSource.UpdateValue(stateVector.PositionSource, version));
     }
 }
Example #14
0
        public ActionResult Edit(EditSquawkViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                Squawk squawk = _dataService.GetSquawkById(viewModel.Id);
                squawk.Status          = viewModel.Status;
                squawk.ResolutionNotes = viewModel.ResolutionNotes;
                squawk.Subject         = viewModel.Subject;
                squawk.Description     = viewModel.Description;

                _dataService.UpdateSquawk(squawk);

                return(RedirectToAction("ListActiveSquawks"));
            }

            //List<Aircraft> aircraftList = _dataService.GetAllAirplanes();
            //List<Member> memberList = _dataService.GetAllMembersByRole("Admin");
            //ViewBag.AircraftId = new SelectList(aircraftList, "Id", "Name", squawk.AircraftId);
            //ViewBag.OriginatorId = new SelectList(memberList, "Id", "Status", squawk.PostedById);

            return(View(viewModel));
        }
Example #15
0
 public void UpdateSquawk(Squawk squawk)
 {
     _repository.Attach(squawk);
     _repository.UnitOfWork.SaveChanges();
 }
Example #16
0
 public Squawk AddSquawk(Squawk squawk)
 {
     _repository.Add <Squawk>(squawk);
     _repository.UnitOfWork.SaveChanges();
     return(squawk);
 }
Example #17
0
 public void CreateSquawk(Squawk squawk)
 {
     _repository.Add <Squawk>(squawk);
     _repository.UnitOfWork.SaveChanges();
 }
Example #18
0
        public void ImportSquawks()
        {
            TimeSpan squawkBackImport = new TimeSpan(180, 0, 0, 0);
            DateTime cutoffDate       = DateTime.Now.Subtract(squawkBackImport);
            IEnumerator <NtfcDataSet.tblThreadsRow> threads = _dataSet.tblThreads.GetEnumerator();

            var articlesByThreadId = _dataSet.tblArticles
                                     .Where(r => r.Posted > cutoffDate)
                                     .OrderBy(r => r.Posted)
                                     .GroupBy(r => r.ThreadID);

            foreach (var articleGroup in articlesByThreadId)
            {
                int threadId = articleGroup.Key;
                NtfcDataSet.tblThreadsRow thread = _dataSet.tblThreads.Where(t => t.ThreadId == threadId).FirstOrDefault();
                if (thread == null)
                {
                    continue;
                }
                NtfcDataSet.tblGroupsRow groupRow = _dataSet.tblGroups.FirstOrDefault(g => g.GroupID == thread.GroupID);

                Aircraft aircraft = _dbContext.Aircraft.FirstOrDefault(a => a.RegistrationNumber == groupRow.GroupName.Trim());
                if (aircraft == null)
                {
                    continue;
                }

                Member poster = _dbContext.Members.FirstOrDefault(m => m.FirstName == thread.First_Name.Trim() && m.LastName == thread.Last_name);
                if (poster == null)
                {
                    continue;
                }

                Squawk squawk = new Squawk();
                squawk.AircraftId     = aircraft.Id;
                squawk.GroundAircraft = false;
                squawk.PostedById     = poster.Id;
                squawk.PostedOn       = articleGroup.First().Posted;
                squawk.Description    = articleGroup.First().Message;
                squawk.Subject        = thread.ThreadName;

                if (articleGroup.Count() > 1)
                {
                    squawk.Comments = new List <SquawkComment>();

                    //Member responder = _dbContext.Members.FirstOrDefault(m => m.FirstName == articleGroup.Last().First_Name.Trim() && m.LastName == articleGroup.Last().Last_Name.Trim());
                    //squawk.RespondedBy = responder.Id;
                    //squawk.RespondedOn = articleGroup.Last().Posted;
                    //squawk.Response = articleGroup.Last().Message;

                    for (int i = 1; i < articleGroup.Count(); i++)
                    {
                        NtfcDataSet.tblArticlesRow current = articleGroup.ElementAt(i);
                        SquawkComment comment   = new SquawkComment();
                        Member        commenter = _dbContext.Members.FirstOrDefault(m => m.FirstName == current.First_Name && m.LastName == current.Last_Name);
                        comment.PostDate         = current.Posted;
                        comment.PostedByMemberId = commenter.Id;
                        comment.Text             = current.Message.Trim();

                        squawk.Comments.Add(comment);
                    }

                    if (articleGroup.Count() > 2)
                    {
                    }
                }

                _dbContext.Squawks.Add(squawk);
            }
            _dbContext.SaveChanges();
        }