コード例 #1
0
 public void UpdateTripParticipator(TripParticipator tp)
 {
     if (tp != null)
     {
         _context.Update(tp);
         _context.SaveChanges();
     }
 }
コード例 #2
0
 public void RemoveTripParticipator(TripParticipator tp)
 {
     if (tp != null)
     {
         _context.Remove(tp);
         _context.SaveChanges();
     }
 }
コード例 #3
0
        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 }));
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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)));
        }
コード例 #7
0
        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());
                }
            }
        }