powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / передача параметров в метод сервиса blazor и вызов компонентов
25 сообщений из 72, страница 2 из 3
передача параметров в метод сервиса blazor и вызов компонентов
    #39961455
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
6) Что касается вот этого фрагмента кода - прочитай про @key
jeanssp
Код: c#
1.
2.
3.
        @foreach (ViewGoodsStocksMvc vgs in objGoods)
        {
            <div class="card bg-light">

https://docs.microsoft.com/ru-ru/aspnet/core/blazor/components?view=aspnetcore-3.1#use-key-to-control-the-preservation-of-elements-and-components
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39961457
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
7)
jeanssp
An attempt was made to use the context while it is being configured. A DbContext instance cannot be used inside OnConfiguring since it is still being configured at this point. This can happen if a second operation is started on this context before a previous operation completed. Any instance members are not guaranteed to be thread safe.'
Что касается этой ошибки - не знаю, как у тебя настроено конфигурирование DbContext, в любом случае нужно ознакомиться с этим
https://docs.microsoft.com/ru-ru/aspnet/core/blazor/dependency-injection?view=aspnetcore-3.1#use-of-entity-framework-dbcontext-from-di
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39961478
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще немножко добавлю на будущее, а то коллеги могут заклевать.
Неожидаемая Task-а может привести к потерянному исключению, если, к примеру, в репозитории произойдет ошибка при запросе к БД.
Тут возможны различные варианты, лично я предпочитаю последнее время перехватывать исключения и возвращать результат в виде Result<TSuccess, TError>. Это позволяет во-первых писать логику в стиле ROP, во-вторых спокойно обрабатывать исключительную ситуацию как ожидаемую.

Сейчас предлагаю, в эти подробности пока не погружаться, а разобраться с текущим вариантом, но учесть и помнить о том, что у этого компонента (как и у многих других) по-хорошему должно быть не два, а, как минимум, три состояния: Loading, Ready и LoadingError, и тут уже начинают проглядывать уши паттерна StateMachine )
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39961560
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, Спасибо, уже качаю курсы.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978379
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp,
у меня получается объект objGoods содержащий отфильтрованные данные из модели
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public partial class ViewGoodsStocksMvc
    {
        public int GoodId { get; set; }
        public string Articul { get; set; }
        public string Widht { get; set; }
        public int Available { get; set; }
        public decimal CurrentPrice { get; set; }
        public string Type { get; set; }
        public string ManufName { get; set; }
        public string NomenclImagePath { get; set; }
        public int LenghtId { get; set; }
        public int TypeId { get; set; }
       
    }
}


теперь его нужно передать в дочерний компонент , но выделить из него только TypeId и сгруппировать.
Я пытаюсь сделать что то вроде этого
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 private async Task InitAsync()
    {
        objGoods = await objGoodStockService.GetGoodsAsync(radioItem);
        await InvokeAsync(StateHasChanged);


        List<int> TypeList = null;
        foreach (var t in ObjGoods)
        {
            TypeList.Add(t.TypeId);
        }
        List<int> TypeListGroup = TypeList.Distinct().ToList();
    }


Но при выполнении выскакивает ошибка. Что только не пробовал.
Ни как не могу подобрать конструкцию
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978384
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно перевести сообщение об ошибке с английского или что?
Где тот объект, к которому ты хочешь применить метод Add?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978390
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Я просто объявил переменную типа List<int > TypeList(Это объект ) и хочу в нее добавить все значения TypeId из objGood . Потом я хочу выделить из них уникальные значения для того, что бы в дочернем компоненте нарисовать чекбоксы с выбором типов. Я понимаю, что делаю что то глобально не правильно, но не пойму что.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978393
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Я просто объявил переменную типа List<int > .... и хочу в нее добавить
Нельзя ничего добавить в null
jeanssp
Код: c#
1.
List<int> TypeList = null;

...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978396
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp, Нужно , что бы при выборе группы категорий, появлялись чекбоксы с выбором более конкретных категорий . Я сейчас на этом этапе.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978424
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, List<int> typeGroup = new List<int>();
вот так вроде правильно. Работаю.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978498
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp, замучился уже
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 [Parameter]
        public List<ViewGoodsStocksMvc> ObjGood { get; set; } = null;
        //public List<int> typeGroup = new List<int>();

        public List<int> GetTypeList()
        {

            List<int> TypeList = new List<int>();
            foreach (var t in ObjGood)
            {
                TypeList.Add(t.TypeId);
            }
            List<int> TypeListGroup = TypeList.Distinct().ToList();
            return TypeListGroup;
        }


