public ActionResult Editar([FromHeader] string ibge, [FromBody] Ciclo model, [FromRoute] int?id) { try { ibge = _config.GetConnectionString(Connection.GetConnection(ibge)); //valida se existe ciclo com o mesmo período var itens = _repository.ValidaExistenciaCicloPeriodo(ibge, model.data_inicial, model.data_final); if (itens.Count > 0) { return(BadRequest(TrataErro.GetResponse("Já existe um ciclo vigente no período informado.", true))); } var countvisitas = _repository.CountVisitasCiclo(ibge, (int)id, model.data_inicial, model.data_inicial); if (countvisitas > 0) { var datainicial = _repository.GetDataMaximaCiclo(ibge, (int)id); var datafinal = _repository.GetDataMinimaCiclo(ibge, (int)id); return(BadRequest(TrataErro.GetResponseCicloEdit($"As datas possíveis para o ciclo são entre {datainicial?.ToString("dd/MM/yyyy")} e {datafinal?.ToString("dd/MM/yyyy")}, pois já existem visitas entre essas datas.", true, datainicial, datafinal))); } model.id = id; _repository.Update(ibge, model); var principal = HttpContext.User; int?id_usuario = null; if (principal?.Identities?.FirstOrDefault().Claims != null) { id_usuario = Convert.ToInt32(principal?.Identities?.FirstOrDefault().Claims.FirstOrDefault()?.Value); } //insere log var ciclolog = new CicloLog { id_ciclo = model.id, situacao = model.situacao, id_usuario = id_usuario }; _repository.InserirLogCiclo(ibge, ciclolog); return(Ok(model)); } catch (Exception ex) { var response = TrataErro.GetResponse(ex.Message, true); return(StatusCode((int)HttpStatusCode.InternalServerError, response)); } }
public ActionResult Inserir([FromHeader] string ibge, [FromBody] Ciclo model) { try { ibge = _config.GetConnectionString(Connection.GetConnection(ibge)); //valida se existe ciclo com o mesmo período var itens = _repository.ValidaExistenciaCicloPeriodo(ibge, model.data_inicial, model.data_final); if (itens.Count > 0) { return(BadRequest(TrataErro.GetResponse("Já existe um ciclo vigente no período informado.", true))); } model.id = _repository.GetNewId(ibge); _repository.Insert(ibge, model); var principal = HttpContext.User; int?id_usuario = null; if (principal?.Identities?.FirstOrDefault().Claims != null) { id_usuario = Convert.ToInt32(principal?.Identities?.FirstOrDefault().Claims.FirstOrDefault()?.Value); } var ciclolog = new CicloLog { id_ciclo = model.id, situacao = model.situacao, id_usuario = model.id_usuario }; _repository.InserirLogCiclo(ibge, ciclolog); return(Ok(model)); } catch (Exception ex) { var response = TrataErro.GetResponse(ex.Message, true); return(StatusCode((int)HttpStatusCode.InternalServerError, response)); } }
public void InserirLogCiclo(string ibge, CicloLog model) { try { var id = Helpers.HelperConnection.ExecuteCommand(ibge, conn => conn.QueryFirstOrDefault <int?>(_command.GetLogCicloNewId)); Helpers.HelperConnection.ExecuteCommand(ibge, conn => conn.Execute(_command.CriarLogCiclo, new { @id = id, @id_ciclo = model.id_ciclo, @situacao = model.situacao, @data_situacao = DateTime.Now, id_usuario = model.id_usuario })); } catch (Exception ex) { throw ex; } }