/// <summary> /// Salvar vagas para remocao no banco de dados /// </summary> /// <param name="vagas"></param> static void Processar(IEnumerable <VagaRemocao> vagas) { if (vagas == null) { throw new ArgumentNullException("vagas"); } if (vagas.GroupBy(a => new { a.CargoId, a.UnidadeId, a.Data.Year }).Where(a => a.Count() > 1).Any()) { throw new Exception($"Existem vagas repetidas na coleção"); } var ano = vagas.First().Data.Year; if (_vagaDomain.Get().Any(a => a.Data.Year == ano)) { if (_vagaDomain.Get().ToArray().Any(a => vagas.Any(b => a.CargoId == b.CargoId && a.UnidadeId == b.UnidadeId && a.Data.Year == b.Data.Year))) { throw new Exception($"Existem vagas já cadastradas no banco de dados"); } } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Salvando vagas em lote..."); _vagaDomain.Save(vagas); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Todas Vagas foram registradas com sucesso!"); Console.ReadLine(); }
private void AtualizarLista() { var ano = DateTime.Now.Year; var mes = DateTime.Now.Month; _unidades = _unidadeDomain.Get().Where(a => !a.Vagas.Any(b => b.Data.Year == ano && b.Data.Month == mes)) .ToDictionary(a => a.Id, a => a.Id + " - " + a.TipoUnidade.Tipo + " - " + a.Nome); Listar(); }
static void Main(string[] args) { _unidadeDomain = _lifeTimeScope.Resolve <ModelDomain <Unidade> >(); _vagaDomain = _lifeTimeScope.Resolve <ModelDomain <VagaRemocao> >(); _cargoDomain = _lifeTimeScope.Resolve <ModelDomain <Cargo> >(); _cargos = _cargoDomain.Get().ToArray(); _unidadeDictionary = _unidadeDomain.Get().ToDictionary(a => a.Id, a => a.Nome.ReplaceDiacritics().ToUpper()); _unidadeDoDictionary = _unidadeDomain.Get().Where(a => a.NomeDiarioOficial != null).ToDictionary(a => a.Id, a => a.NomeDiarioOficial.ReplaceDiacritics().ToUpper()); //Passo 1: Analisar unidades e cargos extraidos ExecutarAnalise(false, true); //Passo 2: Testar TXT e checar pendencias negativas //var vagas = TestarTxtFinal(); //Passo 3: Salvar vagas - ATENÇÃO: Só executar esse passo se tiver certeza que a analise e testes estão corretos //Processar(vagas); }
public MainForm() { InitializeComponent(); _cargoDomain = this.Get <ModelDomain <Cargo> >(); _vagaDomain = this.Get <ModelDomain <VagaRemocao> >(); foreach (var cargo in _cargoDomain.Get()) { addCargo(cargo.Id, cargo.Abreviacao); } }
private void ExibirVagas() { if (_unidadeRegistrada) { var ano = DateTime.Now.Year; var mes = DateTime.Now.Month; var vagas = _vagaDomain.Get() .Where(a => a.UnidadeId == _unidadeId && a.Data.Year == ano && a.Data.Month == mes); foreach (var vaga in vagas) { var vagaTextBox = _vagas.SingleOrDefault(a => a.Tag.Equals(vaga.CargoId)); if (vagaTextBox != null) { vagaTextBox.Value = vaga.Vagas; } } } }
} //Unidades que já tem vagas no banco public UnidadesForm() { InitializeComponent(); _unidadeDomain = this.Get <ModelDomain <Unidade> >(); if (_unidades == null || _unidades.Count == 0) { var ano = DateTime.Now.Year; var mes = DateTime.Now.Month; _unidades = _unidadeDomain.Get().Where(a => !a.Vagas.Any(b => b.Data.Year == ano && b.Data.Month == mes)) .ToDictionary(a => a.Id, a => a.Id + " - " + a.TipoUnidade.Tipo + " - " + a.Nome); } Listar(); }
static bool RegistrarNomeUnidade(string linha) { var comparativo = linha.StartsWith("CEI DIRET ") ? linha.Replace(" DIRET ", " ") : linha; KeyValuePair <int, string> unidadePair; unidadePair = _unidadeDictionary.SingleOrDefault(a => comparativo.Equals(a.Value, StringComparison.CurrentCultureIgnoreCase)); //procurar em nomes do DO if (unidadePair.Equals(default(KeyValuePair <int, string>))) { //usamos a var linha ao inves de comparativo //pois entende-se que o mesmo nome da linha e o que esta salvo na coluan NomeDiarioOficial unidadePair = _unidadeDoDictionary.SingleOrDefault(a => linha.Equals(a.Value, StringComparison.CurrentCultureIgnoreCase)); } if (unidadePair.Equals(default(KeyValuePair <int, string>))) { if (!Regex.IsMatch(comparativo, ".*, (PROF|VER|GEN|DR|MAL|DES|TTE|DEP|PRES|PREF|SG|MIN|CEL|PE|ENG|PDE|SEN|CAP|CM|CTE|ALM|ARQ|SGT|BRIG|MJ|GOV|EMB|CDE)(A|.|A.|)")) { return(false); } comparativo = CorrigirNomeUnidade(comparativo); unidadePair = _unidadeDictionary.SingleOrDefault(a => comparativo.Equals(a.Value, StringComparison.CurrentCultureIgnoreCase)); if (unidadePair.Equals(default(KeyValuePair <int, string>))) { return(false); } } var unidade = _unidadeDomain.Get(unidadePair.Key); if (unidade.NomeDiarioOficial != null) { return(true); } unidade.NomeDiarioOficial = linha; _unidadeDomain.Save(unidade); return(true); }
static void Analisar(string linha, bool checkCargo = true) { if (linha.StartsWithNumber(5)) { if (!checkCargo) { return; //cargos resolvidos } var codigoCargo = linha.Substring(0, 5); //as 5 primeiras posicoes representa o codigo do cargo if (_cargosList.Any(a => a.Substring(0, 5) == codigoCargo) || _cargoDomain.Get().Any(a => a.Codigo == codigoCargo)) { return; } _cargosList.Add(linha); _cargosTxt.WriteLine(linha); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"CARGO registrado"); return; } if (_unidadesList.Any(a => a == linha)) { return; } _unidadesList.Add(linha); if (RegistrarNomeUnidade(linha)) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine($"UNIDADE encontrada"); } else { Console.ForegroundColor = ConsoleColor.Magenta; _unidadesTxt.WriteLine(linha); Console.WriteLine($"UNIDADE registrada"); } }