Example #1
0
        public ActionResult Accept(int?id, int?tripinfoid)
        {
            //Update requests
            RequestRepository reqRepo = new RequestRepository();
            Request           request = reqRepo.GetById(id);

            request.Response = 1;

            reqRepo.UpdateRequest(request);

            //Update trip information
            TripInformationRepository tripInfoRepo = new TripInformationRepository();
            TripInformation           tripInfo     = tripInfoRepo.GetById(tripinfoid);

            tripInfo.Users.Add(request.User);
            tripInfo.Capacity--;

            //Added instead of update repo
            string        sql            = "update TripInformation set Capacity=@P0 where TripInformationId=@P1";
            List <object> parameterList1 = new List <object>();

            //User user = (User)Session["__user"];
            parameterList1.Add(tripInfo.Capacity);
            parameterList1.Add(tripInfo.TripInformationId);
            object[] parameters1 = parameterList1.ToArray();
            int      result      = db.Database.ExecuteSqlCommand(sql, parameters1);


            //tripInfoRepo.UpdateTripInformation(tripInfo);//Error when executing this line



            return(RedirectToAction("Index", "Request"));
        }
        public async Task <TripInformation> AddTrip(TripModel model)
        {
            //Gelen istek içerisinde Nerden , Nereye , Tarih , Açıklama ve Koltuk sayısının yanında oluşturan kişinin ID sini alıp DB ye kayıt edilen fonksiyon.
            var tripEntity = new TripInformation
            {
                Explanation = model.Explanation,
                From        = model.From,
                To          = model.To,
                Date        = model.Date,
                SeatCount   = model.SeatCount,
                CreatedBy   = model.CreatedBy
            };

            try
            {
                await _unitOfWork.TripInformation.Add(tripEntity);

                _unitOfWork.Complete();
                return(tripEntity);
            }
            catch (Exception e)
            {
                return(null);
            }
        }
        public void Add(Trip t, int userId)
        {
            Add(t);
            TripInformation tripInformation = new TripInformation();

            tripInformation.Trip = t;
            tripInformation.Users.Add(new UserRepository().GetById(userId));
            Context.Set <TripInformation>().Add(tripInformation);
            Context.SaveChanges();
        }
Example #4
0
        public ActionResult SendRequest(int id)
        {
            ViewBag.from = TempData["from"];
            ViewBag.to   = TempData["to"];
            ViewBag.time = TempData["time"];
            //Modify TripInfo database

            User user = UserAccountsManager.Instance.CurrentUser;

            TripInformationRepository tripRepo = new TripInformationRepository();
            TripInformation           tripInfo = tripRepo.GetById(id);
            Request request = new Request();

            request.User            = user;
            request.From            = ViewBag.from;
            request.To              = ViewBag.to;
            request.Response        = 0;
            request.StartTime       = Convert.ToDateTime(ViewBag.time);
            request.TripInformation = tripInfo;
            request.Owner           = tripInfo.Owner;

            //RequestRepository requestRepo = new RequestRepository();
            //           requestRepo.CreateRequest(request);//Error when executing this line. Solved the StackOverflow exception
            string        sql            = "insert into Request ([To],[From],StartTime,Response,Owner_UserId,User_UserId,TripInformation_TripInformationId) values (@p0,@p1,@p2,@p3,@p4,@p5,@p6)";
            List <object> parameterList1 = new List <object>();

            parameterList1.Add(request.To);
            parameterList1.Add(request.From);
            parameterList1.Add(request.StartTime);
            parameterList1.Add(request.Response);
            parameterList1.Add(request.Owner.UserId);
            parameterList1.Add(request.User.UserId);
            parameterList1.Add(request.TripInformation.TripInformationId);
            object[] parameters = parameterList1.ToArray();
            int      result     = db.Database.ExecuteSqlCommand(sql, parameters);



            return(View());
        }
Example #5
0
 public static double DistanceToKilometers(this TripInformation tripInformation)
 {
     return(tripInformation.Distance / 1000);
 }
Example #6
0
 public static double DurationToMinutes(this TripInformation tripInformation)
 {
     return(tripInformation.Duration.TotalMinutes);
 }
Example #7
0
        public void AddTrip(NewPostingViewModel viewModel, User user)
        {
            using (Context) {
                Location to = new Location();
                to.StreetAddress = viewModel.StreetAddressDestination;
                to.City          = viewModel.CityDestination;
                to.State         = viewModel.StateDestination;
                to.ZipCode       = viewModel.ZipDestination;

                Location from = new Location();
                from.StreetAddress = viewModel.StreetAddressOrigin;
                from.City          = viewModel.CityOrigin;
                from.State         = viewModel.StateOrigin;
                from.ZipCode       = viewModel.ZipOrigin;

                Trip trip = new Trip();
                trip.To             = to;
                trip.From           = from;
                trip.TravelDateTime = viewModel.DateTime;
                trip.Type           = viewModel.TripType;

                TripInformation tripInformation = new TripInformation();
                tripInformation.Capacity = viewModel.TripType == TripType.LookingForPassengers ? 3 : 1;
                trip.TripInformation     = tripInformation;
                using (CarpoolContext context = new CarpoolContext()) {
                    user = context.Users.Single(x => x.UserId == user.UserId);
                    trip.TripInformation.Owner = user;
                    context.Trips.Add(trip);
                    AddressBook addressBook      = context.AddressBooks.SingleOrDefault(x => x.UserId == user.UserId);
                    bool        isNewAddressBook = addressBook == null;
                    if (viewModel.AddOriginToAddressBook)
                    {
                        if (addressBook == null)
                        {
                            addressBook = new AddressBook()
                            {
                                User = user, UserId = user.UserId, Locations = new List <Location>()
                            };
                        }
                        addressBook.Locations.Add(from);
                    }
                    if (viewModel.AddDestinationToAddressBook)
                    {
                        if (addressBook == null)
                        {
                            addressBook = new AddressBook()
                            {
                                User = user, UserId = user.UserId, Locations = new List <Location>()
                            };
                        }
                        addressBook.Locations.Add(to);
                    }
                    if (viewModel.AddOriginToAddressBook || viewModel.AddDestinationToAddressBook)
                    {
                        if (isNewAddressBook)
                        {
                            context.AddressBooks.Add(addressBook);
                        }
                        else
                        {
                            context.Set <AddressBook>().Attach(addressBook);
                            context.Entry(addressBook).State = EntityState.Modified;
                        }
                    }
                    context.SaveChanges();
                }
            }
        }