Ответы пользователя по тегу C#
  • Почему не компилируется .net core проект VkNet?

    Indermove
    @Indermove
    C#/.NET back-end разработчик
    Нет, это не Net core проект. Это netstandard проект. У меня собирается нормально сразу после загрузки. Ветка master последней версии.

    Попробуйте установить SDK последних версий для .Net framework и для .Net Core и Dev-паки https://www.microsoft.com/net/download/visual-stud...
    Ответ написан
    1 комментарий
  • C# программисты, какие сайты вы читаете каждый день?

    Indermove
    @Indermove
    C#/.NET back-end разработчик
    Есть классный блог, который уже посоветовали выше, Morning Brew, там практически каждый день публикуются подборки новостей и интересных статей из разных блогов. Полезен тем, что среди громких и общеизвестных новостей там публикуются и технические статьи, которые не столь широко известны, но не менее полезны.

    themorningbrew.net

    А еще есть довольно популярный InfoWorld это что-то вроде хабра на английском.
    www.infoworld.com/category/application-development
    Ответ написан
    Комментировать
  • Как сформулировать пагинацию предметов по игрокам в NHibernate?

    Indermove
    @Indermove Автор вопроса
    C#/.NET back-end разработчик
    В общем, оставим для потомков, может когда-то кому-то поможет. Немного исправив запрос получим вот такой результат:

    var getBatchOfPlayers = QueryOver.Of<PlayerInfoEntity>()
        .Where(entity => entity.IsSimulation == player.IsSimulation && entity.Role.IsIn(roles))
        .OrderBy(entity => entity.Login).Asc
        .Select(entity => entity.Id) // Исправили Login на Id
        .Skip(startOffset).Take(limit);
    
    res = session.QueryOver<ItemsEntity>()
        .WithSubquery.WhereProperty(entity => entity.Player.Id).In(getBatchOfPlayers) // Исправили Login на Id
        .Cacheable().CacheMode(CacheMode.Normal)
        .List().GroupBy(x => x.Player.Login)
        .Select(ConvertSpecial)
        .ToList();
    Ответ написан
    Комментировать
  • Как правильно реализовать асинхронное копирование файлов C#?

    Indermove
    @Indermove Автор вопроса
    C#/.NET back-end разработчик
    Дошел, до решения. Возможно (возможно), вот в этих строчках
    BitmapDecoder decoder = BitmapDecoder.Create(detectDate, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
    InPlaceBitmapMetadataWriter pngInplace = decoder.Frames[0].CreateInPlaceBitmapMetadataWriter();

    происходит вмешательство в поток, которое нарушает структуру файла. Чтобы это исправить, нужно создать новый файловый поток, ресурсы которого будем высвобождать непосредственно перед копированием.

    private async void smartButton_Click(object sender, RoutedEventArgs e)
            {
                FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
                folderBrowserDialog.ShowDialog();
    
                if (folderBrowserDialog.SelectedPath != "")
                {
                    string selectedPath = folderBrowserDialog.SelectedPath;
    
                    folderBrowserDialog.Dispose();
    
                    string[] photos = Directory.GetFiles(selectedPath);
    
                    foreach (ModelGroupItem item in listGroupItem)
                    {
                       foreach (string photo in photos)
                        {
                            using (FileStream detectDate = File.Open(photo, FileMode.Open))
                            {
                                BitmapDecoder decoder = BitmapDecoder.Create(detectDate, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
                                InPlaceBitmapMetadataWriter pngInplace = decoder.Frames[0].CreateInPlaceBitmapMetadataWriter();
                                DateTime photoDate = DateTime.Parse(pngInplace.DateTaken); // Дата съемки
    
                                // Если фотография соответствует условиям, то перекидываем ее в папку
                                if (item.timeTo.TimeOfDay > photoDate.TimeOfDay &
                                    item.timeFrom.TimeOfDay < photoDate.TimeOfDay &
                                    photoDate.DayOfWeek.ToString() == item.day &
                                    photoDate.Month == DateTime.Today.Month)
                                {
                                    string StartDirectory = selectedPath;   // Стартовая директория
                                    string EndDirectory = item.path;        // Конечная
                                    
                                    // Освобождаем файл перед копированием
                                    detectDate.Dispose();
    
                                    using (FileStream imageStreamSource = File.Open(photo, FileMode.Open))
                                    {
                                        using (FileStream DestinationStream = File.Create(EndDirectory + photo.Substring(photo.LastIndexOf('\\'))))
                                        {
                                            await imageStreamSource.CopyToAsync(DestinationStream);
                                        }
                                    }
                                    
                                }
                            }
                        }
                    }
                }
            }
    Ответ написан
    Комментировать