Пример #1
0
        public override async Task <GetPreferencesResponse> Handle(GetPreferencesRequest request, CancellationToken cancellationToken)
        {
            var preferences = await _crmCacheProvider.GetPreferences(cancellationToken);

            if (string.IsNullOrWhiteSpace(request.CategoryName))
            {
                return(Response.Success <GetPreferencesResponse>(preferences));
            }

            var categories = await _crmCacheProvider.GetCategories(cancellationToken);

            Category foundCategory;

            if ((foundCategory = _categoryService.GetCategory(categories, request.CategoryName)) == null)
            {
                return(Response.Failed <GetPreferencesResponse>(new ValidationFailure(nameof(request.CategoryName),
                                                                                      $"Unable to find a category named { request.CategoryName }")));
            }

            return(Response.Success <GetPreferencesResponse>(_preferenceService
                                                             .GetPreferencesByCategory(preferences, foundCategory.Id)));
        }