public async Task <IActionResult> AddEdit(decimal?id) { if (!User.Identity.IsAuthenticated && id == null) { return(RedirectToAction("SignIn", "Auth")); } ViewBag.IsEditing = "N"; BaseConhecimentoAddEditVM model = null; if (id != null) { var data = await _baseconhecimentoRepo.GetWithBaseChildsAsync(id); if (data == null) { return(NotFound()); } model = data.ToVM(); ViewBag.IsEditing = "S"; } await getTipoVisualizacaoSelect(); await getSituacaoBaseSelect(); await getProdutosBaseSelect(); return(View(model)); }
public async Task <IActionResult> AddEdit(decimal id, BaseConhecimentoAddEditVM model) { ModelState.Remove("IdUsuarioRegistro"); ModelState.Remove("DataHoraRegistro"); ModelState.Remove("SitBase"); ViewBag.IsEditing = "N"; if (id > 0) { ModelState.Remove("PalavraChave"); ViewBag.IsEditing = "S"; } if (!ModelState.IsValid) { await getTipoVisualizacaoSelect(); await getSituacaoBaseSelect(); await getProdutosBaseSelect(); return(View(model)); } var userContext = Convert.ToDecimal(HttpContextHelper.GetAuthUserId(HttpContext)); var data = model.ToData(userContext, id); if (id == 0) { data.DtHrRegistro = Convert.ToDecimal(DateTime.Now.ToString("yyyyMMddHHmmss")); data.StBase = EnumHelper.SituacaoBase.BA9.ToString(); _baseconhecimentoRepo.Add(data); // Palavras Chave existentes var words = model.PalavraChave.KeyWordToArray(); // Lista das palavras chave que foram informadas var wordID = new List <decimal>(); // Verifica se a Palavra Chave informada já existe na tabela var wordsData = await _palavrachaveRepo.GetAsync(); foreach (var word in words) { decimal IdWord = wordsData .Where(c => c.Palavra.ToUpper() == word.ToUpper()) .Select(c => c.IdPalavra).FirstOrDefault(); if (IdWord == 0) { // Cria a nova palavra chave var plvr = new PalavraChave() { Palavra = word, IdUsuarioRegistro = data.IdUsuarioRegistro }; _palavrachaveRepo.Add(plvr); wordID.Add(plvr.IdPalavra); } else { wordID.Add(IdWord); } } // Busca Chave foreach (var word in wordID) { _buscachaveRepo.Add(new BuscaChave() { Id = data.Id, IdPalavra = word, IdUsuarioRegistro = data.IdUsuarioRegistro }); } } else { _baseconhecimentoRepo.Update(data); } await _uow.CommitAsync(); return(RedirectToAction("Index")); }