コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <summary>
        /// Создание должности
        /// </summary>
        /// <param name="data"></param>
        /// <param name="session"></param>
        /// <returns></returns>
        public PostData CreatePost(PostDataIn data, string session)
        {
            var id     = -1;
            var result = new PostData(data);

            try
            {
                using (var _connection = new NpgsqlConnection(MainConnection.GetConnectionString()))
                {
                    _connection.Open();

                    var sqlQueryOfficer = string.Format(@"INSERT INTO {0}posts (namepost, grade) VALUES (@name, @grade) RETURNING ID", MainConnection.GetSQLNamespace());

                    using (var _postgreCommand = new NpgsqlCommand(sqlQueryOfficer, _connection))
                    {
                        _postgreCommand.Parameters.AddWithValue("name", data.PostsName);
                        _postgreCommand.Parameters.AddWithValue("grade", data.Grade);

                        id = Convert.ToInt32(_postgreCommand.ExecuteScalar());
                    }
                }

                result.ID = id;
            }
            catch (Exception e)
            {
                throw new Exception("Ошибка создания должности с ID = " + id, e);
            }

            if (_setting.Value.ChachedPosts)
            {
                try
                {
                    _cache.AddPost(id, result, session);
                }
                catch (Exception e)
                {
                    // Логгирование ошибки, работа продолжится через БД
                }
            }

            return(result);
        }
コード例 #3
0
 public PostData(PostDataIn _post)
 {
     this.PostsName = _post.PostsName;
     this.Grade     = _post.Grade;
 }