Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 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);
        }