Полезное

Разные интересные примеры и важные решения

Get response from PostAsJsonAsync

var httpClient = new HttpClient()

var task = httpClient.PostAsJsonAsync(posturi, model)
	.ContinueWith( x => x.Result.Content.ReadAsAsync<bool>().Result);

// 1. GETTING RESPONSE - NOT ASYNC WAY
task.Wait(); //THIS WILL HOLD THE THREAD AND IT WON'T BE ASYNC ANYMORE!
bool response = task.Result

// 2. GETTING RESPONSE - TASK ASYNC WAY (usually used in < .NET 4.5 
task.ContinueWith( x => {
	bool response = x.Result
});

// 3. GETTING RESPONSE - TASK ASYNC WAY (usually used in >= .NET 4.5 
bool response = await task;

WARNING: Unable to download from URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' to ''.

Well, I had the same problem. Set my Powershell to TLS 1.2 and it worked for me.

To test this :
1. Open Powershell (As Admin)
2. [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
3. Try it again!

Installing Docker on Windows 2016 Server

To install Docker Enterprise Edition on Windows Server 2016 use the following PowerShell commands:

Install-Module DockerMsftProvider -Force 
Install-Package Docker -ProviderName DockerMsftProvider -Force 

Установка RabbitMQ на Ubuntu 20.04

Внешняя ссылка: https://losst.ru/ustanovka-rabbitmq-v-ubuntu-20-04

Слияние дублей Юридических лиц

В процессе работы зачастую возникают ситуации с дублирование контрагентов - Юридических лиц. В результате вести аналитику и навести порядок не так то просто. Для решения данного вопроса можно использовать следующий процесс: Миграция ЮЛ

Processing LINUXHOST Error: Failed to call RPC function 'FcIsExists': The user name or password is incorrect.

1) Stop the service:
# systemctl stop veeamservice
2) Make database backup:
# mv /var/lib/veeam/veeam_db.sqlite /var/lib/veeam/veeam_db.sqlite.bak
3) Start the service:
# systemctl start veeamservice
4) Wait a few minutes for the database to rebuild
5) Rescan machine in the protection group

LDAP + Имя и Отчество в поле Имя

При настройках интеграции  с LDAP зачастую получается ситуация, что Имя и Отчество пользователя при импорте в ELMA записывается в поле Имя, а поле Отчество остается пустым.

Для решения данной проблемы необходимо в глобальный модуль добавить следующий listener, который будет корректировать данную проблему при добавлении нового пользователя из LDAP: 

using EleWise.ELMA.ComponentModel;
using EleWise.ELMA.Runtime.NH.Listeners;
using NHibernate.Event;
using EleWise.ELMA.Security.Models;

namespace MyGlobalModule
{
    [Component]
    public class UserListener : EntityEventsListener
    {
        public override bool OnPreInsert(PreInsertEvent @event)
        {
            var user = @event.Entity as IUser;
            if (user != null && !string.IsNullOrEmpty(user.FirstName))
            {
                var gn = user.FirstName.Split(' ');
                if (gn.Length > 1 && string.IsNullOrEmpty(user.MiddleName))
                {
                    user.FirstName = gn[0];
                    user.MiddleName = gn[1];
                }
            }
            return base.OnPreInsert(@event);
        }
        
        public override bool OnPreUpdate(PreUpdateEvent @event)
        {
            var user = @event.Entity as IUser;
            if (user != null && !string.IsNullOrEmpty(user.FirstName))
            {
                // Fix обновления из LDAP
                var gn = user.FirstName.Split(' ');
                if (gn.Length > 1)
                {
                    user.FirstName = gn[0];
                    if (string.IsNullOrEmpty(user.MiddleName))
	                    user.MiddleName = gn[1];
                }
            }
            return base.OnPreUpdate(@event);
        }
    }
}