Esempio n. 1
0
        /// <summary>
        /// Обновление одного поля объекта.
        /// </summary>
        /// <param name="id">Идентификационный номер объекта.</param>
        /// <param name="property">Название поля объекта.</param>
        /// <param name="model">Модель объекта, содержащая новое значение поля.</param>
        /// <returns>Обновленный объект.</returns>
        public override async Task <Dto> PatchAsync(long id, string property, Dto model)
        {
            var tablePropertyName = AllowedColumns.GetValueOrDefault(property);
            var entity            = Mapper.Map <Entity>(model);

            entity.Id = id;

            string sqlQuery = $"UPDATE owners SET {tablePropertyName}=@{property} WHERE id=@Id RETURNING id AS Id, name AS Name, description AS Description, user_id AS UserId;";

            using var conn = Conn.GetConnection();
            var patchedEntity = await conn.QuerySingleOrDefaultAsync <Entity>(sqlQuery, entity);

            return(Mapper.Map <Dto>(patchedEntity));
        }
Esempio n. 2
0
        protected override void CheckValidate()
        {
            int small = Math.Min(this.HitNumber1, this.HitNumber2);
            int big   = Math.Max(this.HitNumber1, this.HitNumber2);


            if (IsVertical)
            {
                Street row = small.GetStreet();
                if (DeniedStreets.Contains(row))
                {
                    Throw(small, "허용되지 않는 vertial split 의 row");
                }
            }
            else
            {
                Column col = Number.GetColumn(small);
                if (AllowedColumns.Contains(col) == false)
                {
                    Throw(small, "허용되지 않는 horizonal split 의 column");
                }
            }

            int diff = big - small;

            if (diff != 1 && diff != 3 && diff != 100) //100은 0+00 split
            {
                this.Throw(small, "인접하지 않은 숫자");
            }

            if (Number.IsAtomicNumber(big) == false ||
                Number.IsAtomicNumber(small) == false)
            {
                this.Throw(small, "허용되지 않은 숫자");
            }
        }