// convert.h - Convert subroutines.
//
// (c) 2012-2015 Xestia Software Development.
//
// This file is part of Xestia Address Book.
//
// Xestia Address Book is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by the
// Free Software Foundation, version 3 of the license.
//
// Xestia Address Book is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with Xestia Address Book. If not, see
#include "convert.h"
ConvertResult ConvertContact(wxString InputFormat, wxString OutputFormat,
wxString InputFilename, wxString OutputFilename){
std::vector ValidFormats = {
wxT("vCard3"),
wxT("vCard4")
};
bool ValidInput = false;
bool ValidOutput = false;
// Check that the input format is valid.
for (long l = 0; l < ValidFormats.size(); l++){
if (InputFormat == ValidFormats[l]){
ValidInput = true;
break;
}
}
if (ValidInput == false){
return CONVERTRESULT_INVALIDINPUTFORMAT;
}
// Check that the output format is valid.
for (long l = 0; l < ValidFormats.size(); l++){
if (OutputFormat == ValidFormats[l]){
ValidOutput = true;
break;
}
}
if (ValidOutput == false){
return CONVERTRESULT_INVALIDOUTPUTFORMAT;
}
// Check that the input and output formats
// are not the same.
if (InputFormat == OutputFormat){
return CONVERTRESULT_FORMATSSAME;
}
// Check that the input file given exists.
if (!wxFileExists(InputFilename)){
return CONVERTRESULT_INPUTFILEMISSING;
}
wxFile InputFile;
if (!InputFile.Open(InputFilename, wxFile::read, wxS_DEFAULT)){
int InputFileErrNo = InputFile.GetLastError();
return CONVERTRESULT_INPUTFILEERROR;
}
// Check that the output file can be opened.
wxFile OutputFile;
if (!OutputFilename.IsEmpty()){
if (!OutputFile.Open(OutputFilename, wxFile::write, wxS_DEFAULT)){
return CONVERTRESULT_OUTPUTFILEERROR;
}
}
return CONVERTRESULT_OK;
}