private void CadastrarVagas() { foreach (var vagaTextBox in _vagas) { _vagaDomain.Save(new VagaRemocao { CargoId = (int)vagaTextBox.Tag, Data = DateTime.Now.Date, UnidadeId = _unidadeId, Vagas = int.Parse(vagaTextBox.Text) }); vagaTextBox.Text = "0"; } }
/// <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(); }
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); }