/// <summary> /// Sends checking signal to Customer's vehicle and enqueue the result using RabbitMQ. /// </summary> /// <param name="cid">Customer Id</param> public List <VehicleTransModel> PingVehiclesInQueue(int cid) { try { var vehicleTransList = new List <VehicleTransModel>(); // 1- ping vehicles of this customer/all and get signal statuses back. var vehiclesSignalStatuses = cid != 0 ? _vehicleContextRepo.GetAll().Where(v => v.CustomerId != null && v.CustomerId == cid) : _vehicleContextRepo.GetAll().Where(v => v.CustomerId != null); // 2- post to DB. foreach (var v in vehiclesSignalStatuses) { var vse = _genericsConnectionStatusRepo.GenerateSignal(); _genericsVehicleTransDbContextRepo.Add(new VehicleStatusTrans { PingTime = DateTime.Now, Status = vse.ToString(), VehicleId = v.Id }); _genericsVehicleTransDbContextRepo.SaveChanges(); vehicleTransList.Add(new VehicleTransModel { VehicleId = v.Id, VehicleCode = v.Code, VehicleRegistrationNumber = v.RegNumber, CustomerId = v.CustomerId, CustomerName = _genericsCustomerDbContextRepo.Find(v.CustomerId).Name, Status = vse.ToString() }); } // Publish list to EventBus queue. _serviceBusQueue.Publish("Customer_VehicleStatusTrans", vehicleTransList); return(vehicleTransList); } catch (NullReferenceException nullExp) { _logger.Log(LogLevel.Error, nullExp.Message, nullExp.Source); throw; } catch (ObjectDisposedException objectDisponseExp) { _logger.Log(LogLevel.Error, objectDisponseExp.Message, objectDisponseExp.Source); throw; } catch (NotSupportedException notSuppExp) { _logger.Log(LogLevel.Error, notSuppExp.Message, notSuppExp.Source); throw; } catch (Exception exp) { _logger.Log(LogLevel.Error, exp.Message, exp.Source); throw; } }
/// <summary> /// Detach Vehicle from Customer. /// </summary> /// <param name="vid">Vehicle Id.</param> /// <returns>Returns Vehicle object.</returns> public Models.Vehicle UnassociateVehicle(int vid) { var vehicle = _genericsVehicleDbContextRepo.Find(vid); if (vehicle == null) { return(default(Models.Vehicle)); } vehicle.CustomerId = null; _genericsVehicleDbContextRepo.SaveChanges(); return(vehicle); }
private bool ProcessAssign(Models.CourseTeacher courseTeacher) { try { if (courseTeacher == null || courseTeacher.CourseId == 0 || courseTeacher.TeacherId == 0) { _logger.LogInformation(INVALID_INPUTS); return(false); } courseTeacher.JoinDate = DateTime.UtcNow; _courseTeacherDbContext.Add(courseTeacher); var records = _courseTeacherDbContext.SaveChanges(); return(records > 0); } catch (Exception exp) { _logger.Log(LogLevel.Error, exp.Message, exp.Source); throw; } }