/// <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)); }
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, "허용되지 않은 숫자"); } }