Beispiel #1
0
        //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;
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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;
        }