deskflow/src/lib/shared/SerialKeyEdition.cpp

123 lines
2.5 KiB
C++
Raw Normal View History

#include <algorithm>
#include <map>
2020-10-02 07:19:13 +00:00
#include "SerialKeyEdition.h"
const std::string SerialKeyEdition::PRO = "pro";
const std::string SerialKeyEdition::PRO_CHINA = "pro_china";
2020-10-02 07:19:13 +00:00
const std::string SerialKeyEdition::BASIC = "basic";
const std::string SerialKeyEdition::BASIC_CHINA = "basic_china";
2020-10-02 07:19:13 +00:00
const std::string SerialKeyEdition::BUSINESS = "business";
const std::string SerialKeyEdition::UNREGISTERED = "unregistered";
SerialKeyEdition::SerialKeyEdition()
{
}
SerialKeyEdition::SerialKeyEdition(Edition type) :
m_Type(type)
{
}
SerialKeyEdition::SerialKeyEdition(const std::string &type)
{
setType(type);
}
Edition
SerialKeyEdition::getType() const
{
return m_Type;
}
std::string
2020-10-02 07:19:13 +00:00
SerialKeyEdition::getName() const
{
std::string Name;
switch(getType()){
case kPro:
Name = PRO;
break;
case kBasic:
Name = BASIC;
break;
case kBusiness:
Name = BUSINESS;
break;
case kUnregistered:
Name = UNREGISTERED;
break;
case kBasic_China:
Name = BASIC_CHINA;
break;
case kPro_China:
Name = PRO_CHINA;
break;
2020-10-02 07:19:13 +00:00
default:
break;
}
return Name;
}
std::string
2020-10-02 07:19:13 +00:00
SerialKeyEdition::getDisplayName() const
{
const std::string ApplicationName = "Synergy 1 ";
std::string DisplayName(ApplicationName);
switch (getType())
{
case kBasic_China:
DisplayName = "Synergy 中文版";
break;
case kPro_China:
DisplayName = "Synergy Pro 中文版";
break;
default:
std::string EditionName = getName();
if (!EditionName.empty()){
if (EditionName == UNREGISTERED){
std::transform(EditionName.begin(), EditionName.end(), EditionName.begin(), ::toupper);
EditionName = "(" + EditionName +")";
}
else{
EditionName[0] = static_cast<char>(::toupper(EditionName[0]));
}
DisplayName = ApplicationName + EditionName;
}
}
2020-10-02 07:19:13 +00:00
return DisplayName;
2020-10-02 07:19:13 +00:00
}
void
SerialKeyEdition::setType(Edition type)
{
m_Type = type;
}
void
SerialKeyEdition::setType(const std::string& type)
{
static const std::map<std::string, Edition> types = {
{BASIC, kBasic},
{PRO, kPro},
{BUSINESS, kBusiness},
{BASIC_CHINA, kBasic_China},
{PRO_CHINA, kPro_China}
};
const auto& pType = types.find(type);
if (pType != types.end()) {
m_Type = pType->second;
}
else {
m_Type = kUnregistered;
}
2020-10-02 07:19:13 +00:00
}