Beispiel #1
0
        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));
        }
Beispiel #2
0
        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"));
        }