public async Task <GpsVehicleDetailsDto> GpsMeterReading(string vehicleNo) { GpsVehicleDetailsDto responseobj = new GpsVehicleDetailsDto(); GpsSessionDto sessionobj = new GpsSessionDto(); string baseURL = "http://universaltrackers.com/api_utrack/?"; string userloginUrl = "SID=100&[email protected]&PS=abc123"; try { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(baseURL); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); CancellationTokenSource cts = new CancellationTokenSource(10000); // 10 seconds using (HttpResponseMessage response = await client.GetAsync(baseURL + userloginUrl, cts.Token)) using (HttpContent content = response.Content) { string result = await content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { sessionobj = JsonConvert.DeserializeObject <IEnumerable <GpsSessionDto> >(result).FirstOrDefault(); } }; string vehiDetails = "SID=102&VTEXT=" + vehicleNo.Replace(" ", String.Empty).Replace(@"-", String.Empty) + "&PID=" + sessionobj.pid + ""; using (HttpResponseMessage response = await client.GetAsync(baseURL + vehiDetails, cts.Token)) using (HttpContent content = response.Content) { string result = await content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { responseobj = JsonConvert.DeserializeObject <IEnumerable <GpsVehicleDetailsDto> >(result).LastOrDefault(); } } } return(responseobj); } catch (Exception ex) { responseobj.error = "Error retrieving meter reading"; return(responseobj); } }
public async Task <ActionResult> Edit(TripViewModel model) { try { string DispatcherName = System.Web.HttpContext.Current.User.Identity.Name; string message = ""; Trip trip = new Trip(); if (model.VehicleId != 0) { if (model.DriverId != 0) { if (model.MeterReadingIn > 0) { if (model.BataRateId != 0) { BataRate bataRate = _bataRateService.GetBataRateById(model.BataRateId); if (bataRate != null) { TripBata bataDetails = new TripBata(); bataDetails.TripId = model.TripId; bataDetails.Description = bataRate.Description; bataDetails.Amount = bataRate.Amount; if (_tripBataService.IsBattaNotExists(model.TripId)) { _tripBataService.SaveBataData(bataDetails); } } } //update vehicle is available List <int> vehicle = new List <int>() { model.VehicleId }; await Task.Run(() => _vehicleService.UpdateVehicleAvailable(vehicle)); //update driver is available List <int> driver = new List <int>() { model.DriverId }; await Task.Run(() => _driverService.UpdateDriverAvailable(driver)); if (model != null) { trip = AutoMapper.Mapper.Map <Trip>(model); trip.Updatedby = DispatcherName; trip.TripMileage = (trip.MeterReadingIn - trip.MeterReadingOut); if (model.PackageIds != null && model.PackageIds.Count() > 0) { foreach (int pid in model.PackageIds) { PreDefineTrip predefTrip = _preDefineTripService.GetPreDefineTripById(pid); if (predefTrip != null) { PackagesList package = new PackagesList(); package.TripId = model.TripId; package.PreDefineTripName = predefTrip.PreDefineTripName; package.Rate = predefTrip.Rate; if (_packageListService.IsPackageExists(model.TripId, predefTrip.PreDefineTripName)) { await Task.Run(() => _packageListService.SavePackage(package)); } } } } //gps data collection if (model.VehicleNumber != null) { GpsVehicleDetailsDto gpsDetails = await _gpsClientService.GpsMeterReading(model.VehicleNumber); if (gpsDetails != null) { trip.MeterReadingInGps = Convert.ToInt32(!string.IsNullOrEmpty(gpsDetails.meter_reading)); trip.MeterReadingInStatus = gpsDetails.error; trip.MeterReadingInGap = (trip.MeterReadingInGps - trip.MeterReadingIn); } } //update vehicle meter reading await Task.Run(() => _vehicleService.UpdateMeterReading(model.VehicleId, Convert.ToInt32(model.MeterReadingIn))); //save trip details await Task.Run(() => _tripService.EditTrip(model.TripId, trip)); await Task.Run(() => _tripService.ArchiveTripById(model.TripId)); } } else { message = "Error in meter reading in"; } } else { message = "Driver cannot be null"; } } else { message = "Vehicle cannot be null"; } return(Json(message, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(e.Message)); } }
public async Task <ActionResult> Create(TripViewModel TripData) { try { string DispatcherName = System.Web.HttpContext.Current.User.Identity.Name; string message = ""; int insertedTripId = 0; string VoucherNumber = ""; Trip trip = new Trip(); if (TripData.VehicleId != 0) { if (TripData.DriverId != 0) { if (_tripService.VehicleAvailability(TripData.VehicleId)) { if (_tripService.DriverAvailability(TripData.DriverId)) { int customerId = TripData.Customer != null?_customerService.GetCustomerId(TripData.Customer.PhoneNumber) : 0; TripData.Customer = null; if (customerId != 0) { TripData.CustomerId = customerId; if (TripData != null) { trip = AutoMapper.Mapper.Map <Trip>(TripData); trip.IsOpen = true; //trip.DispatchedHotel = Session["SelectedHotel"].ToString(); trip.Createdby = DispatcherName; trip.PaymentDateTime = CustomDataHelper.CurrentDateTimeSL.GetCurrentDate(); trip.TimeIn = CustomDataHelper.CurrentDateTimeSL.GetCurrentDate(); trip.TimeOut = CustomDataHelper.CurrentDateTimeSL.GetCurrentDate(); trip.VoucherNumber = GenarateVoucherNumber(); VoucherNumber = trip.VoucherNumber; } //upadte vehicle mete readings await Task.Run(() => _vehicleService.UpdateMeterReading(trip.VehicleId, Convert.ToInt32(TripData.MeterReadingOut))); //update vehicle is unavailable List <int> vehicle = new List <int>() { trip.VehicleId }; await Task.Run(() => _vehicleService.UpdateVehicleUnAvailable(vehicle)); //update driver is unavailable List <int> driver = new List <int>() { trip.DriverId }; await Task.Run(() => _driverService.UpdateDriverUnAvailable(driver)); if (trip != null) { //gps data collection if (TripData.VehicleNumber != null) { GpsVehicleDetailsDto gpsDetails = await _gpsClientService.GpsMeterReading(TripData.VehicleNumber); if (gpsDetails != null) { trip.MeterReadingInGps = Convert.ToInt32(!string.IsNullOrEmpty(gpsDetails.meter_reading)); trip.MeterReadingInStatus = gpsDetails.error; trip.MeterReadingInGap = (trip.MeterReadingInGps - trip.MeterReadingIn); } } //save trip details insertedTripId = await Task.Run(() => _tripService.SaveTripDetails(trip)); } if (TripData.PackageIds != null) { foreach (int id in TripData.PackageIds) { PreDefineTrip predefTrip = _preDefineTripService.GetPreDefineTripById(id); if (predefTrip != null) { PackagesList package = new PackagesList(); package.TripId = insertedTripId; package.PreDefineTripName = predefTrip.PreDefineTripName; package.Rate = predefTrip.Rate; await Task.Run(() => _packageListService.SavePackage(package)); await Task.Run(() => _tripService.UpdatePackageCost(insertedTripId, predefTrip.Rate)); } } } message = "Trip successfully created."; } else { message = "Invalid customer(Save, if new customer.)"; } } else { message = "Driver is already assigned to another trip"; } } else { message = "Vehicle is already assigned to another trip"; } } else { message = "Driver cannot be null"; } } else { message = "Vehicle cannot be null"; } return(Json(new { VoucherNumber, message }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(RedirectToAction("Create", "Trips")); } }