예제 #1
0
 public void UpdateSquawk(Squawk squawk)
 {
     _repository.Attach(squawk);
     _repository.UnitOfWork.SaveChanges();
 }
예제 #2
0
 public void CreateSquawk(Squawk squawk)
 {
     _repository.Add<Squawk>(squawk);
     _repository.UnitOfWork.SaveChanges();
 }
예제 #3
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);
        }
예제 #4
0
 public Squawk AddSquawk(Squawk squawk)
 {
     _repository.Add<Squawk>(squawk);
     _repository.UnitOfWork.SaveChanges();
     return squawk;
 }
예제 #5
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();
        }