/**
  * @param bool $returnSession  - return data of deleted session if delete success, else - false;
  * @return bool|\CDBResult|array
  */
 protected function deleteSession($returnSession = false)
 {
     if ($this->isExclusiveEdit()) {
         return $returnSession ? array() : true;
     }
     //delete user session from document edit
     $webdav = $this->getWebdav();
     if ($returnSession) {
         $onlineEditor = CWebDavLogOnlineEdit::getList(array(), array('IBLOCK_ID' => $webdav->arParams['element_array']['IBLOCK_ID'], 'SECTION_ID' => $webdav->arParams['element_array']['IBLOCK_SECTION_ID'], 'ELEMENT_ID' => $webdav->arParams['element_array']['ID'], 'SERVICE' => $this->getServiceName(), 'SERVICE_FILE_ID' => $this->getFileId(), 'USER_ID' => $this->getUser()->getId()));
         if (($onlineEditor = $onlineEditor->fetch()) && empty($onlineEditor['ID'])) {
             return false;
         }
         //todo delete session not by ID. This is mistake?
         return CWebDavLogOnlineEdit::delete(array('IBLOCK_ID' => $webdav->arParams['element_array']['IBLOCK_ID'], 'SECTION_ID' => $webdav->arParams['element_array']['IBLOCK_SECTION_ID'], 'ELEMENT_ID' => $webdav->arParams['element_array']['ID'], 'SERVICE' => $this->getServiceName(), 'SERVICE_FILE_ID' => $this->getFileId(), 'USER_ID' => $this->getUser()->getId())) ? $onlineEditor : false;
     }
     return CWebDavLogOnlineEdit::delete(array('IBLOCK_ID' => $webdav->arParams['element_array']['IBLOCK_ID'], 'SECTION_ID' => $webdav->arParams['element_array']['IBLOCK_SECTION_ID'], 'ELEMENT_ID' => $webdav->arParams['element_array']['ID'], 'SERVICE' => $this->getServiceName(), 'SERVICE_FILE_ID' => $this->getFileId(), 'USER_ID' => $this->getUser()->getId()));
 }