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()); }
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(); }
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); }
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); }