public static void FNPASFileAgentExecute(string[] args)
        {
            try
            {
                FicheiroRepository ficheiroRepository = new FicheiroRepository();
                DomainModels context = new DomainModels();
                var x = context.Ficheiros;
                IQueryable<Ficheiro> query = null;

                query = ficheiroRepository.All;
                query = ficheiroRepository.All.Where(f => f.estado == Ficheiro.EstadoFicheiro.pendente);
                int d = 3;
                foreach (Ficheiro file in query)
                {
                    file.estado = Ficheiro.EstadoFicheiro.emProcessamento;

                    List<ErroFicheiro> errosFicheiro = new List<ErroFicheiro>();
                    try
                    {
                        file.validar();
                    }
                    catch (ErroFicheiroException ex)
                    {
                        file.errosFicheiro = ex.errosFicheiro;
                        file.estado = Ficheiro.EstadoFicheiro.erro;
                        continue;
                    }

                    file.carregaEventos();

                }
            }
            catch (Exception ex){ }
        }
    void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
    {
        // TODO: Add your acction filter's tasks here
        // Log Action Filter Call
        DomainModels db = new DomainModels();

<<<<<<< HEAD
        

=======
>>>>>>> 6bef4ea7199f182f1dcc5a1156a157494ff9f29c
        //var result = (ApoliceCreationViewModel)filterContext.ActionParameters[ParameterName];
        /*var context = new UsersContext();
        var username = filterContext.HttpContext.User.Identity.Name;
        var user = context.UserProfiles.SingleOrDefault(u => u.UserName == username);
        user.RandomString = "Random1";
        */

        ActionLog log = new ActionLog()
        {
            Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
            Action = filterContext.ActionDescriptor.ActionName,
            IP = filterContext.HttpContext.Request.UserHostAddress,
            DateTime = filterContext.HttpContext.Timestamp,
            //Message = "" + username +" injected string " + user.RandomString
        };
        /*
        db.ActionLogs.Add(log);
        db.SaveChanges();
        context.SaveChanges();
        */
        this.OnActionExecuting(filterContext);
    }
        void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {
            DomainModels db = new DomainModels();
            int messagesToPreview = 5;

            UserProfile user = db.UserProfiles.Find(WebSecurity.CurrentUserId);

            if (user != null)
            {

                filterContext.Controller.ViewData["NumNotificacoes"] = user.entidade.notificacoes.Count;

                List<Notificacao> unreadNotificacaoList = user.entidade.notificacoes.Where<Notificacao>(n => n.lida == false)
                    .OrderBy(n => n.dataCriacao).Reverse<Notificacao>().ToList();
                filterContext.Controller.ViewData["NumNovasNotificacoes"] = unreadNotificacaoList.Count;
                   
                messagesToPreview = (unreadNotificacaoList.Count > messagesToPreview ? messagesToPreview : unreadNotificacaoList.Count);
                filterContext.Controller.ViewData["MessagesToPreview"] = messagesToPreview;

                List<Notificacao> notificacaoPreviewList = unreadNotificacaoList.GetRange(0, messagesToPreview);

                for(int i = 0; i < messagesToPreview; i++){
                    filterContext.Controller.ViewData["Notificacao" + (i) + ".ID"] = notificacaoPreviewList[i].notificacaoId.ToString();
                    filterContext.Controller.ViewData["Notificacao" + (i) + ".ImageUrl"] = notificacaoPreviewList[i].imageUrl();
<<<<<<< HEAD
                    filterContext.Controller.ViewData["Notificacao" + (i) + ".Tipo"] = notificacaoPreviewList[i].tipologia.descricao;
=======
                    filterContext.Controller.ViewData["Notificacao" + (i) + ".Tipo"] = notificacaoPreviewList[i].tipoToString();
>>>>>>> 6bef4ea7199f182f1dcc5a1156a157494ff9f29c
                    filterContext.Controller.ViewData["Notificacao" + (i) + ".Mensagem"] = notificacaoPreviewList[i].mensagemToString();
                    filterContext.Controller.ViewData["Notificacao" + (i) + ".Data"] = notificacaoPreviewList[i].dataCriacao.ToString();
                }

                int numIndicadores = user.entidade.indicadores.Count;
                filterContext.Controller.ViewData["NumIndicadores"] = numIndicadores;
                List<Indicador> listaIndicadores = user.entidade.indicadores.ToList();
                for (int i = 0; i < numIndicadores; i++)
                {
                    filterContext.Controller.ViewData["Indicador" + (i) + ".Descricao"] = listaIndicadores[i].descricao;
<<<<<<< HEAD
                    filterContext.Controller.ViewData["Indicador" + (i) + ".Valor"] = listaIndicadores[i].valor;
=======
                    filterContext.Controller.ViewData["Indicador" + (i) + ".Valor"] = listaIndicadores[i].calcular().valor;
>>>>>>> 6bef4ea7199f182f1dcc5a1156a157494ff9f29c
                }
            }
            else
            {
                filterContext.Controller.ViewData["NumNotificacoes"] = null;
                filterContext.Controller.ViewData["NumIndicadores"] = null;
            }

            this.OnActionExecuting(filterContext);
        }
        /// <summary>
        /// Set things in motion so your service can do its work.
        /// </summary>
        protected override void OnStart(string[] args)
        {
            FicheiroRepository ficheiroRepository = new FicheiroRepository();
            DomainModels context = new DomainModels();
            var x = context.Ficheiros;
            IQueryable<Ficheiro> query = null;

            query = ficheiroRepository.All;
            query = ficheiroRepository.All.Where(f => f.estado == Ficheiro.EstadoFicheiro.pendente);
            int d = 3;
            foreach (Ficheiro file in query.ToList())
            {
                file.estado = Ficheiro.EstadoFicheiro.emProcessamento;

                List<ErroFicheiro> errosFicheiro = new List<ErroFicheiro>();
                try
                {
                    file.validar();
                }
                catch (ErroFicheiroException ex)
                {
                    file.errosFicheiro = ex.errosFicheiro;
                    file.estado = Ficheiro.EstadoFicheiro.erro;
                    continue;
                }

                file.carregaEventos();
            }

            //if (!System.IO.Directory.Exists(folderPath))
            //    System.IO.Directory.CreateDirectory(folderPath);

            //FileStream fs = new FileStream(folderPath + "\\WindowsService.txt",
            //                    FileMode.OpenOrCreate, FileAccess.Write);
            //StreamWriter m_streamWriter = new StreamWriter(fs);
            //m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
            //m_streamWriter.WriteLine(" WindowsService: Service Started at " +
            //   DateTime.Now.ToShortDateString() + " " +
            //   DateTime.Now.ToShortTimeString() + "\n");
            //m_streamWriter.Flush();
            //m_streamWriter.Close();
        }
            public SimpleMembershipInitializer()
            {
                //DbExample1.PopulateDB();
                
                Database.SetInitializer<DomainModels>(null);
                try
                {
                    using (var context = new DomainModels())
                    {
                        if (!context.Database.Exists())
                        {
                            // Create the SimpleMembership database without Entity Framework migration schema
                            ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                        }
                    }

                    if (!WebSecurity.Initialized)
                    {
<<<<<<< HEAD
                        WebSecurity.InitializeDatabaseConnection("DomainModels", "MAT_USER_PROFILE", "UserId_PK", "UserName", autoCreateTables: true);
                    }
        /// <summary>
        /// Method used to build the query that will reflect the filter conditions and the sort expression.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="filters"></param>
        /// <param name="sorting"></param>
        /// <param name="includeList"></param>
        /// <returns></returns>
        protected IQueryable<Apolice> GetQuery(DomainModels context, Expression<Func<Apolice, bool>> filters, string sorting)
        {

            IQueryable<Apolice> objectQuery = context.Apolices.Include("veiculo").Include("tomador").Include("concelho").Include("entidade"); ;
            var query = objectQuery.Where(filters == null ? t => 1 == 1 : filters);
            query = query.OrderBy(s => s.numeroApolice);
            return query;
        }
 public static void PopulateDB(DomainModels db)
 {