public IHttpActionResult PostRoomReservations(RoomReservations roomReservations) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.AppRoomReservations.Add(roomReservations); try { db.SaveChanges(); } catch (DbUpdateException) { if (RoomReservationsExists(roomReservations.RoomId, roomReservations.UserId)) { return(Conflict()); } else { throw; } } return(CreatedAtRoute("DefaultApi", new { roomId = roomReservations.RoomId, userId = roomReservations.UserId }, roomReservations)); }
public IHttpActionResult PutRoomReservations(int id, RoomReservations roomReservations) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != roomReservations.Id) { return(BadRequest()); } db.Entry(roomReservations).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!RoomReservationsExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult DeleteRoomReservations(int id) { RoomReservations roomReservations = db.RoomReservations.Find(id); if (roomReservations == null) { return(NotFound()); } IdentityUser user = UserManager.FindById(User.Identity.GetUserId()); BAIdentityUser baUser = new BAIdentityUser(); baUser = user as BAIdentityUser; if (baUser == null) { return(null); } if (!baUser.appUserId.Equals(roomReservations.AppUserId)) { return(Unauthorized()); } db.RoomReservations.Remove(roomReservations); db.SaveChanges(); return(Ok(roomReservations)); }
public IHttpActionResult PostRoomReservations(RoomReservations roomReservations) { bool returnBedReq = false; lock (lockObj) { if (!ModelState.IsValid) { // return BadRequest(ModelState); returnBedReq = true; } else { //check validation of room reservation addded foreach (RoomReservations item in db.RoomReservations) { if (item.RoomId == roomReservations.RoomId) { if (((roomReservations.StartDate <= item.EndDate) && (roomReservations.StartDate >= item.StartDate)) || ((roomReservations.EndDate >= item.StartDate) && (roomReservations.EndDate <= item.EndDate))) { // return BadRequest(); returnBedReq = true; } } } db.RoomReservations.Add(roomReservations); db.SaveChanges(); } } if (returnBedReq) { return(BadRequest(ModelState)); } return(CreatedAtRoute("DefaultApi", new { controller = "RoomReservations", id = roomReservations.Id }, roomReservations)); }
public IHttpActionResult PutRoomReservations(int id, RoomReservations roomReserv) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != roomReserv.Id) { return(BadRequest("Ids are not matching!")); } db.Entry(roomReserv).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (db.AppRoomReservations.Find(id) == null) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public void ReserveRoom(RoomReservations roomReservations) { using (var data = new RoomReservationsEntities()) { data.RoomReservations.Add(roomReservations); data.SaveChanges(); } }
public IHttpActionResult GetRoomReservations(int id) { RoomReservations roomReservations = db.RoomReservationss.Find(id); if (roomReservations == null) { return(NotFound()); } return(Ok(roomReservations)); }
public IHttpActionResult PostRoomReservations(RoomReservations roomReservations) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.RoomReservationss.Add(roomReservations); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = roomReservations.Id }, roomReservations)); }
public IHttpActionResult DeleteRoomReservations(int id) { RoomReservations roomReservations = db.RoomReservations.Find(id); if (roomReservations == null) { return(NotFound()); } var user = db.Users.FirstOrDefault(u => u.UserName.Equals(User.Identity.Name)); //samo ako pokusava taj isti user da canceluje if (user == null) { return(BadRequest("You're not logged in.")); } if (roomReservations == null || !roomReservations.AppUserId.Equals(user.appUserId)) { return(BadRequest()); } /*if (roomReservations.StartDate <= DateTime.Now) * { * return BadRequest("You are supposed to be in your accommodation right now, can not cancel reservation!"); * }*/ //roomReservations.Canceled = true; //db.Entry(roomReservations).State = System.Data.Entity.EntityState.Modified; db.RoomReservations.Remove(roomReservations); db.SaveChanges(); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { bool exist = db.RoomReservations.Count(e => (e.Id == id)) > 0; if (!exist) { return(NotFound()); } else { throw; } } return(Ok(roomReservations)); }
public IHttpActionResult DeleteRoomReservations(int id) { RoomReservations roomReservations = db.RoomReservationss.Find(id); if (roomReservations == null) { return(NotFound()); } db.RoomReservationss.Remove(roomReservations); db.SaveChanges(); return(Ok(roomReservations)); }
public IHttpActionResult m3(int id, RoomReservations roomReservations) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != roomReservations.Id) { return(BadRequest()); } IdentityUser user = UserManager.FindById(User.Identity.GetUserId()); BAIdentityUser baUser = new BAIdentityUser(); baUser = user as BAIdentityUser; if (baUser == null) { return(null); } if (!baUser.appUserId.Equals(roomReservations.AppUserId)) { return(Unauthorized()); } db.Entry(roomReservations).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!RoomReservationsExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult PutRoomReservations(int id, RoomReservations roomReservations) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != roomReservations.Id) { return(BadRequest()); } var user = db.Users.FirstOrDefault(u => u.UserName.Equals(User.Identity.Name)); if (user == null) { return(BadRequest("You're not log in.")); } if (roomReservations == null || !roomReservations.AppUserId.Equals(user.appUserId)) { return(BadRequest()); } db.Entry(roomReservations).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!RoomReservationsExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult PostRoomReservations(RoomReservations roomReservations) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (roomReservations.StartDate > roomReservations.EndDate) { return(BadRequest(ModelState)); } List <RoomReservations> reservations = db.RoomReservations.Where(x => x.RoomId.Equals(roomReservations.RoomId)).ToList(); bool alreadyReserved = false; foreach (RoomReservations roomRes in reservations) { /*if (roomRes.Canceled != null) * { * if (!roomRes.Canceled) //ako nije cancelovana * {*/ if (roomRes.EndDate != null && roomRes.StartDate != null) //vidi u kom datumu je slobodna { if ((DateTime)roomRes.EndDate >= (DateTime)roomReservations.StartDate && (DateTime)roomRes.StartDate <= (DateTime)roomReservations.StartDate || (DateTime)roomRes.EndDate <= (DateTime)roomReservations.EndDate && (DateTime)roomRes.StartDate >= (DateTime)roomReservations.EndDate) { alreadyReserved = true; break; } } // } //} } if (alreadyReserved) { return(BadRequest("The room is already reserved in that period")); } db.RoomReservations.Add(roomReservations); db.SaveChanges(); return(CreatedAtRoute("RRes", new { id = roomReservations.Id }, roomReservations)); }
public void ValidateCreate() { var messages = new ValidationMessages(); if (string.IsNullOrEmpty(OrganizationId)) { messages.Add("OrganizationId пропущен. Используйте OrganizationId свойство чтобы установить organizationId."); } if (string.IsNullOrEmpty(OrderId)) { messages.Add("OrderId пропущен. Используйте OrderId свойство чтобы установить orderId."); } if (RoomReservations == null || !RoomReservations.Any()) { messages.Add("RoomReservations пропущен. Используйте RoomReservations свойство чтобы установить roomReservations."); } if (string.IsNullOrEmpty(BookerName)) { messages.Add("BookerName пропущен. Используйте BookerName свойство чтобы установить bookerName."); } if (Value < 1) { messages.Add("Value пропущен. Используйте Value свойство чтобы установить value."); } if (PayMethod == PayMethod.None) { messages.Add("PayMethod не может быть 'none'."); } if (messages.HasErrors) { throw new EasyMSValidationException(messages); } }
private void setDatabase() { var user = new BAIdentityUser(); user.UserName = "******"; user.PasswordHash = BAIdentityUser.HashPassword("admin"); user.Email = "*****@*****.**"; var user2 = new BAIdentityUser(); user2.UserName = "******"; user2.PasswordHash = BAIdentityUser.HashPassword("appU"); user2.Email = "*****@*****.**"; var accomod = new Accommodation(); var accomod2 = new Accommodation(); var accomods = new List <Accommodation>() { accomod, accomod2 }; var accomType = new AccommodationType(); accomType.Name = "Motel"; // accomType.Accommodations = accomods; var accomType2 = new AccommodationType(); accomType2.Name = "Hotel"; // accomType2.Accommodations = accomods; var place = new Place(); var place2 = new Place(); var room = new Room(); var room2 = new Room(); var rooms = new List <Room>() { room, room2 }; var country = new Country(); country.Name = "Serbia"; country.Code = 43; var country2 = new Country(); country2.Name = "Serbia"; country2.Code = 44; var region = new Region(); region.Name = "Zlatibor"; region.Country = country; region.Places = new List <Place>() { place, place2 }; var region2 = new Region(); region2.Name = "Jahorina"; region2.Country = country2; region2.Places = new List <Place>() { place, place2 }; country2.Regions = new List <Region>() { region2 }; country.Regions = new List <Region>() { region, region2 }; place.Name = "place1"; place.RegionId = 1; // place.Accommodations = new List<Accommodation>() { accomod, accomod2 }; place2.Name = "place2"; place2.RegionId = 1; accomod.Id = 1; accomod.Address = "Jovana Subotica"; accomod.Name = "accomod1"; accomod.Approved = true; accomod.User = user; accomod.AvrageGrade = 50; accomod.Description = "opisAccom"; accomod.AccomodationType = accomType; accomod.ImageURL = "https://images.pexels.com/photos/164595/pexels-photo-164595.jpeg?auto=compress&cs=tinysrgb&h=350"; accomod.Latitude = 49; accomod.Longitude = 19; accomod.Place = place; accomod.Rooms = rooms; accomod2.Id = 2; accomod2.Address = "Nikole Pasica"; accomod2.Name = "accomod2"; accomod2.Approved = true; accomod2.User = user2; accomod2.AvrageGrade = 40; accomod2.Description = "opisAccom2"; accomod2.AccomodationType = accomType2; accomod2.ImageURL = "https://www.rd.com/wp-content/uploads/2017/11/Here%E2%80%99s-What-You-Can-and-Can%E2%80%99t-Steal-from-Your-Hotel-Room_363678794-Elnur-760x506.jpg"; accomod2.Latitude = 56.43; accomod2.Longitude = 10.39; accomod2.Place = place2; // place.Accommodations = new List<Accommodation>() { accomod, accomod2 }; // place2.Accommodations = new List<Accommodation>() { accomod, accomod2 }; var comment = new Comment() { User = user, Text = "dobar", Grade = 10, Accomodation = accomod }; var comment2 = new Comment() { User = user2, Text = "los", Grade = 2, Accomodation = accomod2 }; accomod.Comments = new List <Comment> { comment }; accomod2.Comments = new List <Comment> { comment }; room.Description = "opisSobe1"; room.PricePerNight = 100; room.RoomNumber = 4; room.BedCount = 3; room.Accomodation = accomod; room2.Description = "opisSobe12"; room2.PricePerNight = 97; room2.RoomNumber = 6; room2.BedCount = 3; room2.Accomodation = accomod2; accomod.Rooms = rooms; var roomReservations = new RoomReservations(); var roomReservations2 = new RoomReservations(); roomReservations.Room = room; roomReservations.User = user; roomReservations.Timestamp = "5"; roomReservations.StartDate = "Danas"; roomReservations.EndDate = "Sutra"; roomReservations2.Room = room2; roomReservations2.User = user2; roomReservations2.Timestamp = "8"; roomReservations2.StartDate = "Danas"; roomReservations2.EndDate = "Prekosutra"; room.RoomReservations = new List <RoomReservations> { roomReservations }; room2.RoomReservations = new List <RoomReservations> { roomReservations2 }; HelperJebeni.accomodations = new List <Accommodation>(); HelperJebeni.accomodations.Add(accomod); HelperJebeni.accomodations.Add(accomod2); }
public IHttpActionResult UpdateReservation(RoomReservations roomReservations) { lock (obj) { using (var context = new BAContext()) { using (var transaction = context.Database.BeginTransaction()) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //bool isAdmin = UserManager.IsInRole(User.Identity.Name, "Admin");//User.Identity.Name => Username Identity User-a! UserManager trazi po njegovom username-u, i onda poredi! var user = context.Users.FirstOrDefault(u => u.UserName == User.Identity.Name); //Vadimo iz Identity baze po username-u Identity User-a, koji u sebi sadrzi AppUser-a! if (user != null && user.appUserId.Equals(roomReservations.AppUserId)) //Ako korisnik nije admin, i nije AppUser koji trazi podatke o sebi, nije autorizovan! { // korisnik ima pravo izmene svoje rezervacije bool existingReservation = false; foreach (var reservation in context.AppRoomReservations) { if (reservation.RoomId == roomReservations.RoomId) { string date = reservation.EndDate.Split('T')[0]; DateTime endDate = DateTime.ParseExact(date, "yyyy-MM-dd", CultureInfo.InvariantCulture); date = reservation.StartDate.Split('T')[0]; DateTime startDate = DateTime.ParseExact(date, "yyyy-MM-dd", CultureInfo.InvariantCulture); DateTime currentEndDate = DateTime.ParseExact(roomReservations.EndDate.Split('T')[0], "yyyy-MM-dd", CultureInfo.InvariantCulture); DateTime currentStartDate = DateTime.ParseExact(roomReservations.StartDate.Split('T')[0], "yyyy-MM-dd", CultureInfo.InvariantCulture); if (currentStartDate >= startDate && currentStartDate <= endDate) { existingReservation = true; } } } if (existingReservation) { return(BadRequest("Reservation exists")); } try { //context.AppRoomReservations.Add(roomReservations); var reservation = context.AppRoomReservations.Find(roomReservations.Id); reservation.EndDate = roomReservations.EndDate; reservation.StartDate = roomReservations.StartDate; reservation.RoomId = roomReservations.RoomId; context.SaveChanges(); } catch (DbUpdateConcurrencyException) { throw; } } transaction.Commit(); return(CreatedAtRoute("RoomReservationApi", new { id = roomReservations.Id }, roomReservations)); } } } }
protected override void Seed(BookingApp.Models.BAContext context) { /****/ if (!context.Roles.Any(r => r.Name == "Admin")) { var store = new RoleStore <IdentityRole>(context); var manager = new RoleManager <IdentityRole>(store); var role = new IdentityRole { Name = "Admin" }; manager.Create(role); } if (!context.Roles.Any(r => r.Name == "Manager")) { var store = new RoleStore <IdentityRole>(context); var manager = new RoleManager <IdentityRole>(store); var role = new IdentityRole { Name = "Manager" }; manager.Create(role); } if (!context.Roles.Any(r => r.Name == "AppUser")) { var store = new RoleStore <IdentityRole>(context); var manager = new RoleManager <IdentityRole>(store); var role = new IdentityRole { Name = "AppUser" }; manager.Create(role); } var userStore = new UserStore <BAIdentityUser>(context); var userManager = new UserManager <BAIdentityUser>(userStore); if (!context.Users.Any(u => u.UserName == "mitja")) { var user1 = new BAIdentityUser() { Id = "mitja", UserName = "******", Email = "*****@*****.**", PasswordHash = BAIdentityUser.HashPassword("mitja") }; userManager.Create(user1); userManager.AddToRole(user1.Id, "Admin"); } BAIdentityUser user = new BAIdentityUser() { Id = "stefan", UserName = "******", Email = "*****@*****.**", PasswordHash = BAIdentityUser.HashPassword("stefan") }; if (!context.Users.Any(u => u.UserName == "stefan")) { userManager.Create(user); userManager.AddToRole(user.Id, "Manager"); } if (!context.Users.Any(u => u.UserName == "user")) { var user1 = new BAIdentityUser() { Id = "user", UserName = "******", Email = "*****@*****.**", PasswordHash = BAIdentityUser.HashPassword("user") }; userManager.Create(user1); userManager.AddToRole(user1.Id, "AppUser"); } user.Accomodations = new List <Accommodation>(); user.Comments = new List <Comment>(); user.RoomReservations = new List <RoomReservations>(); var accomod = new Accommodation(); var accomod2 = new Accommodation(); var accomods = new List <Accommodation>() { accomod, accomod2 }; var accomType = new AccommodationType(); accomType.Name = "Motel"; // accomType.Accommodations = accomods; var accomType2 = new AccommodationType(); accomType2.Name = "Hotel"; // accomType2.Accommodations = accomods; var place = new Place(); var place2 = new Place(); var room = new Room(); var room2 = new Room(); var rooms = new List <Room>() { room, room2 }; var country = new Country(); country.Name = "Serbia"; //country.Regions = new List<Region>() { region, region2 }; country.Code = 43; //region.Country = country; var country2 = new Country(); country2.Name = "Serbia"; //country2.Regions = new List<Region>() { region2 }; country2.Code = 44; //region2.Country = country2; var region = new Region(); region.Name = "Zlatibor"; region.Country = country; //region.Places = new List<Place>() { place, place2 }; var region2 = new Region(); region2.Name = "Jahorina"; region2.Country = country2; // region2.Places = new List<Place>() { place, place2 }; place.Name = "place1"; place.RegionId = 1; //place.Accommodations = new List<Accommodation>() { accomod, accomod2 }; place2.Name = "place2"; place2.RegionId = 1; //place2.Accommodations = new List<Accommodation>() { accomod, accomod2 }; accomod.Address = "Jovana Subotica"; accomod.Approved = true; accomod.User = user; //accomod.Comments = comments; accomod.AvrageGrade = 50; accomod.Description = "opisAccom"; accomod.AccomodationType = accomType; accomod.ImageURL = "http://arhiva.alo.rs/resources/img/10-07-2014/single_news/1300330-sako1.jpg"; accomod.Latitude = 41.9271155; accomod.Longitude = 19.2364064; accomod.Place = place; accomod.Name = "Vila Rijana"; //accomod.Rooms = rooms; accomod2.Address = "Nikole Pasica"; accomod2.Approved = true; accomod2.User = user; //accomod2.Comments = comments; accomod2.AvrageGrade = 40; accomod2.Description = "opisAccom2"; accomod2.AccomodationType = accomType2; accomod2.ImageURL = "https://s-ec.bstatic.com/images/hotel/max1024x768/741/74116567.jpg"; accomod2.Latitude = 42.286238; accomod2.Longitude = 18.8327733; accomod2.Place = place2; accomod2.Name = "Hotel Moskva"; //accomod.Rooms = rooms; var comment = new Comment() { User = user, Text = "dobar", Grade = 10, Accomodation = accomod }; var comment2 = new Comment() { User = user, Text = "los", Grade = 2, Accomodation = accomod2 }; room.Description = "opisSobe1"; room.PricePerNight = 100; room.RoomNumber = 4; room.BedCount = 3; room.Accomodation = accomod; //room.RoomReservations = new List<RoomReservations>() { roomReservations, roomReservations2 }; room2.Description = "opisSobe12"; room2.PricePerNight = 97; room2.RoomNumber = 6; room2.BedCount = 3; room2.Accomodation = accomod2; //room2.RoomReservations = new List<RoomReservations>() { roomReservations, roomReservations2 }; var roomReservations = new RoomReservations(); var roomReservations2 = new RoomReservations(); roomReservations.Room = room; roomReservations.User = user; roomReservations.Timestamp = DateTime.Now.ToString(); roomReservations.StartDate = new DateTime(2017, 1, 1).ToString(); roomReservations.EndDate = new DateTime(2017, 2, 2).ToString(); roomReservations2.Room = room2; roomReservations2.User = user; roomReservations2.Timestamp = DateTime.Now.ToString(); roomReservations2.StartDate = new DateTime(2017, 3, 3).ToString(); roomReservations2.EndDate = new DateTime(2017, 4, 4).ToString(); context.Accommodations.AddOrUpdate(accomod); context.Accommodations.AddOrUpdate(accomod2); // context.Users context.Rooms.AddOrUpdate(room); context.Rooms.AddOrUpdate(room2); context.RoomReservationss.AddOrUpdate(roomReservations); context.RoomReservationss.AddOrUpdate(roomReservations2); context.Comments.AddOrUpdate(comment); context.Comments.AddOrUpdate(comment2); context.SaveChanges(); }
public IHttpActionResult PostReservation(RoomReservations roomReservations) { lock (obj) { using (var context = new BAContext()) { using (var transaction = context.Database.BeginTransaction()) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //RoomReservations existingReservation = context.AppRoomReservations.Where(p => p.StartDate.Equals(roomReservations.StartDate) && // p.EndDate.Equals(roomReservations.EndDate) && // p.RoomId == roomReservations.RoomId).FirstOrDefault(); bool existingReservation = false; foreach (var reservation in context.AppRoomReservations) { if (reservation.RoomId == roomReservations.RoomId) { string date = reservation.EndDate.Split('T')[0]; DateTime endDate = DateTime.ParseExact(date, "yyyy-MM-dd", CultureInfo.InvariantCulture); date = reservation.StartDate.Split('T')[0]; DateTime startDate = DateTime.ParseExact(date, "yyyy-MM-dd", CultureInfo.InvariantCulture); DateTime currentEndDate = DateTime.ParseExact(roomReservations.EndDate.Split('T')[0], "yyyy-MM-dd", CultureInfo.InvariantCulture); DateTime currentStartDate = DateTime.ParseExact(roomReservations.StartDate.Split('T')[0], "yyyy-MM-dd", CultureInfo.InvariantCulture); if (currentStartDate >= startDate && currentStartDate <= endDate) { existingReservation = true; } } } if (existingReservation) { return(BadRequest("Reservation exists")); } try { context.AppRoomReservations.Add(roomReservations); context.SaveChanges(); } catch (DbUpdateConcurrencyException) { throw; } transaction.Commit(); return(CreatedAtRoute("RoomReservationApi", new { id = roomReservations.Id }, roomReservations)); } } } }