//EF_Driver_Activity_Data public DDDClass.CardDriverActivity Get_EF_Driver_Activity_Data(int dataBlockId) { SQLDB_Records sqldbRecords = new SQLDB_Records(connectionString, sqlDB.GETMYSQLCONNECTION()); string paramName = "ef_driver_activity_data"; string currentParamName; DDDClass.CardDriverActivity driverActivityData = new DDDClass.CardDriverActivity(); DDDClass.CardActivityDailyRecord cardActivityDailyRecord = new DDDClass.CardActivityDailyRecord(); string activityPointerNewestRecord; string activityPointerOldestDayRecord; currentParamName = paramName + ".activityPointerNewestRecord"; activityPointerNewestRecord = sqldbRecords.Get_ParamValue(dataBlockId, currentParamName); if (activityPointerNewestRecord == " ") throw new Exception("Такой информации не существует..."); currentParamName = paramName + ".activityPointerOldestDayRecord"; activityPointerOldestDayRecord = sqldbRecords.Get_ParamValue(dataBlockId, currentParamName); driverActivityData.activityPointerNewestRecord = Convert.ToInt32(activityPointerNewestRecord); driverActivityData.activityPointerOldestDayRecord = Convert.ToInt32(activityPointerOldestDayRecord); List<string> activityChangeInfo = new List<string>(); List<string> activityDailyPresenceCounter = new List<string>(); List<string> activityDayDistance = new List<string>(); List<string> activityPreviousRecordLength = new List<string>(); List<string> activityRecordDate = new List<string>(); List<string> activityRecordLength = new List<string>(); paramName += ".activityDailyRecords"; currentParamName = paramName + ".activityChangeInfo"; activityChangeInfo = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityDailyPresenceCounter"; activityDailyPresenceCounter = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityDayDistance"; activityDayDistance = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityPreviousRecordLength"; activityPreviousRecordLength = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityRecordDate"; activityRecordDate = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityRecordLength"; activityRecordLength = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); int allActivitiesNumbers = 0; int tempActivity; List<int> activityChangesCount = new List<int>(); foreach (string changeNumb in activityRecordLength) { tempActivity = (Convert.ToInt32(changeNumb) - 12); if (tempActivity != 0) tempActivity = tempActivity / 2; allActivitiesNumbers += tempActivity; activityChangesCount.Add(tempActivity); } if (allActivitiesNumbers != activityChangeInfo.Count) throw new Exception("Активности неправильно разобраны!"); int noOfActivityChangesInt; List<DDDClass.ActivityChangeInfo> dayActivityChangeInfo = new List<DDDClass.ActivityChangeInfo>(); int number = 0; if (activityDailyPresenceCounter.Count == activityRecordDate.Count) { number = 0; for (int i = 0; i < activityRecordDate.Count; i++) { cardActivityDailyRecord = new DDDClass.CardActivityDailyRecord(); cardActivityDailyRecord.activityDailyPresenceCounter = new DDDClass.DailyPresenceCounter(activityDailyPresenceCounter[i]); cardActivityDailyRecord.activityDayDistance = new DDDClass.Distance(activityDayDistance[i]); cardActivityDailyRecord.activityPreviousRecordLength = new DDDClass.CardActivityLengthRange(activityPreviousRecordLength[i]); cardActivityDailyRecord.activityRecordDate = new DDDClass.TimeReal(activityRecordDate[i]); cardActivityDailyRecord.activityRecordLength = new DDDClass.CardActivityLengthRange(activityRecordLength[i]); noOfActivityChangesInt = cardActivityDailyRecord.activityRecordLength.cardActivityLengthRange; dayActivityChangeInfo = new List<DDDClass.ActivityChangeInfo>(); for (int j = 0; j < activityChangesCount[i]; j++) { dayActivityChangeInfo.Add(new DDDClass.ActivityChangeInfo(activityChangeInfo[number])); number++; } cardActivityDailyRecord.activityChangeInfo = dayActivityChangeInfo; driverActivityData.activityDailyRecords.Add(cardActivityDailyRecord); } } else throw new Exception("Ошибка в загрузке активностей водителя"); return driverActivityData; }
public DDDClass.CardDriverActivity Get_EF_Driver_Activity_Data(int dataBlockId, DateTime startPeriod, DateTime endPeriod) { SQLDB_Records sqldbRecords = new SQLDB_Records(connectionString, sqlDB.GETMYSQLCONNECTION()); string paramName = "ef_driver_activity_data"; string currentParamName; DDDClass.CardDriverActivity driverActivityData = new DDDClass.CardDriverActivity(); DDDClass.CardActivityDailyRecord cardActivityDailyRecord = new DDDClass.CardActivityDailyRecord(); string activityPointerNewestRecord; string activityPointerOldestDayRecord; currentParamName = paramName + ".activityPointerNewestRecord"; activityPointerNewestRecord = sqldbRecords.Get_ParamValue(dataBlockId, currentParamName); currentParamName = paramName + ".activityPointerOldestDayRecord"; activityPointerOldestDayRecord = sqldbRecords.Get_ParamValue(dataBlockId, currentParamName); driverActivityData.activityPointerNewestRecord = Convert.ToInt32(activityPointerNewestRecord); driverActivityData.activityPointerOldestDayRecord = Convert.ToInt32(activityPointerOldestDayRecord); List<string> activityChangeInfo = new List<string>(); List<string> activityDailyPresenceCounter = new List<string>(); List<string> activityDayDistance = new List<string>(); List<string> activityPreviousRecordLength = new List<string>(); List<string> activityRecordDate = new List<string>(); List<string> activityRecordLength = new List<string>(); paramName += ".activityDailyRecords"; currentParamName = paramName + ".activityChangeInfo"; activityChangeInfo = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityDailyPresenceCounter"; activityDailyPresenceCounter = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityDayDistance"; activityDayDistance = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityPreviousRecordLength"; activityPreviousRecordLength = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityRecordDate"; activityRecordDate = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); currentParamName = paramName + ".activityRecordLength"; activityRecordLength = sqldbRecords.Get_AllParamsArray(dataBlockId, currentParamName); int allActivitiesNumbers = 0; int tempActivity; List<int> activityChangesCount = new List<int>(); foreach (string changeNumb in activityRecordLength) { tempActivity = (Convert.ToInt32(changeNumb) - 12); if (tempActivity != 0) tempActivity = tempActivity / 2; allActivitiesNumbers += tempActivity; activityChangesCount.Add(tempActivity); } if (allActivitiesNumbers != activityChangeInfo.Count) throw new Exception("Активности неправильно разобраны!"); List<List<string>> ActivityChangeInfoSorted = GetActivityInfosStartsFromIndex(activityChangeInfo, activityChangesCount); int noOfActivityChangesInt; List<DDDClass.ActivityChangeInfo> dayActivityChangeInfo = new List<DDDClass.ActivityChangeInfo>(); if (activityDailyPresenceCounter.Count == activityRecordDate.Count) { List<int> Indexes = new List<int>(); Indexes = CheckDate(activityRecordDate, activityRecordDate, startPeriod, endPeriod); foreach(int i in Indexes) { cardActivityDailyRecord = new DDDClass.CardActivityDailyRecord(); cardActivityDailyRecord.activityDailyPresenceCounter = new DDDClass.DailyPresenceCounter(activityDailyPresenceCounter[i]); cardActivityDailyRecord.activityDayDistance = new DDDClass.Distance(activityDayDistance[i]); cardActivityDailyRecord.activityPreviousRecordLength = new DDDClass.CardActivityLengthRange(activityPreviousRecordLength[i]); cardActivityDailyRecord.activityRecordDate = new DDDClass.TimeReal(activityRecordDate[i]); cardActivityDailyRecord.activityRecordLength = new DDDClass.CardActivityLengthRange(activityRecordLength[i]); dayActivityChangeInfo = new List<DDDClass.ActivityChangeInfo>(); for (int j = 0; j < ActivityChangeInfoSorted[i].Count; j++) { dayActivityChangeInfo.Add(new DDDClass.ActivityChangeInfo(ActivityChangeInfoSorted[i][j])); } dayActivityChangeInfo.Sort(Get_EF_Driver_Activity_Data_Comparison); cardActivityDailyRecord.activityChangeInfo = dayActivityChangeInfo; driverActivityData.activityDailyRecords.Add(cardActivityDailyRecord); } } else throw new Exception("Ошибка в загрузке активностей водителя"); return driverActivityData; }
private List<DDDClass.CardDriverActivity> Get_EF_Driver_Activity_Data_byWeeks_weeksCalculation(DDDClass.CardDriverActivity driverActivity) { DDDClass.CardActivityDailyRecord oneActivity = new DDDClass.CardActivityDailyRecord(); List<DDDClass.CardActivityDailyRecord> activities = new List<DDDClass.CardActivityDailyRecord>(); DDDClass.CardDriverActivity weekActivityList = new DDDClass.CardDriverActivity(); List<DDDClass.CardDriverActivity> weeksList = new List<DDDClass.CardDriverActivity>(); if (driverActivity.activityDailyRecords.Count <= 0) return weeksList; //система такая. Если предудыщий день больше настроящего, то новая неделя /* DayOfWeek currentDay = new DayOfWeek(); DayOfWeek previosDayOfWeek = new DayOfWeek(); previosDayOfWeek = driverActivity.activityDailyRecords[0].activityRecordDate.getTimeRealDate().DayOfWeek; //currentDay = driverActivity.activityDailyRecords[0].activityRecordDate.getTimeRealDate().DayOfWeek; weekActivityList.activityDailyRecords.Add(driverActivity.activityDailyRecords[0]); driverActivity.activityDailyRecords.RemoveAt(0); bool nextweek = false; foreach (DDDClass.CardActivityDailyRecord record in driverActivity.activityDailyRecords) { currentDay = record.activityRecordDate.getTimeRealDate().DayOfWeek; if (previosDayOfWeek >= currentDay) { nextweek = true; } previosDayOfWeek = currentDay; if (nextweek == true) { weeksList.Add(weekActivityList); weekActivityList = new DDDClass.CardDriverActivity(); nextweek = false; } weekActivityList.activityDailyRecords.Add(record); } */ /////////////////////test///] for (int i = 0; i < driverActivity.activityDailyRecords.Count;) { weekActivityList = new DDDClass.CardDriverActivity(); try { if (driverActivity.activityDailyRecords[i].activityRecordDate.getTimeRealDate().DayOfWeek == DayOfWeek.Monday) { weekActivityList.activityDailyRecords.Add(driverActivity.activityDailyRecords[i]); i++; } if (driverActivity.activityDailyRecords[i].activityRecordDate.getTimeRealDate().DayOfWeek == DayOfWeek.Tuesday) { weekActivityList.activityDailyRecords.Add(driverActivity.activityDailyRecords[i]); i++; } if (driverActivity.activityDailyRecords[i].activityRecordDate.getTimeRealDate().DayOfWeek == DayOfWeek.Wednesday) { weekActivityList.activityDailyRecords.Add(driverActivity.activityDailyRecords[i]); i++; } if (driverActivity.activityDailyRecords[i].activityRecordDate.getTimeRealDate().DayOfWeek == DayOfWeek.Thursday) { weekActivityList.activityDailyRecords.Add(driverActivity.activityDailyRecords[i]); i++; } if (driverActivity.activityDailyRecords[i].activityRecordDate.getTimeRealDate().DayOfWeek == DayOfWeek.Friday) { weekActivityList.activityDailyRecords.Add(driverActivity.activityDailyRecords[i]); i++; } if (driverActivity.activityDailyRecords[i].activityRecordDate.getTimeRealDate().DayOfWeek == DayOfWeek.Saturday) { weekActivityList.activityDailyRecords.Add(driverActivity.activityDailyRecords[i]); i++; } if (driverActivity.activityDailyRecords[i].activityRecordDate.getTimeRealDate().DayOfWeek == DayOfWeek.Sunday) { weekActivityList.activityDailyRecords.Add(driverActivity.activityDailyRecords[i]); i++; } } catch { } weeksList.Add(weekActivityList); } /////////////////////////// return weeksList; }