Esempio n. 1
0
        public ActionResult Post([FromBody] Evento evento)
        {
            if (evento == null)
            {
                return(BadRequest());
            }

            _eventoService.Add(evento);

            return(Ok());
        }
Esempio n. 2
0
        public async Task <IActionResult> Post(EventoDto model)
        {
            try
            {
                var eventos = await _eventoService.Add(model);

                if (eventos == null)
                {
                    return(BadRequest("Erro ao tentar adicionar evento."));
                }

                return(Ok(eventos));
            }
            catch (Exception ex)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError,
                                       $"Erro ao tentar adicionar eventos. Erro {ex.Message}"));
            }
        }
Esempio n. 3
0
        public IActionResult Post([FromBody] EventoVo eventoVo)
        {
            try
            {
                if (eventoVo == null)
                {
                    return(BadRequest());
                }
                var Evento = _eventoService.Add(eventoVo);

                return(Ok(Evento));
            }
            catch (ArgumentNullException e)
            {
                return(NotFound(e.Message));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message + " | " + e.InnerException.Message));
            }
        }
Esempio n. 4
0
        public async Task <ActionResult <Evento> > Add(Evento evento)
        {
            var eventoCreado = await _eventoService.Add(evento);

            return(Ok(eventoCreado));
        }
Esempio n. 5
0
        public string CadastrarEvento(EventoViewModel evento, List <Foto> fotos)
        {
            try
            {
                if (ValidaDadosDeEntrada(evento) != "")
                {
                    return(JsonConvert.SerializeObject(new { code = 400, message = ValidaDadosDeEntrada(evento) }));
                }
                else
                {
                    bool   podeAdicionar = true;
                    Evento ev            = new Evento();
                    evento.Latitude  = evento.Latitude.Replace(".", ",");
                    evento.Longitude = evento.Longitude.Replace(".", ",");
                    evento.Ativo     = false;
                    evento.Aprovado  = null;

                    var eventoService         = Mapper.Map <EventoViewModel, Evento>(evento);
                    var retornoConsultaEvento = VerificaSeEventoJaExiste(eventoService);

                    foreach (var v in retornoConsultaEvento)
                    {
                        if (
                            podeAdicionar &&
                            (eventoService.DataHoraInicio <= v.DataHoraInicio && eventoService.DataHoraFim <= v.DataHoraInicio) ||
                            (eventoService.DataHoraInicio >= v.DataHoraFim && eventoService.DataHoraFim >= v.DataHoraFim)
                            )
                        {
                            podeAdicionar = true;
                        }
                        else
                        {
                            ev            = v;
                            podeAdicionar = false;
                        }
                    }

                    if (podeAdicionar)
                    {
                        _eventoService.Add(eventoService);
                        int i = 0;

                        try
                        {
                            if (fotos != null)
                            {
                                foreach (var f in fotos)
                                {
                                    if (!string.IsNullOrEmpty(f.Imagem))
                                    {
                                        var fot = new Foto();

                                        //int inicio = f.Imagem.IndexOf(",");
                                        var nomeImagem = eventoService.EventoId.ToString() + eventoService.NomeEvento + i.ToString() + ".jpg";

                                        MD5 md5 = System.Security.Cryptography.MD5.Create();

                                        byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(nomeImagem);
                                        byte[] hash       = md5.ComputeHash(inputBytes);

                                        StringBuilder sb = new StringBuilder();
                                        for (int z = 0; z < hash.Length; z++)
                                        {
                                            sb.Append(hash[z].ToString("X2"));
                                        }

                                        var nomeCriptografado = sb.ToString();

                                        //if (ConvertStringtoImage(f.Imagem.Substring(inicio + 1), nomeCriptografado))
                                        if (ConvertStringtoImage(f.Imagem, nomeCriptografado))
                                        {
                                            fot.Imagem   = nomeCriptografado;
                                            fot.Tipo     = 1;
                                            fot.EventoId = eventoService.EventoId;

                                            _fotoService.Add(fot);
                                        }
                                        else
                                        {
                                            var evto = _eventoService.GetById(eventoService.EventoId);

                                            if (evto != null)
                                            {
                                                var fo = _fotoService.GetAll().Where(ft => ft.EventoId == evto.EventoId);

                                                foreach (var fto in fo)
                                                {
                                                    _fotoService.Remove(fto);
                                                }

                                                _eventoService.Remove(evto);
                                            }

                                            return(JsonConvert.SerializeObject(new { code = 400, message = "Houve um erro ao enviar as fotos do local do evento e por isso o mesmo não foi cadastrado. Por favor tente novamente." }));
                                        }

                                        i++;
                                    }
                                }
                            }
                        }
                        catch
                        {
                            var evto = _eventoService.GetById(eventoService.EventoId);

                            if (evto != null)
                            {
                                var fot = _fotoService.GetAll().Where(f => f.EventoId == evto.EventoId);

                                foreach (var f in fot)
                                {
                                    _fotoService.Remove(f);
                                }

                                _eventoService.Remove(evto);
                            }

                            return(JsonConvert.SerializeObject(new { code = 400, message = "Houve um erro ao enviar as fotos do local do evento e por isso o mesmo não foi cadastrado. Por favor tente novamente." }));
                        }
                        return(JsonConvert.SerializeObject(new { code = 200, message = "Evento cadastrado com sucesso. Aguarde a aprovação.", id = eventoService.EventoId }));
                    }
                    else
                    {
                        return(JsonConvert.SerializeObject(new { code = 400, message = "Desculpe, mas já existe um evento cadastrado neste local para este horário.", retornoEvento = ev }));
                    }
                }
            }
            catch
            {
                return(JsonConvert.SerializeObject(new { code = 400, message = "Erro no cadastro. Por favor, tente novamente." }));
            }
        }