public CategoryViewModel BuildViewModel(PhotoCategory repositoryModel = null) { CategoryViewModel viewModel = new CategoryViewModel(); if (repositoryModel == null) { viewModel.StatusText = "Initialising category"; viewModel.StatusCode = CategoryStatusCodes.SettingUp; viewModel.PhotoNamingThemeCode = PhotoNamingThemes.ThemeCodes.Fruit; } else { viewModel.CategoryId = repositoryModel.CategoryId; viewModel.CategoryName = repositoryModel.CategoryName; viewModel.PhotoNamingThemeCode = repositoryModel.PhotoNamingThemeCode; if (CategoryStatusCodes.GetAll().Contains(repositoryModel.StatusCode)) { viewModel.StatusCode = repositoryModel.StatusCode; viewModel.StatusText = repositoryModel.StatusText; } else { viewModel.StatusText = "Initialising category"; viewModel.StatusCode = CategoryStatusCodes.SettingUp; } } viewModel = BuildViewModelDropdownCriteria(viewModel); return(viewModel); }
public CategoryListItemViewModel BuildViewModel(PhotoCategory repositoryModel) { CategoryListItemViewModel viewModel = new CategoryListItemViewModel(); viewModel.CategoryId = repositoryModel.CategoryId; viewModel.CategoryName = repositoryModel.CategoryName; viewModel.StatusCode = repositoryModel.StatusCode; viewModel.StatusCodeText = CategoryStatusCodes.GetStatusText(repositoryModel.StatusCode); viewModel.StatusText = repositoryModel.StatusText; return(viewModel); }
public CategoryViewModel BuildViewModelDropdownCriteria(CategoryViewModel viewModel) { viewModel.StatusCodeTypes = CategoryStatusCodes .GetAll() .Select(c => new KeyValuePair <string, string>(c, CategoryStatusCodes.GetStatusText(c))); viewModel.PhotoNamingThemeTypes = PhotoNamingThemes .ThemeCodes .GetAll() .Select(p => new KeyValuePair <string, string>(p, PhotoNamingThemes.GetThemeDescription(p))); return(viewModel); }
private async Task <ProcessResult <bool> > CategoryViewModelIsValid(CategoryViewModel viewModel, int existingCategoryId = 0) { ProcessResult <bool> result = new ProcessResult <bool>(); PhotoCategory category = await _db .PhotoCategories .FirstOrDefaultAsync(p => p.CategoryName.ToUpper() == viewModel.CategoryName.ToUpper() && p.CategoryId != existingCategoryId); if (category != null) { result.AddFieldError("CategoryName", "You dummy. A category with name has already been created"); } if (!CategoryStatusCodes.GetAll().Contains(viewModel.StatusCode)) { result.AddFieldError("StatusCode", "Invalid status code"); } if (!PhotoNamingThemes.ThemeCodes.GetAll().Contains(viewModel.PhotoNamingThemeCode)) { result.AddFieldError("PhotoNamingThemeCode", "Invalid theme code"); } if (existingCategoryId != 0) { category = await _db .PhotoCategories .FirstOrDefaultAsync(p => p.CategoryId == existingCategoryId); if (category == null) { result.AddError("This category cannot be found"); } } return(result); }