public override async Task <Diff> OnSavingAsync(IEntity entity, LogicReadWriteParameters parameters, CancellationToken cancellationToken)
        {
            LogicParameter lp = new LogicParameter(entity, parameters, cancellationToken);

            if (!entity.IsLoaded &&
                DbVal.IsEmpty(entity.GetValue <int>("OrderNumber"), ValType.Int))
            {
                await _SetRightOrderNumber(lp).ConfigureAwait(false);;
            }

            if (!entity.IsLoaded)
            {
                await ModProfile.IsUniqueAKProfile(lp).ConfigureAwait(false);
            }

            if (!entity.IsDeleted())
            {
                await _HandleTroubleProduct(lp).ConfigureAwait(false);
            }

            return(await base.OnSavingAsync(entity, parameters, cancellationToken).ConfigureAwait(false));
        }
        /// <summary>
        /// Will be executed before the object is saved to the database.
        /// </summary>
        protected override void OnSaving()
        {
            if (!DbObject.IsLoaded &&
                DbVal.IsEmpty(DbObject.GetValue("OrderNumber").Int, ValType.Int))
            {
                _SetRightOrderNumber();
            }

            ModProfile.CheckAndSetOSMode(DbObject, "OSMode", DbObject["OsMode"].New.String);

            if (!DbObject.IsLoaded)
            {
                ModProfile.IsUniqueAKProfile(DbObject);
            }

            if (!DbObject.IsDeleted)
            {
                _HandleTroubleProduct();
            }

            base.OnSaving();
        }