Exemple #1
0
        public HttpResponseMessage Delete(string id)
        {
            HttpResponseMessage response = HomeController.ValidateAuthorizationHeader(Request, out string username);

            try
            {
                if (id == username)
                {
                    var user = db.User.FirstOrDefault(u => u.username == username);
                    if (user == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.NotFound, "usuario no encontrado"));
                    }
                    db.User.Remove(user);
                    db.SaveChanges();
                    response.StatusCode = HttpStatusCode.NoContent;
                    return(response);
                }
                return(Request.CreateResponse(HttpStatusCode.Unauthorized, "usuario no autorizado"));
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, string.Format("{0} - {1}", ERROR, e.Message)));
            }
        }
Exemple #2
0
        // GET api/reservations
        public HttpResponseMessage Get()
        {
            HttpResponseMessage response = HomeController.ValidateAuthorizationHeader(Request, out string username);

            try
            {
                var userReservations = db.Reservation.Where(r => r.username == username);
                response.Content = new StringContent(JsonConvert.SerializeObject(userReservations), Encoding.UTF8, "application/json");
                return(response);
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, string.Format("{0} - {1}", ERROR, e.Message)));
            }
        }
Exemple #3
0
        public HttpResponseMessage Get(long id)
        {
            HttpResponseMessage response = HomeController.ValidateAuthorizationHeader(Request, out string username);

            try
            {
                string day = DateTimeOffset.FromUnixTimeMilliseconds(id).LocalDateTime.ToString("yyyy/MM/dd");
                var    reservationsByDay = db.Reservation.Where(r => r.rsvday == day).ToList();
                response.Content = new StringContent(JsonConvert.SerializeObject(reservationsByDay), Encoding.UTF8, "application/json");
                return(response);
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, string.Format("{0} - {1}", ERROR, e.Message)));
            }
        }
Exemple #4
0
        // POST api/reservations
        public HttpResponseMessage Post([FromBody] Reservation reservation)
        {
            HttpResponseMessage response = HomeController.ValidateAuthorizationHeader(Request, out string username);

            if (reservation != null && reservation.rsvdateTime > DateTimeOffset.Now.ToUnixTimeMilliseconds() && courts.Contains(reservation.courtId))
            {
                var         user           = db.User.FirstOrDefault(u => u.username == username);
                Reservation newReservation = new Reservation(reservation.courtId, reservation.rsvdateTime);
                newReservation.username = username;
                if (horas.Contains(newReservation.rsvtime))
                {
                    string day = DateTimeOffset.FromUnixTimeMilliseconds(reservation.rsvdateTime).LocalDateTime.ToString("yyyy/MM/dd");
                    var    reservationsByDay = db.Reservation.Where(r => r.rsvday == day).ToList();
                    if (reservationsByDay.Any(r => r.username == username && r.rsvday == newReservation.rsvday && r.rsvtime == newReservation.rsvtime))
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest, "Ya tienes otra reserva para el mismo día y hora indicada."));
                    }
                    if (reservationsByDay.Any(r => r.courtId == newReservation.courtId && r.rsvday == newReservation.rsvday && r.rsvtime == newReservation.rsvtime))
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest, "Esta pista está reservada para la fecha y hora indicada."));
                    }
                    var userReservations = db.Reservation.Where(r => r.username == username).ToList();
                    if (userReservations.Count > 3)
                    {
                        return(Request.CreateResponse(HttpStatusCode.Conflict, "Solo puedes realizar un máximo de 4 reservas."));
                    }
                    try
                    {
                        db.Reservation.Add(newReservation);
                        db.SaveChanges();
                        response.StatusCode = HttpStatusCode.OK;
                        return(response);
                    }
                    catch (Exception e)
                    {
                        return(Request.CreateResponse(HttpStatusCode.InternalServerError, string.Format("{0} - {1}", ERROR, e.Message)));
                    }
                }
            }
            return(Request.CreateResponse(HttpStatusCode.BadRequest));
        }
Exemple #5
0
        public HttpResponseMessage Delete()
        {
            HttpResponseMessage response = HomeController.ValidateAuthorizationHeader(Request, out string username);

            try
            {
                var reservas = db.Reservation.Where(r => r.User.username == username).ToList();
                if (reservas.Count == 0)
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound, "no hay reservas a tu nombre"));
                }
                db.Reservation.RemoveRange(reservas);
                db.SaveChanges();
                response.StatusCode = HttpStatusCode.NoContent;
                return(response);
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, string.Format("{0} - {1}", ERROR, e.Message)));
            }
        }
Exemple #6
0
        public HttpResponseMessage Delete(long id)
        {
            HttpResponseMessage response = HomeController.ValidateAuthorizationHeader(Request, out string username);

            try
            {
                var reserva = db.Reservation.Where(r => r.rsvId == id && r.User.username == username).FirstOrDefault();
                if (reserva == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound, "reserva no encontrada"));
                }
                db.Reservation.Remove(reserva);
                db.SaveChanges();
                response.StatusCode = HttpStatusCode.NoContent;
                return(response);
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, string.Format("{0} - {1}", ERROR, e.Message)));
            }
        }