public FileResult Index(DateTime dtIni, DateTime dtFin) { dtFin = dtFin.AddDays(1).AddSeconds(-1); string caminho = Server.MapPath("~/doc/MODELO_RELATORIO.xlsx"); using (var db = new TPAContext()) { RelatorioApplication app = new RelatorioApplication(db); string saida = app.GeraRelatorioPadrao(dtIni, dtFin, caminho); var bytes = System.IO.File.ReadAllBytes(saida); try { return(File(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Relatorio.xlsx")); } finally { if (!string.IsNullOrWhiteSpace(saida) && (System.IO.File.Exists(saida))) { System.IO.File.Delete(saida); } } } }
/// <summary> /// traz um dicionário de datas/bool onde o lado bool será true apenas se a data for dia útil /// usa um intervalo de datas para trazer um calendário maior /// </summary> /// <param name="dt"></param> /// <param name="dtFim"></param> /// <returns></returns> public virtual Dictionary <DateTime, bool> GetCalendarioMes(DateTime dt, DateTime dtFim) { Dictionary <DateTime, bool> result = new Dictionary <DateTime, bool>(); List <DateTime> feriados = new List <DateTime>(); using (TPAContext db = new TPAContext()) { feriados.AddRange(db.Feriados.Where(f => f.Data >= dt && f.Data <= dtFim).Select(f => f.Data).ToList <DateTime>()); } while (dt <= dtFim) { if (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday) { result.Add(dt, false); } else if (feriados.Contains(dt)) { result.Add(dt, false); } else { result.Add(dt, true); } dt = dt.AddDays(1); } return(result); }
/// <summary> /// sobrecarrega AuthorizeCore e diz se o usuário pode acessar ou não /// </summary> /// <param name="httpContext">HttpContextBase - contexto da chamada</param> /// <returns>bool - true se o usuário estiver autorizado</returns> protected override bool AuthorizeCore(HttpContextBase httpContext) { if ((httpContext.Handler != null) && (httpContext.Handler is MvcHandler)) { bool podeAcessar = false; using (TPAContext db = new TPAContext()) { ControleAcesso c = new ControleAcesso(db); try { var routeData = ((MvcHandler)httpContext.Handler).RequestContext.RouteData; string actionName = routeData.Values["action"].ToString(); string controllerName = routeData.Values["controller"].ToString(); podeAcessar = c.PodeAcessar(controllerName, actionName); } catch (Exception err) { LogServices.LogarException(err); } } return(podeAcessar); } else { return(base.AuthorizeCore(httpContext)); } }
/// <summary> /// helper estático para verificar nas páginas cshtml se um usuário tem acesso ao controller / action especificados /// </summary> /// <param name="controllerName">string - nome do controller</param> /// <param name="actionName">string - nome da ação</param> /// <returns>bool - true se o usuário no contexto tem acesso, false caso contrário</returns> public static bool TemAcesso(string controllerName, string actionName) { using (TPAContext db = new TPAContext()) { ControleAcesso ctrl = new ControleAcesso(db); return(ctrl.PodeAcessar(controllerName, actionName)); } }
/// <summary> /// helper estático para verificar nas páginas cshtml se um usuário tem acesso ao recurso especificado /// </summary> /// <param name="nomePermissao">string - nome do recurso/permissão</param> /// <returns>bool - true se o usuário no contexto tem acesso, false caso contrário</returns> public static bool TemAcesso(string nomePermissao) { using (TPAContext db = new TPAContext()) { ControleAcesso ctrl = new ControleAcesso(db); return(ctrl.PodeAcessar(nomePermissao)); } }
/// <summary> /// obtém todos os tipos de atividade em forma de um SelectList /// deixando pré selecionada a opção que vier como parâmetro em caso de edição da form /// </summary> /// <param name="valor">int? - valor que já estava selecionado ou salvo no Model</param> /// <returns>SelectList - lista para usar em combos/dropdowns</returns> public static SelectList GetTodosTipos(int?valor = null) { using (TPAContext db = new TPAContext()) { TipoAtividadeRepository rep = new TipoAtividadeRepository(db); var tipo = rep.GetAll().OrderBy(x => x.Nome).ToList(); SelectList TipoSelectList = new SelectList(tipo, "Id", "Nome", valor); return(TipoSelectList); } }
/// <summary> /// retorna uma SelectList de usuários com o usuário passado no parâmetro pré selecionado /// </summary> /// <param name="valores">int? - valor pré selecionado</param> /// <returns>SelectList - lista de usuários</returns> public static SelectList GetUsuarios(int?valor = null) { using (TPAContext db = new TPAContext()) { UsuarioRepository rep = new UsuarioRepository(db); List <Usuario> usuarios = rep.GetAll(); SelectList result = new SelectList(usuarios, "Id", "FuncionarioNomeOuLogin", valor); return(result); } }
/// <summary> /// retorna uma MultiSelectList de usuários com os usuários passados no parâmetro pré selecionados /// </summary> /// <param name="valores">int[] - valores selecionados</param> /// <returns>MultiSelectList - lista múltipla com os usuários</returns> public static MultiSelectList GetUsuariosMultiplos(params int[] valores) { using (TPAContext db = new TPAContext()) { UsuarioRepository rep = new UsuarioRepository(db); List <Usuario> usuarios = rep.GetAll(); MultiSelectList result = new MultiSelectList(usuarios, "Id", "FuncionarioNomeOuLogin", valores); return(result); } }
public override Task <SignInStatus> PasswordSignInAsync(string userName, string password, bool rememberMe, bool shouldLockout) { using (TPAContext ctx = new TPAContext()) { var user = ctx.Usuarios.Where(u => u.Login == userName).SingleOrDefault(); if (!user.Ativo) { return(Task.FromResult <SignInStatus>(SignInStatus.Failure)); } return(base.PasswordSignInAsync(userName, password, rememberMe, shouldLockout)); } }
/// <summary> /// método estático independente com context próprio para ser executado em jobs /// </summary> public static void AtualizaAcoesCopiandoDoAssembly() { try { Type tipo = Type.GetType("TPA.Presentation.Controllers.TPAController, TPA.Presentation"); using (TPAContext db = new TPAContext()) { AcaoServices g = new AcaoServices(db); g.ImportarDoAssembly(tipo); g.AtualizaAdmin(); } } catch (Exception err) { LogServices.LogarException(err); } }
/// <summary> /// dispara alertas de atraso nas atividades diariamente /// </summary> public static void EnviaAlertasAgendados() { try { if (!DevServices.IsDevEnv()) { using (var db = new TPAContext()) { UsuarioApplication usuApp = new UsuarioApplication(db); usuApp.EnviarTodosOsAlertas(true, true); } } } catch (Exception err) { LogServices.LogarException(err); } }
/// <summary> /// retorna true se a data for dia útil, false se for sábado, domingo e feriado /// </summary> /// <param name="data"></param> /// <returns></returns> public virtual bool IsDiaUtil(DateTime data) { using (TPAContext db = new TPAContext()) { if (data.DayOfWeek == DayOfWeek.Saturday || data.DayOfWeek == DayOfWeek.Sunday) { return(false); } Feriado feriado = db.Feriados.Where(f => f.Data == data).FirstOrDefault(); if (feriado != null) { return(false); } return(true); } }
/// <summary> /// dado um login, retorna o usuário /// </summary> /// <param name="login">string login - o login do usuário, no caso da Tecnun, o e-mail</param> /// <returns>UsuarioViewModel - um DTO com login e nome do usuário, para mostrar no topo das páginas</returns> public static MeusDadosViewModel GetByLogin(string login) { MeusDadosViewModel result = new MeusDadosViewModel { Nome = "Cadastro Incompleto" }; using (TPAContext db = new TPAContext()) { var usu = db.Usuarios.Where(u => u.Login == login).FirstOrDefault(); if (usu != null) { result = Mapper.Map <Usuario, MeusDadosViewModel>(usu); } } return(result); }
/// <summary> /// obtém todos os nós de projeto em forma de um TFWHierarchicalList /// deixando pré selecionada a opção que vier como parâmetro em caso de edição da form /// </summary> /// <param name="valor">int? - valor que já estava selecionado ou salvo no Model</param> /// <returns>TFWHierarchicalList - lista para usar em um combo com simulação de hierarquia no estilo</returns> public static TFWHierarchicalList GetNodes(int?valor = null) { TPAContext db = new TPAContext(); TFWHierarchicalList lstUsuario = new TFWHierarchicalList(); TFWHierarchicalList lst = new TFWHierarchicalList(); List <int> idsNodesUsuario = new List <int>(); var usu = HttpContext.Current.User.Identity.Name; var usuLogado = db.Usuarios.Where(u => u.Login == usu).FirstOrDefault(); if (usuLogado != null) { var nodes = usuLogado.NosDoUsuario.ToList(); if (nodes != null && nodes.Any()) { foreach (var n in nodes) { lstUsuario.Add(n.Id, n.Pai != null ? n.Pai.Id : new Nullable <int>(), n.Nome); } } } idsNodesUsuario.AddRange(lstUsuario.Select(s => s.Id).ToList()); foreach (var node in db.ProjectNodes.ToList()) { if (idsNodesUsuario.Contains(node.Id)) { lst.Add(node.Id, node.Pai_Id != null ? node.Pai_Id : new Nullable <int>(), node.Nome); } else { lst.Add(node.Id, node.Pai != null ? node.Pai.Id : new Nullable <int>(), node.Nome, false); } } return(lst); }
/// <summary> /// cosntructor principal /// </summary> /// <param name="context">TPAContext - contexto do EF para as queries</param> public ContratoRepository(TPAContext context) { this._db = context; }
/// <summary> /// cosntructor principal /// </summary> /// <param name="context">TPAContext - contexto do EF para as queries</param> public FeriadoRepository(TPAContext context) { this._db = context; }
/// <summary> /// cosntructor principal /// </summary> /// <param name="context">TPAContext - contexto do EF para as queries</param> public UsuarioRepository(TPAContext context) { this._db = context; }
/// <summary> /// constructor padrão, obtém o context /// </summary> /// <param name="db"></param> public AtividadeRepository(TPAContext db) { _db = db; }
/// <summary> /// constructor que obtém como parâmetros apenas o context e cria o repository /// </summary> /// <param name="ctx"></param> public AtividadeApplication(TPAContext ctx) { _db = ctx; _rep = new AtividadeRepository(_db); }
/// <summary> /// cosntructor principal /// </summary> /// <param name="context">TPAContext - contexto do EF para as queries</param> public AcaoRepository(TPAContext context) { this._db = context; }
/// <summary> /// cosntructor principal /// </summary> /// <param name="context">TPAContext - contexto do EF para as queries</param> public ProjectNodeRepository(TPAContext context) { this._db = context; }
/// <summary> /// constructor padrão /// </summary> /// <param name="context">TPAContext passado pelo application</param> public RelatorioRepository(TPAContext context) { this._db = context; }
/// <summary> /// cosntructor principal /// </summary> /// <param name="context">TPAContext - contexto do EF para as queries</param> public ProjectNodeApplication(TPAContext context) { this._db = context; _rep = new ProjectNodeRepository(this._db); }
/// <summary> /// constructor padrão /// </summary> /// <param name="context">TPAContext passado pelo controller</param> public RelatorioApplication(TPAContext context) { this._db = context; }
/// <summary> /// construtor padrao passa o contexto /// </summary> /// <param name="db"></param> public ProjectNodeServices(TPAContext db) { this._db = db; }
/// <summary> /// constructor padrão que injeta o context do EF /// </summary> /// <param name="db"></param> public ReferenciaRepository(TPAContext db) { _db = db; }
/// <summary> /// constructor onde você passa o context /// </summary> /// <param name="ctx"></param> public ControleAcesso(TPAContext ctx) { this._db = ctx; }
/// <summary> /// construtor padrão, recebe o context e passa para o objeto application /// </summary> /// <param name="ctx">TPAContext - context do entity framework</param> public ImportaPlanilhaApplication(TPAContext ctx) { _db = ctx; _ativApp = new AtividadeApplication(_db); }
/// <summary> /// cosntructor principal /// </summary> /// <param name="context">TPAContext - contexto do EF para as queries</param> public TipoAtividadeRepository(TPAContext context) { this._db = context; }
/// <summary> /// constructor que obtém como parâmetros um context e um repository /// </summary> /// <param name="ctx"></param> /// <param name="rep"></param> public UsuarioApplication(TPAContext db) { this._db = db; }