public void UpdateTripParticipator(TripParticipator tp) { if (tp != null) { _context.Update(tp); _context.SaveChanges(); } }
public void RemoveTripParticipator(TripParticipator tp) { if (tp != null) { _context.Remove(tp); _context.SaveChanges(); } }
public async Task <IActionResult> AddInfo(TripParticipator tp) { var tripParticipator = await _context.TripParticipators.FirstOrDefaultAsync(m => m.TripId == id1 && m.UserId == id2); tripParticipator.Info = tp.Info; _context.Update(tripParticipator); await _context.SaveChangesAsync(); return(RedirectToAction("Details", new { id = id1 })); }
public void DeclineTripForUser(int tripId, int userId) { TripParticipator tp = _context.TripParticipators.Where(x => x.UserId == userId && x.TripId == tripId).FirstOrDefault(); _context.Remove(tp); _context.SaveChanges(); Trip trip = _context.Trip.Include(x => x.Participators).Where(x => x.Id == tripId).FirstOrDefault(); if (trip.Participators == null || trip.Participators.Count == 0) { trip.TripStatus = TripStatusEnum.Canceled; _context.Update(trip); } _context.SaveChanges(); }
public void ApproveTripForUser(int tripId, int userId) { User user = _context.Users.Find(userId); Trip trip = _context.Trip.Include(x => x.Participators).Where(x => x.Id == tripId).FirstOrDefault(); TripParticipator tp = _context.TripParticipators.Where(x => x.UserId == user.Id && x.TripId == trip.Id).FirstOrDefault(); tp.Approve = true; _context.Update(tp); if (!trip.Participators.Any(x => x.Approve == false)) { trip.TripStatus = TripStatusEnum.Approved; _context.Update(trip); } _context.SaveChanges(); }
public async Task <ActionResult> MergeSelectedTrips(string fromOffice, string toOffice, int[] trips, Trip trip) { var office1 = _context.Office.SingleOrDefault(x => x.Name == fromOffice); var office2 = _context.Office.SingleOrDefault(x => x.Name == toOffice); trip.ToOffice = office2.Id; trip.FromOffice = office1.Id; user = _us.GetUserFromRequest(Request); trip.Organizator = user.Id; _context.Add(trip); List <TripParticipator> participators = new List <TripParticipator>(); foreach (var i in trips) { List <TripParticipator> list2 = _context.TripParticipators.Where(x => x.TripId == i).ToList(); var removeTrip = await _context.Trip.FindAsync(i); List <AccomodationInfo> accomToDelete = new List <AccomodationInfo>(); _context.FlightInformation.Remove(_context.FlightInformation.Single(f => f.TripId == i)); _context.RentalCarInformation.Remove(_context.RentalCarInformation.Single(r => r.TripId == i)); foreach (var p in list2) { TripParticipator tp = new TripParticipator(); tp.TripId = trip.Id; tp.Trip = trip; tp.UserId = p.UserId; tp.User = p.User; _context.Remove(p); TripParticipator trPr = await _context.TripParticipators.FindAsync(tp.TripId, tp.UserId); if (trPr == null) { //var tmpAccom = _context.AccomodationInfo.Single(a => a.TripId == i); participators.Add(p); _context.Add(tp); } var accomInfo = _context.AccomodationInfo.Single(a => a.TripId == i && a.UserId == p.UserId); _context.AccomodationInfo.Remove(accomInfo); } _context.Remove(removeTrip); await _context.SaveChangesAsync(); } //var accomInfo = _context.AccomodationInfo.Single(a => a.TripId == 7); trip.Participators = participators; await _context.SaveChangesAsync(); int sk = 0; foreach (TripParticipator tp in trip.Participators) { _context.AccomodationInfo.Add(new AccomodationInfo { AccomodationStatus = AccomodationStatusEnum.NotRequired, TripId = tp.TripId, UserId = tp.UserId }); if (sk == 0) { _context.Add(new FlightInformation { FlightTicketStatus = TicketStatusEnum.NotRequired, TripId = trip.Id }); _context.Add(new RentalCarInformation { CarRental = CarRentalEnum.NotRequired, TripId = trip.Id }); sk++; } } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public IActionResult Create(string officeTitle1, string officeTitle2, Trip trip, TicketStatusEnum ticketStatus, CarRentalEnum carRental, AccomodationStatusEnum accomodationStatus) { using (var transaction = _context.Database.BeginTransaction()) { try { var office1 = _context.Office.SingleOrDefault(x => x.Name == officeTitle1); var office2 = _context.Office.SingleOrDefault(x => x.Name == officeTitle2); trip.ToOffice = office2.Id; trip.FromOffice = office1.Id; trip.TripStatus = 0; user = _us.GetUserFromRequest(Request); trip.Organizator = user.Id; _context.Add(trip); //await _context.SaveChangesAsync(); Console.WriteLine(trip.Id); trip.Participators = new List <TripParticipator>(); int i1 = 0; if (list == null || list.Count() == 0) { return(RedirectToAction(nameof(Create), new { error = "Kelionėje turi dalyvauti bent vienas dalyvis" })); } list = list.Distinct().ToList(); foreach (int i in list) { TripParticipator participator = new TripParticipator(); participator.TripId = trip.Id; participator.UserId = i; participator.Approve = false; if (i1 != i) { trip.Participators.Add(participator); } i1 = i; } if (!_ts.IsTripParticipatorsBusy(trip)) { _context.Add(trip); _context.SaveChanges(); foreach (TripParticipator tripParticipator in trip.Participators) { var accomodationInfo = new AccomodationInfo() { TripId = trip.Id, UserId = tripParticipator.UserId, Start = DateTime.MinValue, End = DateTime.MinValue, AccomodationStatus = accomodationStatus }; _context.Add(accomodationInfo); } var flightInfo = new FlightInformation() { TripId = trip.Id, Cost = 0, Start = DateTime.MinValue, End = DateTime.MinValue, FlightTicketStatus = ticketStatus }; _context.Add(flightInfo); var rentalCarinfo = new RentalCarInformation() { TripId = trip.Id, Cost = 0, Start = DateTime.MinValue, End = DateTime.MinValue, CarRental = carRental }; _context.Add(rentalCarinfo); _context.SaveChanges(); transaction.Commit(); return(RedirectToAction(nameof(Index))); } else { return(RedirectToAction(nameof(Create), new { error = "Pasirinkti dalyiai šiuo laiku užimti" })); } } catch (Exception) { return(NotFound()); } } }