MSSQL
=====

GiriÅŸ
-----
Bu belge, trcSpot ile sahip olduğunuz veri tabanı arasındaki PMS entegrasyonunu sağlamaktadır. Belge sonunda trcSpot ile veri tabanınız rahatlıkla haberleşebilecektir.

Windows Servisinin Hazırlanması
-------------------------------

.NET 6 SDK Kurulumu
~~~~~~~~~~~~~~~~~~~
İlk olarak uygulamanın çalışabilmesi için gerekli olan kurulumları yapmamız gerekiyor. https://dotnet.microsoft.com/en-us/download/dotnet/6.0 adresine giderek gerekli dosyayı indirin.

.. image:: images/pms-oracle/1.jpg
   :width: 700

İndirilen dosyayı açın ve kuruluma başlayın. Alt kısımda bulunan "Yükle" butonuna tıklayarak yüklemeyi başlatın.

.. image:: images/pms-oracle/2.jpg
   :width: 700

Yükleme sonlandığında alt kısımda bulunan "Kapat" butonuna tıklayabilirsiniz.

.. image:: images/pms-oracle/3.jpg
   :width: 700


Entegrasyon Dosyasının İndirilmesi
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
XXX adresine giderek "TrcPmsServiceSqlServer" isimli rar dosyasını indiriniz. Bu dosyayı indirdikten sonra kurulumu yapmak istediğiniz diskin içine rar dosyasını atın.

.. image:: images/pms-mssql/1.jpg
   :width: 700

Daha sonra rar dosyasının içinde bulunan klasörü bulunduğunuz dizine çıkartın.

.. image:: images/pms-mssql/2.jpg
   :width: 700

Servis Ayarlarının Yapılması
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Windows servisinin ayarlarını yapabilmek için öncelikle servisi bir kere başlatmamız ve ardından durdurmamız gerekiyor. Bu işlem bize, servis ayarlarında kullanacağımız bir anahtar değerinin oluşmasını sağlayacaktır.

Windows’un başlat tuşuna basarak veya alt kısımda bulunan arama butonuna tıklayarak açılan pencereye “CMD” veya “Komut İstemi” yazın. Sağ tarafta bulunan “Yönetici olarak çalıştır” butonuna tıklayın. Yönetici olarak çalıştırabilmeniz için açılan pencerede “Evet” butonuna tıklamalısınız.

.. image:: images/pms-oracle/7.jpg
   :width: 700

Aşağıdaki komutları sırasıyla kullanın;

.. code::

   sc create TrcSpotPmsServiceSqlServer binPath="C:\TrcPmsServiceSqlServer\publish\TrcSpotPmsServiceSqlServer.exe" start=auto

.. code::

   sc start TrcSpotPmsServiceSqlServer

.. code::

   sc stop TrcSpotPmsServiceSqlServer

.. image:: images/pms-mssql/4.jpg
   :width: 700

Bu komutlardan sonra TrcPmsServiceSqlServer klasörünün içerisine "Key" adında bir klasör oluşacaktır. Bu klasörün içerisinde bulunan "Key.txt" dosyasını açın ve sizin için oluşturulmuş anahtarın tamamını kopyalayın.

.. image:: images/pms-mssql/5.jpg
   :width: 700

TrcPmsServiceSqlServer klasörünün içindeki "publish" klasörünün içerisinde bulunan "appsettings" dosyasını açın.

.. image:: images/pms-mssql/3.jpg
   :width: 700

- CommunicationSettings bölümü, Windows servisinin bağlantı ayarlarının bulunduğu kısımdır.
    - **Port** bölümü, trcSpot hizmetinin bağlanacağı, sizin makinenizdeki bir TCP port numarasını içerecek bölümdür. Varsayılan olarak 13000 olarak ayarlanmıştır. Eğer cihazınızda 13000 portu dolu ise TCP olması şartıyla başka bir port numarasını kullanabilirsiniz.
- DatabaseSettings bölümü, uygulamayı bağlamak istediğiniz veri tabanının ayarlarının yapılacağı kısımdır.
    - **Host** bölümü bağlanmak istediğiniz veri tabanının bulunduğu cihazın IP adresi olmalıdır.
    - **Port** bölümü veri tabanına bağlanmak için kullanılacak port numarasıdır.
    - **DatabaseName** bölümü kullanılacak olan MSSQL veri tabanının ismidir.
    - **User_Id** bölümü veri tabanının kullanıcı adıdır.
    - Son olarak **Password** bölümü ise veri tabanı bağlantısı için kullanılacak şifredir.

- TableSettings bölümü, veri tabanında bulunan bilgi almak istediğimiz tablolarla alakalı ayarların yapılacağı kısımdır.
    - **Key** bölümü "Key.txt" dosyasında bulunan değer olmalıdır. Kopyaladığınız anahtarı buraya yapıştırmalısınız. Anahtar değerinin tümünü kopyaladığınızdan emin olun.
    - **TableName** bölümü veri tabanında bulunan ve bilgi almak istenen tablonun adıdır.
    - **Name** bölümü kullanılacak olan tablodaki ad bilgisini içeren kolonun adını içermelidir.
    - **Surname** bilgisi kullanılacak olan tablodaki soyad bilgisini içeren kolonun adını içermelidir.
    - **Username** bölümü tabloda bulunan kayıtların aranacağı parametrelerden biridir. Örneğin kullanıcıyı TC kimlik numarası ile aramak istiyorsak, bu alanı TC kimlik numarasının bulunduğu kolonun ismi girilmelidir.
    - Son olarak **Password** bölümü tabloda bulunan kayıtların aranacağı parametrelerden bir diğeridir. Örneğin kullanıcıyı oda numarası ile aramak istiyorsak, bu alanı oda numarasının bulunduğu kolonun ismi girilmelidir.

MSSQL Server Ayarları
~~~~~~~~~~~~~~~~~~~~~
MSSQL Server üzerinde TCP/IP protokolünü aktif etmemiz gerekiyor. Bunun için SQL Server Configuration Manager hizmetini açmalısınız.

Windows üzerinde arama yaparak bu hizmete ulaşabilirsiniz.

.. image:: images/pms-mssql/9.jpg
   :width: 700

Sol tarafta bulunan "SQL Server Network Configuration" sekmesine tıklayın. Sağ taraftaki TCP/IP protokolünü aktif etmeniz gerekmektedir.

.. image:: images/pms-mssql/10.jpg
   :width: 700

Servisi BaÅŸlatma
~~~~~~~~~~~~~~~~
PMS özelliğini bir Windows servisi olarak kullanmamız gerekmektedir. Komut istemcisini tekrar açın. (Windows'un başlat tuşuna basarak veya alt kısımda bulunan arama butonuna tıklayarak açılan pencereye "CMD" veya "Komut İstemi" yazın. Sağ tarafta bulunan "Yönetici olarak çalıştır" butonuna tıklayın. Yönetici olarak çalıştırabilmeniz için açılan pencerede "Evet" butonuna tıklamalısınız.)

.. image:: images/pms-oracle/7.jpg
   :width: 700

Alt tarafta bulunan kodu kullanarak servisi baÅŸlatabilirsiniz.

.. code::

   sc start TrcSpotPmsServiceSqlServer

.. image:: images/pms-mssql/6.jpg
   :width: 700

Servisi durdurmak isterseniz aşağıda bulunan kodu kullanabilirsiniz.

.. code::

   sc stop TrcSpotPmsServiceSqlServer

.. image:: images/pms-mssql/7.jpg
   :width: 700

Servisi silmek isterseniz durdurma kodunu çalıştırdıktan sonra aşağıdaki kodu kullanarak servisi silebilirsiniz.

.. code::

   sc delete TrcSpotPmsServiceSqlServer

.. image:: images/pms-mssql/8.jpg
   :width: 700


.. admonition:: Not
   :class: custom-note

   Servisin istenilen şekilde çalışmaması durumunda veya appsettings dosyasında değişiklik yapılması durumunda, servisi önce durdurup daha sonra yeniden başlatarak tekrar test edebilirsiniz.
   Bununla birlikte "appsettings" dosyasında yaptığınız değişiklikleri kaydettiğinizden emin olunuz.

Log Dosyaları
-------------
Servisi başlattıktan sonra diskinizin içerisine çıkarmış olduğunuz "TrcPmsServiceSqlServer" klasörünün içerisine "Logs" adında bir klasör oluşacaktır. Sistemden çıkan kayıtları burada görebilirsiniz. Servisi başlatmadan log dosyaları oluşmayacaktır.

.. admonition:: Uyarı
   :class: danger

   Windows servisi çalışırken Log dosyalarını silmeniz durumunda sistem hata verecektir ve servis çalışmayı durduracaktır. Bu sorunu çözmek için servisi tekrar başlatmanız gerekmektedir.

Sonuç
-----
PMS entegrasyonu başarıyla tamamlandı. Sahip olduğunuz cihaza göre gereken kurulumları yaptıktan sonra trcSpot hizmetini kullanmaya başlayabilirsiniz.