public OcorrenciaFormViewModel Adicionar(OcorrenciaFormViewModel model, string usuarioId) { var ocorrencia = OcorrenciaAdaptador.ParaDominioModelo(model); if (model.statusEntidadeID.HasValue) { ocorrencia.StatusEntidadesId = (long)model.statusEntidadeID; } else { var statusEntidades = _servicoStatusEntidade.ObterStatusEntidadeNovaOcorrencia(); if (statusEntidades.Any()) { ocorrencia.StatusEntidadesId = statusEntidades.FirstOrDefault().id; } else { model.ValidationResult.Add( new ValidationError( "Não foi possível cadastrar a Ocorrência, StatusEntidadeNovaOcorrencia não cadastrado")); return(model); } } _servicoOcorrencia.Adicionar(ocorrencia); model.OcorrenciaID = ocorrencia.Id; if (ocorrencia.Id > 0 && model.atendimentoID != null) { _servicoAtendimentoOcorrencia.Adicionar((long)model.atendimentoID, ocorrencia.Id); } if (ocorrencia.Id > 0) { //Inserir Ocorrência Endereço if (model.EnderecoProduto != null) { if (model.EnderecoProduto.LocaisTiposAtendimentoId != null) { var entidade = new OcorrenciaLocalTipoAtendimento(ocorrencia.Id, (int)model.EnderecoProduto.LocaisId, (int)model.EnderecoProduto.LocaisTiposAtendimentoId, model.EnderecoProduto.Logradouro, model.EnderecoProduto.Numero, model.EnderecoProduto.Cep, model.EnderecoProduto.Bairro, model.EnderecoProduto.CidadesId, model.criadoPorUserID, model.EnderecoProduto.Complemento); _servicoOcorrenciaLocalTipoAtendimento.Adicionar(entidade); } } //Campos Dinamicos if (model.ViewDinamica != null) { model.ViewDinamica.ChaveEntidadeId = ocorrencia.Id; _viewDinamicaAppServico.Atualizar(model.ViewDinamica, usuarioId); } } return(model); }
public OcorrenciaFormViewModel Atualizar(OcorrenciaFormViewModel model, string usuarioId) { var ocorrencia = _servicoOcorrencia.ObterPorId((long)model.OcorrenciaID); ocorrencia.OcorrenciasTiposId = (long)model.ocorrenciasTiposID; ocorrencia.ContratoId = model.contratoID; ocorrencia.DecritivoDeAbertura = model.decritivoDeAbertura; ocorrencia.AtualizadoEm = DateTime.Now; ocorrencia.AtualizadoPorAspNetUserId = model.atualizadoPorAspNetUserID; var resultado = _servicoOcorrencia.Atualizar(ocorrencia); if (resultado.IsValid) { var ocorrenciaTipo = _servicoOcorrenciaTipo.ObterPorId(ocorrencia.OcorrenciasTiposId); if (model.LocalExcluido || (ocorrenciaTipo.VincularLocal == false)) { _servicoOcorrenciaLocalTipoAtendimento.DeletarTodosLocaisDaOcorrencia(ocorrencia.Id); } //Campos Dinamicos if (model.ViewDinamica != null) { model.ViewDinamica.ChaveEntidadeId = ocorrencia.Id; _viewDinamicaAppServico.Atualizar(model.ViewDinamica, usuarioId); } /// Inserir e/ou Atualizar Endereço Local if (model.EnderecoProduto != null) { if (model.EnderecoProduto.LocaisTiposAtendimentoId != null) { var entidade = new OcorrenciaLocalTipoAtendimento(ocorrencia.Id, (int)model.EnderecoProduto.LocaisId, (int)model.EnderecoProduto.LocaisTiposAtendimentoId, model.EnderecoProduto.Logradouro, model.EnderecoProduto.Numero, model.EnderecoProduto.Cep, model.EnderecoProduto.Bairro, model.EnderecoProduto.CidadesId, model.atualizadoPorAspNetUserID, model.EnderecoProduto.Complemento); _servicoOcorrenciaLocalTipoAtendimento.DeletarTodosLocaisDaOcorrencia(ocorrencia.Id); _servicoOcorrenciaLocalTipoAtendimento.Adicionar(entidade); } } } return(model); }