public IActionResult Reply(int id, int?crud, int?notify, string message = null)
        {
            try
            {
                ParecerModel model = new ParecerModel();
                model.Relato  = new RelatoDto();
                model.Parecer = new ParecerDto();
                model.Relato.UnidadeInfraestrutura = new UnidadeInfraEstruturaDto();

                SetNotifyMessage(notify, message);
                SetCrudMessage(crud);

                //var obj = ApiClientFactory.Instance.GetRelatoById(id);
                var resultRelato = ApiClientFactory.Instance.GetRelatoById(id);

                var modelRelato = new RelatoModel
                {
                    Relato = resultRelato
                };
                return(View(modelRelato));
            }
            catch (Exception ex)
            {
                return(RedirectToAction(nameof(Reply), new { notify = (int)EnumNotify.Error, message = ex.Message }));
            }
        }
        //[ClaimsAuthorize("Parecer", "Cadastrar")]
        public async Task <ActionResult> Create(int id, int?crud, int?notify, string message = null)
        {
            try
            {
                SetNotifyMessage(notify, message);
                SetCrudMessage(crud);
                var obj = ApiClientFactory.Instance.GetRelatoById(id);

                var resultUnidade = ApiClientFactory.Instance.GetUnidadeInfraEstruturaById(obj.CodUnidadeInfraestrutura);
                var resultLocal   = ApiClientFactory.Instance.GetLocalAll();
                var resultAssunto = ApiClientFactory.Instance.GetAssuntoAll();
                //var resultAtribuido = ApiClientFactory.Instance.GetAtribuicaoByIdRelato(id);
                var resultParecer = ApiClientFactory.Instance.GetParecerByIdRelato(id);



                var resultLocalUnidade = resultLocal
                                         .Where(x => x.UnidadeInfraestrutura.CodUnidadeInfraestrutura == obj.CodUnidadeInfraestrutura)
                                         .Select(s => new LocalDto
                {
                    CodLocal = s.CodLocal,
                    DscLocal = s.DscLocal
                }).ToList();

                var model = new ParecerModel
                {
                    Relato         = obj,
                    ListLocal      = new SelectList(resultLocalUnidade, "CodLocal", "DscLocal"),
                    ListSubLocal   = new SelectList(new List <SubLocalDto>(), "CodSubLocal", "DscSubLocal"),
                    ListAssunto    = new SelectList(resultAssunto, "CodAssunto", "DscAssunto"),
                    ListSubAssunto = new SelectList(new List <SubAssuntoDto>(), "CodSubAssunto", "DscSubAssunto"),
                };

                var command = new UpdateRelatoAtendimentoCommand
                {
                    CodRelato        = id,
                    FlgStatusRelato  = (int)EnumStatusRelato.EmAndamento,
                    DscParecerStatus = EnumStatusRelato.EmAndamento.GetDescription() + ", " + DateTime.Now.ToString("dd/MM/yyyy") + ", " + DateTime.Now.ToString("hh:mm"),
                    AlteradoPor      = User.Identity.Name
                };

                await ApiClientFactory.Instance.UpdateRelatoAtendimento(command);

                return(View(model));
            }
            catch (Exception ex)
            {
                return(RedirectToAction(nameof(Create), new { notify = (int)EnumNotify.Error, message = ex.Message }));
            }
        }
        public IActionResult Complete(int id)
        {
            try
            {
                var objParecer = ApiClientFactory.Instance.GetParecerById(id);

                var obj = ApiClientFactory.Instance.GetRelatoById(objParecer.CodRelato);

                var resultUnidade   = ApiClientFactory.Instance.GetUnidadeInfraEstruturaById(obj.CodUnidadeInfraestrutura);
                var resultLocal     = ApiClientFactory.Instance.GetLocalAll();
                var resultAssunto   = ApiClientFactory.Instance.GetAssuntoAll();
                var resultAtribuido = ApiClientFactory.Instance.GetAtribuicaoByIdRelato(objParecer.CodRelato);

                var resultLocalUnidade = resultLocal
                                         .Where(x => x.UnidadeInfraestrutura.CodUnidadeInfraestrutura == obj.CodUnidadeInfraestrutura)
                                         .Select(s => new LocalDto
                {
                    CodLocal = s.CodLocal,
                    DscLocal = s.DscLocal
                }).ToList();
                //.StatusParecer = ((EnumStatusRelato)s.FlgStatusRelato).GetDescription();

                var model = new ParecerModel
                {
                    Relato  = obj,
                    Parecer = objParecer,
                    ListHistoricoParecer = objParecer.HistoricoParecer,
                    ListParecerArquivo   = objParecer.ListArquivo,
                    ListLocal            = new SelectList(resultLocalUnidade, "CodLocal", "DscLocal"),
                    ListSubLocal         = new SelectList(new List <SubLocalDto>(), "CodSubLocal", "DscSubLocal"),
                    ListAssunto          = new SelectList(resultAssunto, "CodAssunto", "DscAssunto"),
                    ListSubAssunto       = new SelectList(new List <SubAssuntoDto>(), "CodSubAssunto", "DscSubAssunto"),
                };



                return(View(model));
            }
            catch (Exception ex)
            {
                return(RedirectToAction(nameof(Complete), new { notify = (int)EnumNotify.Error, message = ex.Message }));
            }
        }