public HttpResponseMessage Post(EventoModel input) { Evento evento; try { evento = CriarEvento(input); agenda.Agendar(evento); input.Id = evento.Id; } catch (Exception ex) { if (ex is DbCException || ex is LocalReservadoException || ex is EventoParoquialExistenteException) { return Request.CreateResponse<string>(HttpStatusCode.InternalServerError, ex.Message.Replace(Environment.NewLine, "<br/>")); } else { throw; } } return Request.CreateResponse<EventoModel>(HttpStatusCode.Created, input); }
private Evento CriarEvento(EventoModel input) { Evento evento = new Evento( input.Nome, input.Descricao, input.DataInicio.GetValueOrDefault(), input.DataFim.GetValueOrDefault(), GrupoLogado, ((TipoEventoEnum)input.Tipo) ); foreach (var reserva in input.Reservas) { var local = RavenSession.ObterLocais().First(l => l.Id == reserva.LocalId); evento.Reservar(local, reserva.Data.GetValueOrDefault(), reserva.Hora); } return evento; }
private Evento MapearEvento(Evento evento, EventoModel input) { evento.Alterar(input.Nome, input.Descricao, input.DataInicio.GetValueOrDefault(), input.DataFim.GetValueOrDefault(), GrupoLogado, ((TipoEventoEnum)input.Tipo)); var reservas = new List<Reserva>(); foreach (var reserva in input.Reservas) { var local = RavenSession.ObterLocais().First(l => l.Id == reserva.LocalId); reservas.Add(new Reserva(local, reserva.Data.GetValueOrDefault(), reserva.Hora)); } evento.AlterarReservasDeLocais(reservas); return evento; }
public HttpResponseMessage Put(string id, EventoModel input) { Evento evento = RavenSession.Load<Evento>(input.Id); try { MapearEvento(evento, input); agenda.Agendar(evento); } catch (Exception ex) { DoNotCallSaveChanges = true; if (ex is DbCException || ex is LocalReservadoException || ex is EventoParoquialExistenteException) { return Request.CreateResponse<string>(HttpStatusCode.InternalServerError, ex.Message.Replace(Environment.NewLine, "<br/>")); } else { throw; } } return Request.CreateResponse(HttpStatusCode.NoContent); }