Skip to content

Instantly share code, notes, and snippets.

@lazarofl
Created January 18, 2014 00:11
Show Gist options
  • Save lazarofl/8484103 to your computer and use it in GitHub Desktop.
Save lazarofl/8484103 to your computer and use it in GitHub Desktop.
Exemplo de switch case que podemos melhorar com o uso do padrão Interpreter, abaixo, o modelo "gambiarra master" normalmente encontrado.
static void Main(string[] args)
{
try
{
Console.WriteLine("Selecione uma das opções abaixo: ");
Console.WriteLine("1) Publicar usuários");
Console.WriteLine("2) Publicar empresas");
Console.WriteLine("3) Publicar perguntas");
Console.WriteLine("4) Publicar boxes das empresas");
Console.WriteLine("5) Publicar categorias das empresas");
Console.WriteLine("6) Publicar categorias de conteúdos");
Console.WriteLine("7) Publicar dos conteúdos");
Console.WriteLine("8) Publicar vagas no canal empregos");
Console.WriteLine("9) Publicar curriculums no canal empregos");
Console.WriteLine("10) Limpar conteúdos do índice");
Console.WriteLine("11) Limpar empresas do índice");
Console.WriteLine("12) Limpar perguntas do índice");
Console.WriteLine("13) Limpar sujestões do índice");
Console.WriteLine("14) Publicar destaques");
Console.WriteLine("15) Publicar pergunta");
Console.WriteLine("16) Republicar todos os pontos dos usuário");
Console.WriteLine("17) Republicar todos os pontos das empresas");
Console.WriteLine("18) Migrar formato de urls das atividades");
Console.WriteLine("19) Republicar sumário de cotações das empresas");
Console.WriteLine("20) Republicar sumário de cotações de uma empresa");
Console.WriteLine("21) Republicar sumário de avaliações das empresas");
Console.WriteLine("22) Republicar sumário de avaliações de uma empresa");
Console.WriteLine("23) Republicar palavras chave do índice de AdWords Síndiconet");
Console.WriteLine("24) Republicar índice das empresas");
Console.WriteLine("25) Republicar índice de uma empresa");
Console.WriteLine("26) Testar envio de email");
Console.WriteLine("27) Enviar email para confirmação de conta");
Console.WriteLine("28) Publicar Usuário por ID");
Console.WriteLine("29) Publicar Ranking");
Console.WriteLine("30) Limpar curriculos e vagas vencidos no banco de empregos");
Console.WriteLine("31) Notificar compradores sobre orçamentos não lidos");
Console.WriteLine("32) Notificar empresas sobre cotações não confirmadas ");
Console.WriteLine("33) Notificar empresas sobre índice baixo");
Console.WriteLine("34) Enviar monitoramento de cotações");
Console.WriteLine("35) Enviar pesquisa de cotações");
Console.WriteLine("36) Atualizar placar de páginas mais acessadas");
Console.WriteLine("37) Notificar e habilitar avaliações para compradores");
Console.WriteLine("38) Publicar pontos de um usuário");
Console.WriteLine("39) Publicar pontos de uma empresa");
string option = args.Length == 0 ? Console.ReadLine() : args[0];
switch (option.ToInt())
{
case 1:
PublishUsers();
break;
case 2:
PublishCompanies();
break;
case 3:
PublishQuestions();
break;
case 4:
PublishCompanyBox();
break;
case 5:
PublishCompanyCategories();
break;
case 6:
PublishContentCategories();
break;
case 7:
PublishContents();
break;
case 8:
PublishJobOpennings();
break;
case 9:
PublishJobCurriculums();
break;
case 10:
ClearContentLuceneIndex();
break;
case 11:
ClearCompanyLuceneIndex();
break;
case 12:
ClearQuestionLuceneIndex();
break;
case 13:
ClearSuggestionLuceneIndex();
break;
case 14:
PublishHighlightAreas();
break;
case 15:
PublishQuestion();
break;
case 16:
PublishTiraDuvidasPointsForAllUsers();
break;
case 17:
PublishTiraDuvidasPoinsForAllCompanies();
break;
case 18:
FixQuotationActivityUrl();
break;
case 19:
PublishSupplierQuotationSummary();
break;
case 20:
PublishSupplierQuotationSummaryToCompany();
break;
case 21:
PublishSupplierQuotationEvaluationSummary();
break;
case 22:
PublishSupplierQuotationEvaluationSummaryToCompany();
break;
case 23:
PublishAdWords();
break;
case 24:
PublishIndex();
break;
case 25:
PublishIndextoCompany();
break;
case 26:
TestSendMail();
break;
case 27:
NotifyConfirmation();
break;
case 28:
PublishUserById();
break;
case 29:
PublishQuestionRanking();
break;
case 30:
JobsOpenningCleaner();
break;
case 31:
SendAlertEmailAboutUnReadQuotationBudgets();
break;
case 32:
SendAlertEmailAboutNotConfirmedCompanyQuotations();
break;
case 33:
SendAlertEmailToCompaniesAboutLowIndex();
break;
case 34:
SendQuotationsTracking();
break;
case 35:
SendSurveyPostToQuotationSender();
break;
case 36:
UpdateInformeseMoreReadPages();
UpdateDownloadsMoreReadPages();
UpdateFornecedoresMoreReadPages();
break;
case 37:
SendGrantQuotationToEvaluation();
break;
case 38:
PublishTiraDuvidasPointsForUser();
break;
case 39:
PublishTiraDuvidasPointsForCompany();
break;
}
if (args.Length != 0)
return;
Console.WriteLine("====================================================");
Console.WriteLine("============= PROCEDIMENTO ENCERRADO ===============");
Console.WriteLine("====================================================");
Console.ReadKey();
}
catch (Exception oException)
{
Console.WriteLine("Erro: {0}", oException.Message);
Console.ReadKey();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment