public IHttpActionResult GetAll() { try { return(Ok(_repository.GetAll())); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }
public HttpResponseMessage Processar(int id) { var sinc = _repository.GetByID(id); if (sinc == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Sincronização não Localizada")); } sinc.Status = Enums.StatusSincronizacao.PROCESSANDO; _repository.Update(sinc); try { var filePath = System.Configuration.ConfigurationManager.AppSettings["Sincronizacoes"] + sinc.ID + "\\sinc.json"; using (StreamReader sr = new StreamReader(filePath)) { string jsonString = sr.ReadToEnd(); JavaScriptSerializer jss = new JavaScriptSerializer(); List <Item> itens = jss.Deserialize <List <Item> >(jsonString); var pathCriticas = System.Configuration.ConfigurationManager.AppSettings["Sincronizacoes"] + sinc.ID + "\\criticas.txt"; if (File.Exists(pathCriticas)) { File.Delete(pathCriticas); } if (itens.Count > 0) { var contadorCriticas = 0; var inventario = _inventarioRepository.GetByID(sinc.InventarioID); var locais = _localRepository.GetByEmpresaID(inventario.EmpresaID); var empresas = _empresaRepository.GetAll(); var itemEstados = _itemEstadoRepository.GetAll(); var responsaveis = _responsavelRepository.GetByEmpresaID(inventario.EmpresaID); var especies = _especieRepository.GetByEmpresaID(inventario.EmpresaID); foreach (var item in itens) { bool critica = false; var itemEstado = itemEstados.Where(x => x.ID == item.ItemEstadoID).SingleOrDefault(); if (itemEstado == null) { using (var sw = new StreamWriter(pathCriticas)) { sw.WriteLine($"ItemEstado informado para o Item {item.Nome} não existe na Base de Dados;"); } critica = true; } if (item.ResponsavelID != null) { var responsavel = responsaveis.Where(x => x.ID == item.ResponsavelID).SingleOrDefault(); if (responsavel == null) { using (var sw = new StreamWriter(pathCriticas)) { sw.WriteLine($"Responsável informado para o Item {item.Nome} não existe na Base de Dados;"); } critica = true; } } var local = locais.Where(x => x.ID == item.LocalID).SingleOrDefault(); if (local == null) { using (var sw = new StreamWriter(pathCriticas)) { sw.WriteLine($"Local informado para o Item {item.Nome} não existe na Base de Dados;"); } critica = true; } var especie = especies.Where(x => x.ID == item.EspecieID).SingleOrDefault(); if (especie == null) { using (var sw = new StreamWriter(pathCriticas)) { sw.WriteLine($"Espécie informada para o Item {item.Nome} não existe na Base de Dados;"); } critica = true; } var empresa = empresas.Where(x => x.ID == item.EmpresaID).SingleOrDefault(); if (empresa == null) { item.EmpresaID = inventario.EmpresaID; } if (item.Incorporacao != null) { if (!int.TryParse(item.Incorporacao.ToString(), out int incorporacao)) { using (var sw = new StreamWriter(pathCriticas)) { sw.WriteLine($"Incorporação informada para o Item {item.Nome} precisa ser um INT;"); } critica = true; } } if (item.IncorporacaoAnterior != null) { if (!int.TryParse(item.IncorporacaoAnterior.ToString(), out int incorporacaoAnterior)) { using (var sw = new StreamWriter(pathCriticas)) { sw.WriteLine($"Incorporação Anterior informada para o Item {item.Nome} precisa ser um INT;"); } critica = true; } } if (item.Latitude != null) { if (!decimal.TryParse(item.Latitude.ToString(), out decimal latitude)) { using (var sw = new StreamWriter(pathCriticas)) { sw.WriteLine($"Latitude informada para o Item {item.Nome} precisa ser um DECIMAL;"); } critica = true; } } if (item.Longitude != null) { if (!decimal.TryParse(item.Longitude.ToString(), out decimal longitude)) { using (var sw = new StreamWriter(pathCriticas)) { sw.WriteLine($"Longitude informada para o Item {item.Nome} precisa ser um DECIMAL;"); } critica = true; } } if (critica) { contadorCriticas += 1; } } if (contadorCriticas > 0) { sinc.Status = Enums.StatusSincronizacao.CRITICAS; _repository.Update(sinc); return(Request.CreateResponse(HttpStatusCode.OK, "Foram encontradas incosistências nos dados enviados. Trate os dados e reprocesse a Sincronização.")); } else { foreach (var item in itens) { _itemRepository.Insert(item); } return(Request.CreateResponse(HttpStatusCode.OK, "Sincronização Processada com Sucesso.")); } } else { return(Request.CreateResponse(HttpStatusCode.OK, "Não foram encontrados Itens para Sincronizar!")); } } } catch (Exception ex) { sinc.Status = Enums.StatusSincronizacao.ERRO; _repository.Update(sinc); return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message)); } }
public IHttpActionResult CargaInicial(int inventarioID) { try { var inventario = _repository.GetByID(inventarioID); var empresa = _empresaRepository.GetByID(inventario.EmpresaID); var grupos = _grupoRepository.GetByEmpresaID(inventario.EmpresaID); var especies = _especieRepository.GetByEmpresaID(inventario.EmpresaID); var propriedades = _propriedadeRepository.GetByEmpresaID(inventario.EmpresaID); var especiePropriedades = _especiePropriedadeRepository.GetByEmpresaID(inventario.EmpresaID); var responsaveis = _responsavelRepository.GetByEmpresaID(inventario.EmpresaID); var centrosCusto = _centroCustoRepository.GetByEmpresaID(inventario.EmpresaID); var contasContabeis = _contaContabilRepository.GetByEmpresaID(inventario.EmpresaID); var filiais = _filialDbRepository.GetByEmpresaID(inventario.EmpresaID); var locais = _localDbRepository.GetByEmpresaID(inventario.EmpresaID); var configs = _configRepository.GetByInventarioID(inventario.ID); var itens = _itemRepository.GetByEmpresaID(inventario.EmpresaID); var itemEstados = _itemEstadoRepository.GetAll(); object carga = new { itemEstado = itemEstados.Count == 0 ? null : itemEstados.Select(ie => new { ie.ID, ie.Nome }), empresa = new { empresa.CNPJ, empresa.DataCadastroFormatada, empresa.ID, empresa.NomeFantasia, empresa.RazaoSocial, grupos = grupos.Count == 0 ? null : grupos.Select(g => new { g.Codigo, g.ContaContabilID, g.DataCadastroFormatada, g.ID, g.Nome }), especies = especies.Count == 0 ? null : especies.Select(e => new { e.Codigo, e.DataCadastroFormatada, e.GrupoID, e.ID, e.Nome, propriedades = especiePropriedades.Where(ep => ep.EspecieID == e.ID).Select(ep => new { ep.DataCadastroFormatada, ep.EspecieID, ep.PropriedadeID }) }), propriedades = propriedades.Count == 0 ? null : propriedades.Select(p => new { p.Codigo, p.DataCadastroFormatada, p.Fixa, p.ID, p.Nome }), responsaveis = responsaveis.Count == 0 ? null : responsaveis.Select(r => new { r.Cargo, r.DataCadastroFormatada, r.ID, r.Matricula, r.Nome, r.UsuarioID }), centrosCusto = centrosCusto.Count == 0 ? null : centrosCusto.Select(cc => new { cc.Codigo, cc.CodigoInterno, cc.DataCadastroFormatada, cc.ID, cc.Nome, cc.Nivel, cc.PaiID, cc.ResponsavelID }), contasContabeis = contasContabeis.Count == 0 ? null : contasContabeis.Select(cco => new { cco.Codigo, cco.CodigoInterno, cco.DataCadastroFormatada, cco.ID, cco.Nivel, cco.Nome, cco.NomeAbreviado, cco.PaiID }) }, inventario = new { inventario.ID, inventario.Codigo, inventario.Nome, inventario.StatusID, filiais = filiais.Count == 0 ? null : filiais.Select(f => new { f.ID, f.Codigo, f.CNPJ, f.Nome }), locais = locais.Count == 0 ? null : locais.Select(l => new { l.CentroCustoID, l.Codigo, l.CodigoInterno, l.DataCadastroFormatada, l.FilialID, l.ID, l.Nivel, l.Nome, l.PaiID, l.ResponsavelID }), itens = itens.Count == 0 ? null : itens.Select(i => new { i.Codigo, i.CodigoAnterior, i.CodigoPM, i.DadosPM, i.DataCadastroFormatada, i.EspecieID, i.Local.FilialID, i.ID, i.ImagemUrl, i.Imagens, i.Incorporacao, i.IncorporacaoAnterior, i.ItemEstadoID, i.Latitude, i.LocalID, i.LocalPM, i.Longitude, i.Marca, i.Modelo, i.Nome, i.NumeroSerie, i.Observacao, i.ResponsavelID, i.StatusID, i.StatusNome, i.Tag }), configs = configs.Select(c => new { c.EntidadeCampo.NomeCampo, c.Visivel, c.Obrigatorio }) } }; return(Ok(carga)); } catch (System.Exception ex) { return(BadRequest(ex.Message)); } }