public bool SaveOrUpdateApplicationWarning(ApplicationWarning pApplicationWarning)
 {
     using (HibernateConnection hibernateConnection = new HibernateConnection())
     {
         using (HibernateRepository<ApplicationWarning> hibernateRepository = new HibernateRepository<ApplicationWarning>(hibernateConnection))
         {
             var insertEntity = hibernateRepository.SaveOrUpdate(pApplicationWarning);
             if (insertEntity == null)
             {
                 return false;
             }
             else
             {
                 return true;
             }
         }
     }
 }
        public void ChecarPosicaoOnibusLinha(Boolean isSpTransServiceOk)
        {
            ApplicationApplication application = new ApplicationApplication();

            String warningMessage  = "O serviço da SpTrans está com instabilidade no momento. O acompanhamento de ônibus pode não funcionar como esperado.";
            DateTime brazilTimeNow = DateTimeExtensions.UTCBrazilDateTime;

            IEnumerable<nanoit.sptrans.hackatona.core.domain.entity.Application> listApplicationEntity = application.GetLastApplication();

            foreach (var applicationEntity in listApplicationEntity)
            {
                var warningEntity = this.GetLastApplicationWarning(warningMessage, applicationEntity.Id);

                if (warningEntity == null)
                {
                    warningEntity = new ApplicationWarning
                    {
                        Application = applicationEntity,
                        DateTimeOfCreation = brazilTimeNow,
                        Message = warningMessage
                    };
                }

                if (isSpTransServiceOk)
                {
                    warningEntity.DateTimeOfStart = brazilTimeNow.AddMinutes(-2);
                    warningEntity.DateTimeOfEnd = brazilTimeNow.AddMinutes(-1);
                }
                else
                {
                    warningEntity.DateTimeOfStart = brazilTimeNow;
                    warningEntity.DateTimeOfEnd = brazilTimeNow.AddMinutes(30);
                }

                this.SaveOrUpdateApplicationWarning(warningEntity);
            }
        }