• Как удалить сообщение из очереди Azure Service Bus?

    @robben_55 Автор вопроса
    mayton2019,
    public async Task Run(
                    [ServiceBusTrigger("links",
                    Connection = "serviceBus")]
                    string myQueueItem, ILogger log)
            {
                if (myQueueItem == "test")
                {
                    //если сообщение в шине равняется test, то удалить сообщение из очереди и перейти к обработке следующей(если есть данные в шине)
                    log.LogInformation("inside if");
                }
                // а если не равняется просто в логах отобразить
                log.LogInformation("снаружи");
    
                log.LogInformation($"Received message from bus: {myQueueItem}");
    
            }


    в данном случае смотрите, получаю переменную типа стринг со значением test, заходит внутрь блока if, а потом он идет дальше, а я хочу чтобы он внутри блока if остановился и принял следующие данные с шины, но никак не могу разобраться как это сделать, помогите пожалуйста
  • Аналог NOT IN(SQL) в C#?

    @robben_55 Автор вопроса
    freeExec,

    Решил сделать HashSet
    HashSet<string> test= new()
    {
        "Service Medal",
        "Loyalty Badge",
        "Gold Operation",
        "Silver Operation",
        "Diamond Operation",
        "Coin"
    };
    
    var descriptions = obj!["descriptions"]!.ToList();
    Console.OutputEncoding = Encoding.UTF8;
    foreach (var item in descriptions)
    {
        Console.WriteLine(item["values"]!.ToString().Where(x=> !test.Contains(<b>x</b>)));
    }


    Жалуется на х
    пишет, что невозможно преобразовать char в string. Сделал как вы написали.
  • Аналог NOT IN(SQL) в C#?

    @robben_55 Автор вопроса
    badWords у меня же енум, как такое у вас получилось сделать ?? Contains к енум.
  • Вытащить данные с nested json?

    @robben_55 Автор вопроса
    Василий Банников, домой приду поправлю.
  • Вытащить данные с nested json?

    @robben_55 Автор вопроса
    Василий Банников, Помогите, пожалуйста моим методом. Прошу вас дядя Василий
  • Вытащить данные с nested json?

    @robben_55 Автор вопроса
    var result = obj["descriptions"].Cast()
    .Select(x => new
    {
    Name = (string)x.Value["classid "]
    }).ToList();


    мне бы вот так. у меня консольное приложение с одним файлом(требование учителя) и учитель сказал сделать компактный код.
  • Как работать с дбконтекстом в статическом классе?

    @robben_55 Автор вопроса
    Василий Банников, пишу тг бота для собственных нужд.
    вот метод который анализирует команды отправленные боту и перенаправляет на хендлеры.
    private async Task BotOnMessageReceived(Message message)
            {
                _logger.LogInformation("Receive message type: {MessageType}", message.Type);
                if (message.Type != MessageType.Text)
                    await _botClient.SendTextMessageAsync(message.Chat.Id, "Send only text commands!");
                var action = message.Text!.Split(' ')[0] switch
                {
                    "/start" => StartMessageService.StartCommand(_botClient, message),
                    "/help" => HelpMessageService.HelpCommand(_botClient, message),
                    "/add" => AddAccountService.AddCommand(_botClient, message),
                    "/parse" => ParseCommandService.ParseCommand(_botClient, message),
                    "/show" => ShowCommandService.ShowCommand(_botClient, message),
                    _ => BackToMainMenuService.BackToMainMenu(_botClient, message)
                };
                Message sentMessage = await action;
                _logger.LogInformation("The message was sent with id: {SentMessageId}", sentMessage.MessageId);
            }


    StartCommand отправляет приветственное сообщение. /start

    public class StartMessageService
        {
            public static async Task<Message> StartCommand(ITelegramBotClient bot, Message message)
            {
                return await bot.SendTextMessageAsync(message.Chat.Id, "Welcome  txt here");
            }
        }


    и вот я отправляю команду /add petya и реагирует хендер AddCommand

    public class AddAccountService
        {
            public static async Task<Message> AddCommand(ITelegramBotClient bot, Message message)
            {
                if(message.Text.Count(char.IsWhiteSpace) == 1)
                {
                    string[] getData = message.Text.Split(" ");
                    var user = new UserInformation
                    {
                        TelegramUserId = message.Chat.Id.ToString()
                    };
    
                    user.Accounts.Add(new Account
                    {
                        SteamId = getData[1]
                    });
                    return await bot.SendTextMessageAsync(message.Chat.Id, "Saved");
                }
                return await bot.SendTextMessageAsync(message.Chat.Id, "Wrong command. Please, keep order of the commands.");
    
            }
        }


    тут я пробовал юзать дбконтекст через ди, еще так
    public static async Task<Message> AddCommand(ITelegramBotClient bot, Message message, dbContext context)
    запись в таблице бд не появляется. Помогите, пожалуйста.
  • Mapping со сложной структурой?

    @robben_55 Автор вопроса
    Василий Банников, User user = null!; что означает дядя Василий
  • Mapping со сложной структурой?

    @robben_55 Автор вопроса
    чтобы не путаться когда делаю маппинг, чтобы понимать откуда что идет и тд. Чтобы не запутаться
  • Как получить данные с Body?

    @robben_55 Автор вопроса
    сергей кузьмин, это локальный сервер. Помогите как правильно обработать данные отправленные через Боди.
  • Проблема с Mapping?

    @robben_55 Автор вопроса
    Sorry, все работает! Я просто забыл написать List в апи контроллере!@oleg_ods,
  • Проблема с Mapping?

    @robben_55 Автор вопроса
    oleg_ods,
    CreateMap<User, ForUserDataDto>()
                    .ForMember(s => s.TelegramUserId, opt => opt.MapFrom(r => r.TelegramId))
                    .ForMember(x => x.Steam, v => v.MapFrom(t => t.Accounts.Select(a => new Steam { SteamId = a.SteamId })));


    вот правило для маппера как вы показали.
  • Проблема с Mapping?

    @robben_55 Автор вопроса
    oleg_ods,
    [HttpGet]
            public async Task<ForUserDataDto> GetUsers()
            {
                var t = await _context.Users.Include(s => s.Accounts).ToListAsync();
                var p = _mapper.Map<List<ForUserDataDto>>(t);
    
                return p;
    
            }


    вот апи который будет выдавать результат.
  • Проблема с Mapping?

    @robben_55 Автор вопроса
    [HttpGet]
            public async Task<ForUserDataDto> GetUsers()
            {
                var t = await _context.Users.Include(s => s.Accounts).ToListAsync();
                var p = _mapper.Map<ForUserDataDto>(t);
    
                return p;
    
            }


    Контроллер вот. Что я делаю не так...
  • Проблема с Mapping?

    @robben_55 Автор вопроса
    AutoMapper.AutoMapperMappingException: Missing type map configuration or unsupported mapping.
    
    Mapping types:
    List`1 -> ForUserDataDto
    System.Collections.Generic.List`1[[azuresqltest.User, azuresqltest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] -> azuresqltest.Mapping.ForUserDataDto
       at lambda_method61(Closure , Object , ForUserDataDto , ResolutionContext )
       at azuresqltest.Controllers.GetUsersController.GetUsers() in C:\Users\Oybek\source\repos\azuresqltest\azuresqltest\Controllers\GetUsersController.cs:line 34
       at lambda_method5(Closure , Object )
       at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
       at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
       at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
       at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
       at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
       at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
       at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
  • GET запрос в WEB-API?

    @robben_55 Автор вопроса
    Василий Банников,
    return await _context.Users.Include(s => s.Accounts).ToListAsync();
    вообще вот эта команда корректна написана ?? Она же должна выдать все данные включая и Accounts ??
  • Получить данные с формы?

    @robben_55 Автор вопроса
    что у тебя за клиент - отдать ему его ссылку.
    Session? Посоветуйте, плиз.

    Метод, который бы обрабатывал запрос с формой я не вижу у тебя.

    public IActionResult OnGet(string url)
            {
                Link link = _db.Links.FirstOrDefault(s => s.ShortedUrl == url);
                if (link != null)
                {
                    return Redirect(link.Url);
                }
                else
                {
                    return Redirect(_configuration.GetSection("Link:ShortUrl").Value);
                }
            }
  • Получить данные с формы?

    @robben_55 Автор вопроса
    просто при переходе на result в ссылке появляется информация , которую я туда передаю, хотелось бы чтобы ссылка localhost:port/Result вот так выглядела, а не так localhost:port/result?result=213easaf и тд.
  • Получить данные с формы?

    @robben_55 Автор вопроса
    пост метод в индексе

    public IActionResult OnPost(string userLink) //Добавить страховку если не ввели ссылку
            {
                Random random = new Random(); //постоянно создается, сделать так чтобы один раз и vсе
                string name = new string(Enumerable.Repeat(range, 6).Select(s => s[random.Next(s.Length)]).ToArray());
                Link link = new Link
                {
                    Url = userLink,
                    ShortedUrl = name
                };
                 _db.Links.Add(link);
                _db.SaveChanges();
                //return RedirectToPage("Result", new {  Result = name });
                return RedirectToPage("Result" );
            }


    резулт страница

    public class ResultModel : PageModel
        {
            public string Message { get; private set; } = "";
            public string Result { get; set; }
            private readonly IConfiguration _configuration;
            private readonly IHttpContextAccessor _http;
            public ResultModel(IConfiguration configuration, IHttpContextAccessor http)
            {
                _configuration = configuration;
                _http = http;
            }
            public void OnGet(/*string Result*/)
            {
                var request = _http.HttpContext.Request;
                request.ContentType = "text/html; charset=utf-8";
                var form = request.Form;
                string l = form["userLink"];
                Message = _configuration.GetSection("Linklar:Value").Value + l;
            }
  • Получить данные с формы?

    @robben_55 Автор вопроса
    Василий Банников,
    на странице result
    у меня в индексе странице генерится значение , затем идет редирект на result страницу, я хочу чтобы при загрузке страницы result значение сгенерированное в индексе появилось в текстбоксе result страницы.

    public class ResultModel : PageModel
        {
            public string Message { get; private set; } = "";
            public string Result { get; set; }
            private readonly IConfiguration _configuration;
            private readonly IHttpContextAccessor _http;
            public ResultModel(IConfiguration configuration, IHttpContextAccessor http)
            {
                _configuration = configuration;
                _http = http;
            }
            public void OnGet()
            {
                var request = _http.HttpContext.Request;
                request.ContentType = "text/html; charset=utf-8";
                var form = request.Form;
                string l = form["userLink"];
                Message = _configuration.GetSection("Linklar:Value").Value + l;
    
            }
        }