public void Map_data(Driving_Data aData)
        {
            User_Driving_Data aDrivingData = new User_Driving_Data();

            aDrivingData.User_Id    = aData.userID;
            aDrivingData.Session_Id = aData.Session_Id;
            //aDrivingData.Data_Id = 1;
            aDrivingData.Frequency           = aData.frequency;
            aDrivingData.Street_Name         = aData.streetName;
            aDrivingData.Speed_Limit         = aData.speedLimit;
            aDrivingData.Longitude           = aData.coordinate.longitude;
            aDrivingData.Latitude            = aData.coordinate.latitude;
            aDrivingData.TimeStamp           = aData.datetime;
            aDrivingData.Horizontal_Accuracy = aData.coordinate.horizontalAccuracy;
            aDrivingData.Speed               = aData.speed;
            aDrivingData.Gravity_X           = aData.gravity.x;
            aDrivingData.Gravity_Y           = aData.gravity.y;
            aDrivingData.Gravity_Z           = aData.gravity.z;
            aDrivingData.User_Acceleration_X = aData.userAcceleration.x;
            aDrivingData.User_Acceleration_Y = aData.userAcceleration.y;
            aDrivingData.User_Acceleration_Z = aData.userAcceleration.z;
            aDrivingData.Rotation_Rate_X     = aData.rotationRate.x;
            aDrivingData.Rotation_Rate_Y     = aData.rotationRate.y;
            aDrivingData.Rotation_Rate_Z     = aData.rotationRate.z;
            aDrivingData.Magnetic_Flied_X    = aData.magneticField.x;
            aDrivingData.Magnetic_Field_Y    = aData.magneticField.y;
            aDrivingData.Magnetic_Field_Z    = aData.magneticField.z;
            var factory = new DbConnectionFactory("testDatabase");
            var context = new DbContext(factory);

            var sessionHistoryRepo = new Session_HistoryRepository(context);

            bool flag = sessionHistoryRepo.checkSession(aDrivingData.Session_Id);

            if (flag)
            {
                var sessionHistory = new Session_History();
                sessionHistory.Session_Id = aDrivingData.Session_Id;
                sessionHistory.User_Id    = aDrivingData.User_Id;
                sessionHistory.Start_time = DateTime.Now;
                sessionHistoryRepo.Insert(sessionHistory);
            }


            User_Driving_DataRepository arepo = new User_Driving_DataRepository(context);

            //////////////////////////////////////////////////Username
            //If you want use username instead of userid -------(change json model userid-> username)
            //
            //
            //
            //int untid = aUrepo.GetUserID(Username).User_Id;
            //aDrivingData.User_Id = untid;
            ////////////////////////////////////////////////

            arepo.Insert(aDrivingData);
        }
 public void StopProcess(ProcessData processData)
 {
     try
     {
         var factory        = new DbConnectionFactory("testDatabase");
         var context        = new DbContext(factory);
         var repo           = new Session_HistoryRepository(context);
         var sessionHistory = new Session_History();
         sessionHistory.Session_Id = processData.Session_Id;
         sessionHistory.User_Id    = processData.userID;
         sessionHistory.End_time   = DateTime.Now;
         repo.Update(sessionHistory);
     }
     catch (Exception)
     {
         throw new Exception("Failed to Retrieve data");
     }
 }
Beispiel #3
0
        public ScoringModel Score_Driving_Of_User(IList <User_Driving_Events> eventList, string SessionId)
        {
            foreach (var evnt in eventList)
            {
                if (evnt.Event_Type_Id == (int)(EventType.Agressive_Lane_Change))
                {
                    LaneChangeCount++;
                }
                else if (evnt.Event_Type_Id == (int)(EventType.Agressive_Turning))
                {
                    AggressiveTurningCount++;
                }
                else if (evnt.Event_Type_Id == (int)(EventType.Sudden_Braking))
                {
                    SuddenBrakingCount++;
                }
                else if (evnt.Event_Type_Id == (int)(EventType.Sudden_Acceleration))
                {
                    SuddenAccelerationCount++;
                }
                else if (evnt.Event_Type_Id == (int)(EventType.Speeding_Event))
                {
                    SpeedingCount++;
                }
            }
            SpeedingAndAccelerationCount = SuddenBrakingCount + SuddenAccelerationCount + SpeedingCount;
            if (LaneChangeCount > 0)
            {
                score = "High Risk";
            }
            else if (AggressiveTurningCount > 0)
            {
                score = "Medium Risk";
            }
            else if (SpeedingAndAccelerationCount > 0)
            {
                score = "Moderate Risk";
            }
            else
            {
                score = "No Risk";
            }
            var scoringModel = new ScoringModel();

            scoringModel.Agressive_Lane_Change_Count = LaneChangeCount;
            scoringModel.Agressive_Turning_Count     = AggressiveTurningCount;
            scoringModel.Sudden_Acceleration_Count   = SuddenAccelerationCount;
            scoringModel.Sudden_Braking_Count        = SuddenBrakingCount;
            scoringModel.Speeding_Event_Count        = SpeedingCount;
            scoringModel.Session_Score = score;

            if (!eventList.Equals(null))
            {
                var factory        = new DbConnectionFactory("testDatabase");
                var context        = new DbContext(factory);
                var repo           = new Session_HistoryRepository(context);
                var sessionHistory = new Session_History();
                sessionHistory.Agressive_Lane_Change_Count = LaneChangeCount;
                sessionHistory.Agressive_Turning_Count     = AggressiveTurningCount;
                sessionHistory.Sudden_Acceleration_Count   = SuddenAccelerationCount;
                sessionHistory.Sudden_Braking_Count        = SuddenBrakingCount;
                sessionHistory.Speeding_Event_Count        = SpeedingCount;
                sessionHistory.Session_Score = score;
                sessionHistory.Session_Id    = SessionId;
                repo.UpdateWithScores(sessionHistory);
            }
            return(scoringModel);
        }