public IActionResult Get([FromQuery(Name = "param")] string paramString)
        {
            List <CarPoolInfo> carPoolInfos = CarPoolManager.getCarPoolInfos(CarPoolContext, PersonContext);

            if (paramString == null)
            {
                return(Ok(carPoolInfos));
            }

            CarPoolInfo param = JsonConvert.DeserializeObject <CarPoolInfo>(paramString);

            if (param.Driver != null)
            {
                carPoolInfos.RemoveAll(c => !c.Driver.Equals(param.Driver));
            }

            if (param.EndLocation != null)
            {
                carPoolInfos.RemoveAll(c => !c.EndLocation.Equals(param.EndLocation));
            }

            if (param.WeekDays != null)
            {
                carPoolInfos.RemoveAll(c => param.WeekDays.Except(c.WeekDays).Any());
            }

            if (param.Time != null)
            {
                TimeSpan wantedArrivalTime = TimeSpan.Parse(param.Time);
                carPoolInfos.RemoveAll(c => wantedArrivalTime.CompareTo(TimeSpan.Parse(c.Time)) > 0);
            }

            return(Ok(carPoolInfos));
        }
        public IActionResult Add([FromBody] CarPoolInfo carPoolInfo)
        {
            string username = Authentication.getUserName(HttpContext);
            Person person   = Authentication.GetPerson(PersonContext, username);

            CarPoolManager.AddNewCarPool(carPoolInfo, person, CarPoolContext);
            return(Ok());
        }
        public IActionResult Email([FromBody] CarPoolInfo carPoolInfo)
        {
            Person driver    = PersonContext.Persons.Where(p => p.UserName.Equals(carPoolInfo.Driver)).FirstOrDefault();
            Person passenger = Authentication.GetPerson(PersonContext, Authentication.getUserName(HttpContext));

            SendEmail(driver, passenger, carPoolInfo);
            return(Ok());
        }
Пример #4
0
        public static void AddNewCarPool(CarPoolInfo carPoolInfo, Person person, CarPoolContext carPoolContext)
        {
            CarPool          carPool    = getCarPoolFromInfo(carPoolInfo, person.ID);
            List <WeekDay>   weekDays   = getWeekDays(carPoolContext, carPoolInfo.WeekDays);
            List <Occurance> occurances = GetOccurances(carPool, weekDays);

            carPool.Occurances = occurances;
            weekDays.ForEach(w => w.Occurances = occurances.Where(o => o.DayID == w.ID).ToList());

            carPoolContext.Database.EnsureCreated();
            carPoolContext.CarPools.Add(carPool);
            carPoolContext.WeekDays.AttachRange(weekDays);
            carPoolContext.SaveChanges();
        }
Пример #5
0
        private static CarPool getCarPoolFromInfo(CarPoolInfo carPoolInfo, int personId)
        {
            CarPool carPool = new CarPool
            {
                DriverID          = personId,
                CarDescription    = carPoolInfo.CarDescription,
                AdditionalDetails = carPoolInfo.AdditionalDetails,
                StartLocation     = carPoolInfo.StartLocation,
                EndLocation       = carPoolInfo.EndLocation,
                Seats             = carPoolInfo.Seats,
                ArrivalTime       = TimeSpan.Parse(carPoolInfo.Time)
            };

            return(carPool);
        }
Пример #6
0
        private static CarPoolInfo getCarPoolInfoBase(CarPoolContext carPoolContext, PersonContext personContext, CarPool carPool)
        {
            CarPoolInfo carPoolInfo = new CarPoolInfo
            {
                Driver            = getDriverName(personContext, carPool.DriverID),
                CarDescription    = carPool.CarDescription,
                AdditionalDetails = carPool.AdditionalDetails,
                StartLocation     = carPool.StartLocation,
                EndLocation       = carPool.EndLocation,
                Seats             = carPool.Seats,
                Time     = carPool.ArrivalTime.ToString(),
                WeekDays = getWeekDays(carPoolContext, carPool.ID)
            };

            return(carPoolInfo);
        }
        private void SendEmail(Person driver, Person passenger, CarPoolInfo carPoolInfo)
        {
            SmtpClient client = new SmtpClient(Configuration["Email:Smtp"], int.Parse(Configuration["Email:Port"]))
            {
                UseDefaultCredentials = false,
                EnableSsl             = true,
                Credentials           = new NetworkCredential(Configuration["Email:Address"], Configuration["Email:Password"])
            };

            MailMessage mailMessage = new MailMessage
            {
                From = new MailAddress(Configuration["Email:Address"])
            };

            mailMessage.To.Add(driver.Email);
            mailMessage.CC.Add(passenger.Email);
            mailMessage.Body    = JsonConvert.SerializeObject(carPoolInfo);
            mailMessage.Subject = "Car Pool Request";
            client.Send(mailMessage);
        }