/// <summary> /// Обновление информации о должности по Id /// </summary> /// <param name="id"></param> /// <param name="data"></param> /// <param name="session"></param> /// <returns></returns> public bool UpdatePost(int id, PostDataIn data, string session) { var result = false; var flagname = !string.IsNullOrWhiteSpace(data.PostsName); var flaggrade = data.Grade != 0; try { using (var _connection = new NpgsqlConnection(MainConnection.GetConnectionString())) { _connection.Open(); var sqlValue = string.Format("{0}{2}{1}", flagname ? "namepost = @name" : string.Empty, flaggrade ? "grade = @grade" : string.Empty, flagname && flaggrade ? "," : string.Empty); var sqlQueryPosts = string.Format(@"UPDATE {0}posts SET {1} WHERE id = @id", MainConnection.GetSQLNamespace(), sqlValue); using (var _postgreCommand = new NpgsqlCommand(sqlQueryPosts, _connection)) { _postgreCommand.Parameters.AddWithValue("id", id); if (flagname) { _postgreCommand.Parameters.AddWithValue("name", data.PostsName); } if (flaggrade) { _postgreCommand.Parameters.AddWithValue("grade", data.Grade); } result = _postgreCommand.ExecuteReader().HasRows; } } } catch (Exception e) { throw new Exception("Ошибка обновления должности с ID = " + id, e); } if (_setting.Value.ChachedPosts) { try { _cache.EditPost(id, data, session); } catch { // Логгирование ошибки, работа продолжится через БД } } return(result); }