Вроде вот получился метод, а как теперь получить из него возвращаемое значение и в разметке пройтись по нему foreach не знаю . Запутался совсем
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978501
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужели в сервис лезть ?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978669
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у тебя же этот метод не в воздухе висит, а каком-то сервисе находится, что мешает инжектировать сервис?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978733
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, я хотел всю логику по преобразованию objGood сделать в коде страницы. Наверное это было моей ошибкой. (метод был как раз в блоке кода) Спасибо за советы.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978745
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тут для преобразования и метод-то особо не нужен, если objGood у тебя в коде страницы

Код: c#
1.
2.
3.
foreach (var typeId in ObjGood.Select(n=>n.TypeId).Distinct()) {
  ...
}
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39978746
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда, если это нужно для вывода на страницу, то чем тебе TypeId поможет, тебе же еще и имя как минимум нужно
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980473
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, Да , имя нужно. То есть из objGoods нужно выделить объект типа "Type" и применить к нему Distinct(). Попробую.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980518
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
из objGoods нужно выделить объект типа "Type" и применить к нему Distinct(). Попробую.
это я просто показал как записать твой код короче и пройтись по нему foreach, в ответ на твой вопрос.
Но тебе это не поможет получить имя, зачем тебе вообще этот цикл по Id?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980593
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, Да можно и без id . Я сначала хотел , что бы имя категории отображалось на экране, а id категории отправлять в метод по клику на чекбоксе. Тогда имя категории я мог бы корректировать.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980648
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 public class SelectTypesService
    {
        List<ViewGoodsStocksMvc> goodList ;
        Types type = new Types();
        List<Types> typelist= new List<Types>();
        public List<Types> GetTypes(List<ViewGoodsStocksMvc> _goodList)
        {
            goodList = _goodList;
            foreach (var t in goodList)
            {
                type.TypeId = t.TypeId;
                type.Type = t.Type;
                typelist.Add(type);
            }
            return typelist.Distinct().ToList();
        }


Сделал пока через сервис, все работает , потом попробую без него. Пока не могу сообразить как
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980654
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp,
вру . не работает . не наполняет лист. добавляет только одно значение.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980694
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем тебе здесь сервис?
Зачем ты городишь какие-то списки, какие-то коллекции из коллекций, какой-то класс, в котором будет пополняться список при каждом запросе.

Если у тебя есть на входе перечисление ViewGoodsStocksMvc, а на выходе тебе нужно получить перечисление уникальных пар (int, string) - ну так сделай это прямо в компоненте, это делается в одну строчку, что тебя мешает? Отсутствие знаний? Ну так ты вопрос задай именно так, а лучше прочти учебник - тут по коду видно, что это тебе ой как нужно. Ты сейчас теряешь дни и недели на метод тыка, вместо того, чтобы подкачать знания и применять их.
Прочти уже хотя бы про отладку, чтобы поставить точку останова и посмотреть, почему "добавляет только одно значение".
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980699
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Код: c#
1.
Types type = new Types();

нескромный вопрос, у тебя Types является структурой?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980717
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Shocker.Pro,
Код: c#
1.
2.
3.
4.
public class SelectTypesService
{
// Дайте мне это развидеть....
}


Сделал пока через сервис, все работает , потом попробую без него. Пока не могу сообразить как


Код: c#
1.
2.
3.
4.
5.
public class SelectTypesService
{
    public IEnumerable<Types> GetTypes(IEnumerable<ViewGoodsStocksMvc> goodList) =>
        goodList.Select(g => new Types { TypeId = g.TypeId, Type = g.Type });
}
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980721
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

ты забыл Distinct. TC-су надо уникальные значения Types... А тут уже зависит от того, что такое Types, реализована ли там эквивалентность... ну или просто через Aggregate() сделать.
Так что взялся - не халтурь
...
Рейтинг: 0 / 0
25 сообщений из 72, страница 2 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / передача параметров в метод сервиса blazor и вызов компонентов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]