Changeset 641


Ignore:
Timestamp:
09/11/14 16:09:28 (3 years ago)
Author:
jls17
Message:
  • extracted code into separate method
Location:
branches/work_312/lists
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/work_312/lists/ARUserList.cpp

    r403 r641  
    104104 
    105105                                        AREntryIdList& entryId = values.entryList[row].entryId; 
    106                                         ARFieldValueList& value = *values.entryList[row].entryValues; 
     106                                        ARFieldValueList& rowValues = *values.entryList[row].entryValues; 
    107107 
    108108                                        sortedList.push_back(static_cast<int>(requestId.size())); 
    109109                                        requestId.push_back((entryId.numItems == 1 ? entryId.entryIdList[0] : "")); 
    110110                                         
    111                                         for (unsigned int curFieldPos = 0; curFieldPos != value.numItems; ++curFieldPos) 
    112                                         { 
    113                                                 switch (value.fieldValueList[curFieldPos].fieldId) 
    114                                                 { 
    115                                                 case AR_RESERV_USER_NAME:        //LoginName 
    116                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
    117                                                                 names.push_back(value.fieldValueList[curFieldPos].value.u.charVal); 
    118                                                         break; 
    119                                                 case AR_RESERV_EMAIL:            //Email 
    120                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
    121                                                                 email.push_back(value.fieldValueList[curFieldPos].value.u.charVal); 
    122                                                         break; 
    123                                                 case AR_RESERV_GROUP_LIST:       //GroupList 
    124                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
    125                                                         { 
    126                                                                 vector<int> gids; 
    127                                                                 char* curPos = value.fieldValueList[curFieldPos].value.u.charVal; 
    128                                                                 if (curPos != NULL) 
    129                                                                 { 
    130                                                                         do 
    131                                                                         { 
    132                                                                                 int groupId = atoi(curPos); 
    133                                                                                 gids.push_back(groupId); 
    134  
    135                                                                                 curPos = strchr(curPos,';'); 
    136                                                                                 if (curPos != NULL) ++curPos; 
    137                                                                         } while ( curPos != NULL && curPos[0] != 0); 
    138                                                                 } 
    139                                                                 std::sort(gids.begin(), gids.end()); 
    140                                                                 group.push_back(gids); 
    141                                                         } 
    142                                                         break; 
    143                                                 case AR_CORE_SHORT_DESCRIPTION:  //FullName 
    144                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
    145                                                                 fullName.push_back(value.fieldValueList[curFieldPos].value.u.charVal); 
    146                                                         break; 
    147                                                 case AR_RESERV_USER_NOTIFY:      //DefNotify 
    148                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_ENUM ||  
    149                                                             value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_INTEGER) 
    150                                                                 defaultNotify.push_back(value.fieldValueList[curFieldPos].value.u.intVal); 
    151                                                         break; 
    152                                                 case AR_RESERV_LICENSE_TYPE:     //LicType 
    153                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_ENUM ||  
    154                                                             value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_INTEGER) 
    155                                                                 licType.push_back(value.fieldValueList[curFieldPos].value.u.intVal); 
    156                                                         break; 
    157                                                 case AR_RESERV_LIC_FULL_TEXT:    //FtLicType 
    158                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_ENUM ||  
    159                                                             value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_INTEGER) 
    160                                                                 ftLicType.push_back(value.fieldValueList[curFieldPos].value.u.intVal); 
    161                                                         break; 
    162                                                 case AR_CORE_SUBMITTER:          //CreatedBy 
    163                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
    164                                                         { 
    165                                                                 int index = owners.numItems++; 
    166                                                                 strncpy(owners.nameList[index], value.fieldValueList[curFieldPos].value.u.charVal, AR_MAX_ACCESS_NAME_SIZE); 
    167                                                                 owners.nameList[index][AR_MAX_ACCESS_NAME_SIZE] = 0; 
    168                                                         } 
    169                                                         break; 
    170                                                 case AR_CORE_CREATE_DATE:        //Created 
    171                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_TIME) 
    172                                                                 createDate.push_back(value.fieldValueList[curFieldPos].value.u.dateVal); 
    173                                                         break; 
    174                                                 case AR_CORE_LAST_MODIFIED_BY:   //ModifiedBy 
    175                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
    176                                                         { 
    177                                                                 int index = changedUsers.numItems++; 
    178                                                                 strncpy(changedUsers.nameList[index], value.fieldValueList[curFieldPos].value.u.charVal, AR_MAX_ACCESS_NAME_SIZE); 
    179                                                                 changedUsers.nameList[index][AR_MAX_ACCESS_NAME_SIZE] = 0; 
    180                                                         } 
    181                                                         break; 
    182                                                 case AR_CORE_MODIFIED_DATE:      //Modified 
    183                                                         if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_TIME) 
    184                                                                 modifiedDate.push_back(value.fieldValueList[curFieldPos].value.u.dateVal); 
    185                                                         break; 
    186                                                 } 
    187                                         } 
     111                                        StoreEntry(rowValues); 
    188112                                         
    189113                                        // check count and fill-up any missing array items 
     
    270194} 
    271195 
     196void CARUserList::StoreEntry(ARFieldValueList& value) 
     197{ 
     198        for (unsigned int curFieldPos = 0; curFieldPos != value.numItems; ++curFieldPos) 
     199        { 
     200                switch (value.fieldValueList[curFieldPos].fieldId) 
     201                { 
     202                case AR_RESERV_USER_NAME:        //LoginName 
     203                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
     204                                names.push_back(value.fieldValueList[curFieldPos].value.u.charVal); 
     205                        break; 
     206                case AR_RESERV_EMAIL:            //Email 
     207                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
     208                                email.push_back(value.fieldValueList[curFieldPos].value.u.charVal); 
     209                        break; 
     210                case AR_RESERV_GROUP_LIST:       //GroupList 
     211                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
     212                        { 
     213                                vector<int> gids; 
     214                                char* curPos = value.fieldValueList[curFieldPos].value.u.charVal; 
     215                                if (curPos != NULL) 
     216                                { 
     217                                        do 
     218                                        { 
     219                                                int groupId = atoi(curPos); 
     220                                                gids.push_back(groupId); 
     221 
     222                                                curPos = strchr(curPos,';'); 
     223                                                if (curPos != NULL) ++curPos; 
     224                                        } while ( curPos != NULL && curPos[0] != 0); 
     225                                } 
     226                                std::sort(gids.begin(), gids.end()); 
     227                                group.push_back(gids); 
     228                        } 
     229                        break; 
     230                case AR_CORE_SHORT_DESCRIPTION:  //FullName 
     231                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
     232                                fullName.push_back(value.fieldValueList[curFieldPos].value.u.charVal); 
     233                        break; 
     234                case AR_RESERV_USER_NOTIFY:      //DefNotify 
     235                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_ENUM ||  
     236                            value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_INTEGER) 
     237                                defaultNotify.push_back(value.fieldValueList[curFieldPos].value.u.intVal); 
     238                        break; 
     239                case AR_RESERV_LICENSE_TYPE:     //LicType 
     240                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_ENUM ||  
     241                            value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_INTEGER) 
     242                                licType.push_back(value.fieldValueList[curFieldPos].value.u.intVal); 
     243                        break; 
     244                case AR_RESERV_LIC_FULL_TEXT:    //FtLicType 
     245                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_ENUM ||  
     246                            value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_INTEGER) 
     247                                ftLicType.push_back(value.fieldValueList[curFieldPos].value.u.intVal); 
     248                        break; 
     249                case AR_CORE_SUBMITTER:          //CreatedBy 
     250                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
     251                        { 
     252                                int index = owners.numItems++; 
     253                                strncpy(owners.nameList[index], value.fieldValueList[curFieldPos].value.u.charVal, AR_MAX_ACCESS_NAME_SIZE); 
     254                                owners.nameList[index][AR_MAX_ACCESS_NAME_SIZE] = 0; 
     255                        } 
     256                        break; 
     257                case AR_CORE_CREATE_DATE:        //Created 
     258                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_TIME) 
     259                                createDate.push_back(value.fieldValueList[curFieldPos].value.u.dateVal); 
     260                        break; 
     261                case AR_CORE_LAST_MODIFIED_BY:   //ModifiedBy 
     262                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_CHAR) 
     263                        { 
     264                                int index = changedUsers.numItems++; 
     265                                strncpy(changedUsers.nameList[index], value.fieldValueList[curFieldPos].value.u.charVal, AR_MAX_ACCESS_NAME_SIZE); 
     266                                changedUsers.nameList[index][AR_MAX_ACCESS_NAME_SIZE] = 0; 
     267                        } 
     268                        break; 
     269                case AR_CORE_MODIFIED_DATE:      //Modified 
     270                        if (value.fieldValueList[curFieldPos].value.dataType == AR_DATA_TYPE_TIME) 
     271                                modifiedDate.push_back(value.fieldValueList[curFieldPos].value.u.dateVal); 
     272                        break; 
     273                } 
     274        } 
     275} 
  • branches/work_312/lists/ARUserList.h

    r227 r641  
    5454 
    5555private: 
     56        void StoreEntry(ARFieldValueList& value); 
     57 
     58private: 
    5659        vector<string> requestId; 
    5760        vector<string> names; 
Note: See TracChangeset for help on using the changeset viewer.