public async Task <IActionResult> GerarOrdemServico(OrdemViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ViewData["Departamentos"] = new SGM.Core.DomainObjects.Departamento().GetDepartamentos();
                ViewData["Solicitacao"]   = await _solicitacaoService.ObterPorId((Guid)model.IdSolicitacao);

                return(View(model));
            }

            OrdemViewModel ordem = new OrdemViewModel
            {
                IdSolicitacao   = model.IdSolicitacao,
                IdSolicitante   = _user.ObterUserId(),
                CodDepartamento = model.CodDepartamento,
                Descricao       = model.Descricao,
                Solucao         = string.Empty
            };

            var response = await _ordemService.Adicionar(ordem);

            if (ResponsePossuiErros(response))
            {
                TempData["Erros"]         = ModelState.Values.SelectMany(v => v.Errors.Select(e => e.ErrorMessage)).ToList();
                ViewData["Departamentos"] = new SGM.Core.DomainObjects.Departamento().GetDepartamentos();
                ViewData["Solicitacao"]   = await _solicitacaoService.ObterPorId((Guid)model.IdSolicitacao);

                return(View(model));
            }
            return(RedirectToAction("AtenderSolicitacao", "Departamento"));
        }
예제 #2
0
        public async Task <ResponseResult> Atualizar(OrdemViewModel ordem)
        {
            var ordemContent = ObterConteudo(ordem);

            var response = await _httpClient.PostAsync("/ordem/atualizar/", ordemContent);

            if (!TratarErrosResponse(response))
            {
                return(await DeserializarObjetoResponse <ResponseResult>(response));
            }

            return(RetornoOk());
        }
        public async Task <IActionResult> GerarOrdemServico(string SolicitacaoId)
        {
            if (!string.IsNullOrEmpty(SolicitacaoId))
            {
                ViewData["Departamentos"] = new SGM.Core.DomainObjects.Departamento().GetDepartamentos();
                ViewData["Solicitacao"]   = await _solicitacaoService.ObterPorId(Guid.Parse(SolicitacaoId));

                var model = new OrdemViewModel
                {
                    IdSolicitacao = Guid.Parse(SolicitacaoId)
                };
                return(View(model));
            }
            return(RedirectToAction("AtenderSolicitacao", "Departamento"));
        }
        public async Task <IActionResult> ResponderSolicitacao(SolicitacaoViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var solicitacao = await _solicitacaoService.ObterPorId(model.Id);

            if (solicitacao != null)
            {
                OrdemViewModel ordem = new OrdemViewModel
                {
                    IdSolicitacao   = solicitacao.Id,
                    IdSolicitante   = _user.ObterUserId(),
                    CodDepartamento = solicitacao.CodDepartamento,
                    DataSolucao     = DateTime.Now,
                    Solucao         = model.Solucao,
                    Descricao       = "Resposta a solicitação do cidadão"
                };

                var response = await _ordemService.Adicionar(ordem);

                if (ResponsePossuiErros(response))
                {
                    TempData["Erros"]   = ModelState.Values.SelectMany(v => v.Errors.Select(e => e.ErrorMessage)).ToList();
                    ViewData["Cidadao"] = await _cidadaoService.ObterPorId(solicitacao.IdSolicitante);

                    return(View(model));
                }
                return(RedirectToAction("AtenderSolicitacao", "Departamento"));
            }
            else
            {
                AdicionarErroValidacao("Solicitação não encontrada.");
            }
            return(RedirectToAction("AtenderSolicitacao", "Departamento"));
        }