public GetLastestRideBookResponseModel GetRideBook(GetLastestRideBookRequestModel model) { try { var response = Post(model, GetRideBookUrl); //add fake object return(new GetLastestRideBookResponseModel { driver_name = "Driver name", car_make = "Ford", car_model = "F-16", car_color = "Silver", car_license = "GT117", time_eta = 30, pickup_location = "Home", time_pickup = DateTime.UtcNow, destination_location = "Work" }); //if (string.IsNullOrEmpty(response.Content)) //{ // return null; //} //return JsonConvert.DeserializeObject<GetLastestRideBookResponseModel>(response.Content); } catch (Exception ex) { LogError("There is error while call company signup api: " + ex.Message, ex); return(null); } }
public async Task <IHttpActionResult> ActiveSos(ActiveSosModel model) { //validate model if (!ModelState.IsValid) { foreach (var key in ModelState.Keys.Where(key => ModelState[key].Errors.Count > 0)) { return(BadRequest(ModelState[key].Errors[0].ErrorMessage)); } } //find safety settings var safetySetting = _safetySettingService.GetByYayYoId(model.YayYoId); try { if (safetySetting == null) { return(BadRequest("User does not exist")); } //update safety status safetySetting.Active = true; safetySetting.UpdatedOnUtc = DateTime.UtcNow; await _safetySettingService.UpdateAsync(safetySetting); //create new SOS ID var logSos = new LogSos { YayYoId = model.YayYoId, SafetySettingId = safetySetting.Id }; await _logSosService.CreateAsync(logSos); //get ride book info from YayYo var rideBookRequest = new GetLastestRideBookRequestModel { yayYo_id = model.YayYoId }; var rideBookReponse = _yayYoService.GetRideBook(rideBookRequest); if (rideBookReponse == null) { return(BadRequest("Error when get GetRideBook info")); } //add ride info to ride Information var rideBook = new LogRideInformation { DriverName = rideBookReponse.driver_name, CarMake = rideBookReponse.car_make, CarModel = rideBookReponse.car_model, CarColor = rideBookReponse.car_color, CarLicense = rideBookReponse.car_license, YayYoId = model.YayYoId, LocationPickup = rideBookReponse.pickup_location, TimeEta = rideBookReponse.time_eta, TimePickup = rideBookReponse.time_pickup, LocationDestination = rideBookReponse.destination_location, LogSosId = logSos.Id }; await _rideInformationService.CreateAsync(rideBook); //add SosGeolocation info var location = new LogSosGeolocation { LogSosId = logSos.Id, Location = model.GeoLocation }; await _sosGeolocationService.CreateAsync(location); //send SMS var contacts = await _contactService.GetBySafetySettingIdAsync(safetySetting.Id); foreach (var contact in contacts) { var contactInfo = new SmsRequestModel { FirstName = safetySetting.FirstName, RiderPickupLocation = rideBook.LocationPickup, DestinationAddress = rideBook.LocationDestination, RideScheduledTime = rideBook.TimePickup ?? DateTime.MinValue, GeolocationAddress = model.GeoLocation, ContactPhoneNumber = contact.Phone }; _yayYoService.SendSms(contactInfo); } return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }