예제 #1
0
        public ItemResult Edit(int resourceId, int updatedBy, InResource editedResource)
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_edit, connection);
                    this.Cmd.Parameters.AddWithValue("p_resource_id", resourceId);
                    this.Cmd.Parameters.AddWithValue("p_updated_by", updatedBy);
                    this.Cmd.Parameters.AddWithValue("p_category_id", editedResource.CategoryId);
                    this.Cmd.Parameters.AddWithValue("p_resource_name", editedResource.ResourceName);
                    this.Cmd.Parameters.AddWithValue("p_shelf", editedResource.Shelf);
                    this.Cmd.Parameters.AddWithValue("p_catalogue", editedResource.Catalogue);
                    this.Cmd.Parameters.AddWithValue("p_publish_year", editedResource.PublishYear);
                    this.Cmd.Parameters.AddWithValue("p_card_number", editedResource.CardNumber);
                    this.Cmd.Parameters.AddWithValue("p_rfid", editedResource.Rfid);
                    this.Cmd.Parameters.AddWithValue("p_resource_type_id", editedResource.ResourceTypeId);
                    this.Cmd.Parameters.AddWithValue("p_author_id", editedResource.AuthorId);
                    this.Cmd.Parameters.AddWithValue("p_book_location_id", editedResource.BookLocationId);
                    this.Cmd.Parameters.AddWithValue("p_catalogue_id", editedResource.CatalogId);

                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = dataReader[0];
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #2
0
        public ItemResult GetAllResourcesByIds(List <int> requiredResourceIds)
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_get_all_by_ids, connection);
                    this.Cmd.Parameters.AddWithValue("p_resource_ids", JsonConvert.SerializeObject(requiredResourceIds));
                    Console.WriteLine("p_resource_ids --- " + JsonConvert.SerializeObject(requiredResourceIds));

                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = JsonConvert.DeserializeObject <List <DetailedResource> >((string)dataReader[0]);
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #3
0
        public ItemResult Delete(int resourceId, int deletedBy)
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_delete, connection);
                    this.Cmd.Parameters.AddWithValue("p_resource_id", resourceId);
                    this.Cmd.Parameters.AddWithValue("p_deleted_by", deletedBy);

                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = dataReader[0];
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #4
0
        public ItemResult GetByCategory(int categoryId)
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_get_by_category, connection);
                    this.Cmd.Parameters.AddWithValue("p_category_id", categoryId);

                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = JsonConvert.DeserializeObject <List <DetailedResource> >((string)dataReader[0]);
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #5
0
        public ItemResult GetAll()
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_type_get_all, connection);

                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = Newtonsoft.Json.JsonConvert.DeserializeObject <List <ResourceType> >((string)dataReader[0]);
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #6
0
        public ItemResult GetMinimalPublishYear()
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_get_min_publishing_year, connection);

                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = Int32.Parse((string)dataReader[0]);
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #7
0
        public ItemResult GetAvailableCopyIds(InReturningBookshelfResourceCollection inReturningBookshelfResourceCollection)
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_get_available_copy_ids, connection);
                    this.Cmd.Parameters.AddWithValue("p_returned_resources", JsonConvert.SerializeObject(inReturningBookshelfResourceCollection));
                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = JsonConvert.DeserializeObject <List <ResourceCopy> >((dataReader[0]).ToString());
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #8
0
        public ItemResult ResourceSearchForSearchButton(InResourceAuthorSearchFilter inResourceAuthorSearchFilter)
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resources_search_for_search_button, connection);
                    this.Cmd.Parameters.AddWithValue("p_resource_filter", JsonConvert.SerializeObject(inResourceAuthorSearchFilter));
                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = JsonConvert.DeserializeObject <SearchButtonResult>((dataReader[0]).ToString());
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #9
0
        public ItemResult GetByInventarNumbers(ReturnedResources returnedResources)
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_get_by_inventar_number, connection);
                    this.Cmd.Parameters.AddWithValue("p_returned_resources", JsonConvert.SerializeObject(returnedResources));
                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = JsonConvert.DeserializeObject <ReturnedResources>((string)dataReader[0]);
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }
예제 #10
0
        public ItemResult DoubleCheckBasketResources(InAcceptedBasket inAcceptedBasket)
        {
            ItemResult itemResult = new ItemResult();

            using (NpgsqlConnection connection = this.CreateConnection())
            {
                try
                {
                    connection.Open();
                    this.CreateFunctionCallQuery(LibraryFunctions.fn_resource_double_check_basket_resources, connection);
                    this.Cmd.Parameters.AddWithValue("p_accepted_basket_by_oprator", JsonConvert.SerializeObject(inAcceptedBasket));
                    NpgsqlDataReader dataReader = null;
                    dataReader = this.Cmd.ExecuteReader();
                    using (dataReader)
                    {
                        while (dataReader.Read())
                        {
                            itemResult.Item = JsonConvert.DeserializeObject <InAcceptedBasket>((string)dataReader[0]);
                        }
                    }
                    connection.Close();
                }
                catch (PostgresException e)
                {
                    itemResult.Code    = e.MessageText;
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
                catch (NpgsqlException e)
                {
                    itemResult.Code    = (e.ErrorCode).ToString();
                    itemResult.Message = LibraryErrorMessages.GetErrorMessage(itemResult.Code);
                }
            }

            return(itemResult);
        }