private AccountDto BuildAccountDto() { AccountDto dto = new AccountDto() { AccountKind = AccountTypeOption.GetValue(Account.DEFAULT_ACCOUNT_KIND), Description = DescriptionOption.GetValue(String.Empty), Name = AccountName.GetValue(String.Empty), Priority = PriorityOption.GetValue(Account.DEFAULT_PRIORITY) }; if (CategoryNameOption.IsDataValid) { dto.CategoryId = Repositories.AccountRepository.GetIdByName(CategoryNameOption.GetValue(null)); } else { dto.CategoryId = null; } if (AccountId.IsDataValid) { dto.Id = AccountId.GetValue(-1); } else { dto.Id = null; } return(dto); }
public AddCommandBuilder(CommandLineApplication application) { _application = application; _yearOption = YearOption.Create(application); _monthOption = MonthOption.Create(application); _currencyOption = CurrencyOption.Create(application); _amountOption = AmountOption.Create(application); _categoryOption = CategoryOption.Create(application); _descriptionOption = DescriptionOption.Create(application); }
public AssemblyInfoOptions GetOptionValues() { return(new AssemblyInfoOptions() { AssemblyVersion = UnescapeNewlines(VersionOption.Value()), Title = UnescapeNewlines(TitleOption.Value()), Description = UnescapeNewlines(DescriptionOption.Value()), Copyright = UnescapeNewlines(CopyrightOption.Value()), NeutralLanguage = UnescapeNewlines(NeutralCultureOption.Value()), Culture = UnescapeNewlines(CultureOption.Value()), InformationalVersion = UnescapeNewlines(InformationalVersionOption.Value()), AssemblyFileVersion = UnescapeNewlines(FileVersionOption.Value()), TargetFramework = UnescapeNewlines(TargetFrameworkOption.Value()), }); }
private static int Run(string[] args) { var app = new CommandLineApplication(); var budget = app.Command("budget", config => { config.HelpOption(HelpFlagTemplate.Value); }); budget.Command("create", config => { config.Name = "create"; config.Description = "create budget providing year, month and currency"; config.HelpOption(HelpFlagTemplate.Value); var yearOption = YearOption.Create(config); var monthOption = MonthOption.Create(config); var currencyOption = CurrencyOption.Create(config); config.OnExecute(() => { if (yearOption.NotExists || monthOption.NotExists || currencyOption.NotExists) { config.ShowHelp(); return(ErrorCode.Value); } var budgetFilesFactory = new BudgetFilesFactory(); var(plannedBudgetFile, realBudgetFile) = budgetFilesFactory.Create(yearOption, monthOption, currencyOption); if (plannedBudgetFile.NotExists || realBudgetFile.NotExists) { plannedBudgetFile.Save(); realBudgetFile.Save(); Console.WriteLine($"Budget {plannedBudgetFile.Budget} has been created."); return(OkCode.Value); } Console.WriteLine($"Budget {plannedBudgetFile.Budget} already exists."); return(OkCode.Value); }); }); budget.Command("add", config => { config.Name = "add"; config.Description = "add revenue or expense to budget"; config.HelpOption(HelpFlagTemplate.Value); var yearOption = YearOption.Create(config); var monthOption = MonthOption.Create(config); var currencyOption = CurrencyOption.Create(config); var amountOption = AmountOption.Create(config); var categoryOption = CategoryOption.Create(config); var descriptionOption = DescriptionOption.Create(config); config.OnExecute(() => { if (yearOption.NotExists || monthOption.NotExists || currencyOption.NotExists || amountOption.NotExists || categoryOption.NotExists || descriptionOption.NotExists) { config.ShowHelp(); return(ErrorCode.Value); } var budgetFilesFactory = new BudgetFilesFactory(); var(plannedBudgetFile, realBudgetFile) = budgetFilesFactory.Create(yearOption, monthOption, currencyOption); if (realBudgetFile.NotExists) { Console.WriteLine($"Budget {realBudgetFile.Budget} does not exit. Created new budget first."); return(ErrorCode.Value); } var budgetFile = realBudgetFile.Load(); var category = Category.Create(categoryOption.Value); var description = new Description(descriptionOption.Value); var currency = Currency.Create(currencyOption.Value); var amount = Amount.Create(amountOption.Value, currency); var newBudget = budgetFile.Budget.WithExpense(new Money(amount, category, DateTimeOffset.UtcNow, description)); var newBudgetFile = new BudgetFile(newBudget, budgetFile.FileName); newBudgetFile.Save(); Console.WriteLine("Expense added."); return(OkCode.Value); }); }); // var budget = new BudgetCommandBuilder(app).Build(); // // new CreateBudgetCommandBuilder(budget).Build(); // new BudgetsListCommandBuilder(budget).Build(); // new AddCommandBuilder(budget).Build(); return(app.Execute(args)); }
public FilterCriteria GetFilterCriteria() { FilterCriteria criteria = new FilterCriteria(); //Id if (IdOption.IsDataValid) { criteria.AddField(Account.PROP_ID.DisplayName, $"= {IdOption.GetValue(EMPTY_OPTION)}"); } //Category if (CategoryIdOption.IsDataValid) { Account category = DtoToModelTranslator.FromDto(Repositories.AccountRepository.GetById(CategoryIdOption.GetValue(-1)), DateTime.Today, Repositories); criteria.AddField(Account.PROP_CATEGORY.DisplayName, $"= {category.Name}"); } //Description if (DescriptionOption.IsDataValid) { criteria.AddField(Account.PROP_DESCRIPTION.DisplayName, $"contains \"{DescriptionOption.GetValue(EMPTY_OPTION)}\""); } //Name if (NameOption.IsDataValid) { criteria.AddField(Account.PROP_NAME.DisplayName, $"contains \"{NameOption.GetValue(EMPTY_OPTION)}\""); } //Priority if (PriorityOption.IsDataValid) { criteria.AddField(Account.PROP_PRIORITY.DisplayName, $"= {PriorityOption.GetValue(EMPTY_OPTION)}"); } //Funds if (FundsOption.IsDataValid) { criteria.AddField(AccountState.PROP_FUNDS.DisplayName, $"= {FundsOption.GetValue(EMPTY_OPTION)}"); } //Account Type if (AccountTypeOption.IsDataValid) { criteria.AddField(Account.PROP_ACCOUNT_KIND.DisplayName, $"= {AccountTypeOption.GetValue(EMPTY_OPTION)}"); } return(criteria); }
private List <Account> GetAccounts() { var dtos = Repositories.AccountRepository.GetAccounts((long?)IdOption.GetValue(null), NameOption.GetValue(null), (long?)CategoryIdOption.GetValue(null), DescriptionOption.GetValue(null), PriorityOption.GetValue(null), (AccountKind?)AccountTypeOption.GetValue(null), FundsOption.GetValue(null), false); List <Account> accounts = new List <Account>(); foreach (var dto in dtos) { accounts.Add(DtoToModelTranslator.FromDto(dto, DateTime.Today, Repositories)); } return(accounts); }