public void InsertOrUpdate(FicheiroIsentos ficheiro) { if (ficheiro.ficheiroIsentosId == default(int)) { context.FicheirosIsentos.Add(ficheiro); } else { context.Entry(ficheiro).State = EntityState.Modified; } }
public bool Update(FicheiroIsentos ficheiro) { try { context.Entry(ficheiro).State = EntityState.Modified; return true; } catch (Exception ex) { return false; } }
public ActionResult Upload(HttpPostedFileBase file) { //List<ValorSistema> paramSistema = valoresSistemaRepository.All.Where(v => v.tipologia == "ESTADO_FICHEIRO" // || v.tipologia == "PARAM_PASTA_FICHEIROS_ISENTOS").ToList(); //List<ValorSistema> estadosFicheiro = paramSistema.Where(v => v.tipologia == "ESTADO_FICHEIRO").ToList(); //ValorSistema pastaUploadIsentos = paramSistema.Where(v => v.tipologia == "PARAM_PASTA_FICHEIROS_ISENTOS").Single(); List<ValorSistema> estadosFicheiro = valoresSistemaRepository.GetPorTipologia("ESTADO_FICHEIRO"); ValorSistema pastaUploadIsentos = valoresSistemaRepository.GetPorTipologia("PARAM_PASTA_FICHEIROS_ISENTOS").Single(); if (file != null && file.ContentLength > 0) { DateTime dataSubmissao = DateTime.Now; var filename = Path.GetFileNameWithoutExtension(file.FileName); var fileExtension = Path.GetExtension(file.FileName); var newFilename = filename + "_" + dataSubmissao.ToString("yyyyMMddHHmmssfff") + fileExtension; var destination = pastaUploadIsentos.valor; //var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), filename); var path = Path.Combine(destination, newFilename); file.SaveAs(path); UserProfile user = usersRepository.GetUserByIDIncludeEntidade(WebSecurity.CurrentUserId); Entidade entidadeAssociada = user.entidade; FicheiroIsentos newFicheiro = new FicheiroIsentos { nomeFicheiro = filename, localizacao = path, dataUpload = dataSubmissao, dataAlteracao = dataSubmissao, //entidade = entidadeAssociada, entidadeId = entidadeAssociada.entidadeId, estadoId = estadosFicheiro.Where(f => f.valor == "SUBMETIDO").Single().valorSistemaId, userName = user.UserName }; ficheirosIsentosRepository.Insert(newFicheiro); ficheirosIsentosRepository.Save(); } return RedirectToAction("Index"); }
public static void processaFicheiroIsentos(FicheiroIsentos ficheiro) { //FicheiroIsentosRepository ficheirosIsentosRepository = new FicheiroIsentosRepository(); ValorSistemaRepository valoresSistemaRepository = new ValorSistemaRepository(); ApoliceIsentoRepository apolicesIsentoRepository = new ApoliceIsentoRepository(); NotificacaoRepository notificacoesRepository = new NotificacaoRepository(); //List<ValorSistema> valoresSistema = valoresSistemaRepository.All.Where(v => v.tipologia == "TIPO_AVISO" || v.tipologia == "ESTADO_FICHEIRO").ToList(); //ValorSistema tipoNotificacao = valoresSistema.Where(v => v.tipologia == "TIPO_AVISO" && v.valor == "GENERICO").Single(); //ValorSistema valErroFicheiro = valoresSistema.Where(v => v.tipologia == "ESTADO_FICHEIRO" && v.valor == "ERRO").Single(); //ValorSistema valProcessadoFicheiro = valoresSistema.Where(v => v.tipologia == "ESTADO_FICHEIRO" && v.valor == "PROCESSADO").Single(); ValorSistema tipoNotificacao = valoresSistemaRepository.GetPorTipologia("TIPO_AVISO").Where(v => v.valor == "GENERICO").Single(); ValorSistema valErroFicheiro = valoresSistemaRepository.GetPorTipologia("ESTADO_FICHEIRO").Where(v => v.valor == "ERRO").Single(); ValorSistema valProcessadoFicheiro = valoresSistemaRepository.GetPorTipologia("ESTADO_FICHEIRO").Where(v => v.valor == "PROCESSADO").Single(); //Insere os novos registos de períodos isentos que são reportados no ficheiro bool erroFicheiro = false; DateTime dataRegisto = DateTime.Now; DateTime dataInicioTemp; DateTime? dataFimTemp; DateTime dataAux; var excel = new ExcelQueryFactory(ficheiro.localizacao); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.matricula, "MATRICULA"); // ou excel.AddMapping("matricula", "MATRICULA"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.mensagem, "MENSAGEM"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.entidadeResponsavel, "ENTIDADE"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.dataInicio, "DATA_INICIO"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.dataFim, "DATA_FIM"); excel.AddMapping<RegistoExcelMatriculaIsenta>(x => x.confidencial, "CONFIDENCIAL"); var matriculasIsentas = from m in excel.Worksheet<RegistoExcelMatriculaIsenta>("Resultados") select m; foreach (RegistoExcelMatriculaIsenta mat in matriculasIsentas) { if (mat.matricula == null || mat.matricula == string.Empty || ! DateTime.TryParseExact(mat.dataInicio, "yyyyMMdd", new CultureInfo("pt-PT"), DateTimeStyles.None, out dataInicioTemp)) { erroFicheiro = true; break; } if (DateTime.TryParseExact(mat.dataFim, "yyyyMMdd", new CultureInfo("pt-PT"), DateTimeStyles.None, out dataAux)) dataFimTemp = dataAux; else dataFimTemp = null; ApoliceIsento isento = new ApoliceIsento() { entidadeId = ficheiro.entidadeId.Value, matricula = mat.matricula, matriculaCorrigida = mat.matricula.Replace("-",""), entidadeResponsavel = mat.entidadeResponsavel, mensagem = mat.mensagem, dataInicio = dataInicioTemp, dataFim = dataFimTemp, confidencial = mat.confidencial, origemFicheiro = true, arquivo = false, dataReporte = ficheiro.dataUpload, dataCriacao = dataRegisto, dataModificacao = dataRegisto, }; ficheiro.apolicesIsentos.Add(isento); } Notificacao notif = new Notificacao(); if (!erroFicheiro) { //Coloca para arquivo todos os registos de períodos isentos que foram inseridos via ficheiro. List<ApoliceIsento> periodosAtivos = apolicesIsentoRepository.All.Where(m => m.arquivo == false && m.origemFicheiro == true && m.dataCriacao < dataRegisto).ToList(); if (periodosAtivos != null && periodosAtivos.Count > 0) { foreach(ApoliceIsento isento in periodosAtivos) { isento.arquivo = true; apolicesIsentoRepository.InsertOrUpdate(isento); } } apolicesIsentoRepository.Save(); string mensagemNotificacao = string.Format("O ficheiro de reporte e matriculas isentas de seguro com o nome {0} e submetido na data {1}, " + "foi processado com sucesso sendo registados {2} matriculas.", ficheiro.nomeFicheiro, ficheiro.dataUpload.ToString(), ficheiro.apolicesIsentos.Count); notif.dataCriacao = DateTime.Now; notif.email = false; notif.entidadeId = ficheiro.entidadeId; notif.mensagem = mensagemNotificacao; notif.tipologiaId = tipoNotificacao.valorSistemaId; ficheiro.estadoId = valProcessadoFicheiro.valorSistemaId; } else { string mensagemNotificacao = string.Format("O ficheiro de reporte e matriculas isentas de seguro com o nome {0} e submetido na data {1}, " + "não foi processado devido a um erro da informação relativa ao número de matrícula ou à data de início do período.", ficheiro.nomeFicheiro, ficheiro.dataUpload.ToString()); notif.dataCriacao = DateTime.Now; notif.email = false; notif.entidadeId = ficheiro.entidadeId; notif.mensagem = mensagemNotificacao; notif.tipologiaId = tipoNotificacao.valorSistemaId; ficheiro.estadoId = valErroFicheiro.valorSistemaId; } notificacoesRepository.InsertOrUpdate(notif); notificacoesRepository.Save(); //ficheirosIsentosRepository.InsertOrUpdate(ficheiro); //ficheirosIsentosRepository.Save(); }
public FicheiroIsentos Insert(FicheiroIsentos ficheiro) { ficheiro.ficheiroIsentosId = default(int); context.FicheirosIsentos.Add(ficheiro); return ficheiro; }