V

From ICO wiki
Jump to navigationJump to search

Liige

Veiko Vainu D21

Retsensioonid

XML

Retsensioon meeskond „asdasdasd“ XML-i kohta – 24.03.2013

Retsensioon meeskond „SaanEndagaHästiLäbi“ XML-i kohta – 24.03.2013

Teenus

Retsensioon meeskond „KK without K“ teenuse kohta – 3.06.2013

Retsensioon meeskond „KKMK“ teenuse kohta – 4.06.2013

Klientrakendus

Retsensioon meeskond „KK without K“ klientrakenduse kohta – 3.06.2013

Retsensioon meeskond „KKMK“ klientrakenduse kohta – 4.06.2013

XML fail

XML andmefail

XML skeemifail

XML stiilifailid

XML to HTML - Kuvab vasakul pool lehte kogu XML-i sisu nn. puuvaates. Paremal pool on otsing, mis otsib sõduri ees- ja perekonnanimest vastavat stringi.

XML to XML - Trükib välja kõik sõdurid sorteerides perekonnanime ja seejärel eesnime järgi. Igale sõdurile on lisatud ka uus atribuut ID, mis koosneb sõduri ID-st ja tema rühma, allüksuse ja väeosa ID-st.

XML to Excel - Loob workbooki iga allüksuse jaoks oma worksheeti kuhu kuvatakse selle üksuse isikkooseis sorteeritult Auastme tähestikulises järjekorras.

  • XML to Excel
  • Näidis XML
  • Näidis EXCEL
  • Kuidas - tuleb xml faili lisada viide vastavale xslt stylesheetile, seejärel tuleb xml fail Excelis avada ja valida, et kasutatakse vastavat stiilifaili.

XML kõik ühes (.rar)

Veebiteenus

Loodud sai kontaktiraamatu teenus, mis põhineb õppejõu "Telefoniraamatu teenus" näidisteemal.

Teenus on loodud WCF baasil ja kasutab Asp.Net kasutajate autentimist, mille jaoks on vastavad membership- ja roleprovider. Teenus võimaldab ka logimist, mis toimub enne sissetuleva päringu täitmist ning kus kontrollitakse ka kasutaja päringu limiidi ületamist. Teenuse päringud teostatakse Ninject süstimise abil läbi uow (unit-of-work) konteineri, mis omakorda sisaldab repositooriume. Kogu andmekiht on üles ehitatud Entity Framework Code First meetodil.

Teenus pakub järgmisi meetodeid:

  • User methods
    • AuthenticateUser - Tries to authenticate the user based on credentials.
      • returns > User object of the user or null if authentication failed.
    • GetAuthenticatedMyContact - Gets personal contact object of the querying user.
      • returns > A contact object.
    • AddUpdateContact - Add or update contacts infromation.
      • param name="contact" > Contact object to add or update.
      • returns > A contact object with updated fields.
    • AddUpdateContactInfo - Add or update contacts contact infromation.
      • param name="contactInfo" > Contact information object to add or update.
      • returns > A contact information object with updated fields.
    • AddUpdateContactPicture - Add or update a contacts picture.
      • param name="contactId" > Id of the contact to whom we wish to add a picture to or update/replace and existing one.
      • param name="picture" > File object of containing the picture we wish to add to a contact.
      • returns > A file object with updated fields.
    • DeleteContact - Deletes a contact by contact object.
      • param name="contact" > Contact object of the contact to delete.
      • returns > True if deleteion was successful. False if deletion was unsuccessful.
    • DeleteContactById - Deletes a contact by id.
      • param name="id" > Id of the contact to delete.
      • returns > True if deleteion was successful. False if deletion was unsuccessful.
    • DeleteContactInfo - Deletes a contacts contact information by contact information object.
      • param name="contact" > ContactInfo object of the contact information to delete.
      • returns > True if deleteion was successful. False if deletion was unsuccessful.
    • DeleteContactInfoById - Deletes a contacts contact information by contact information id.
      • param name="id" > Id of the contact information to delete.
      • returns > True if deleteion was successful. False if deletion was unsuccessful.
    • GetAllContacts - Gets a list of all contacts of the querying user.
      • returns > A list of contact objects.
    • GetAllContactInfoTypes - Gets a list of contact information types.
      • returns > A list of contactinfotype objects.
    • GetAllContactInfoesByContactId - Gets a list of a contacts contact information.
      • param name="contactId" > Id of a contact whose contactinformation to retrieve.
      • returns > A list of contactinfo objects.
    • GetByIdContact - Returns a contacts information.
      • param name="id" > Id of the contact whose information to retrieve.
      • returns > A contact object
    • GetByIdContactPicture - Returns a file object, containing a picture in binary form, of a contact.
      • param name="id" > Id of the contact whose picture to retrieve.
      • returns > A file object of the contacts picture.
    • SearchContactByAny - Searches contacts by name or by contacts information, depending on given input.
      • param name="any" > Symbol combination to search by.
      • param name="type" > Contact info type name to search by, or all to search by everything.
      • returns > A list of contacts matching the search criteria.
    • SearchContactByAnyPublic - Searches contacts by name or by contacts information, depending on given input. Also searches publicly available contact (contacts that have IsPublic=True).
      • param name="any" > Symbol combination to search by.
      • param name="type" > Contact info type name to search by, or all to search by everything.
      • returns > A list of contacts matching the search criteria.
  • Administrators methods
    • AdminAddUpdateUser - Administrator method, adds or updates a user.
      • param name="user" > User object to add or update.
      • returns > A user object with updated fields.
    • AdminDeleteUser - Administrator method, deletes a user by id. (Sets DeletedOn date to now)
      • param name="userId" > Id of the user to delete.
      • returns > True if deletion was successful. False if deletion was unsuccessful.
    • AdminGetAllUsers - Administrator method, gets a list of all users.
      • returns > A list of user objects.
    • AdminGetAllUserRoles - Administrator method, gets all possible user roles.
      • returns > A list of type user role objects
    • AdminGetByIdUser - Administrator method, gets the user object by id.
      • param name="userId" > Id of the user whose user data we wish to retrieve.
      • returns > A user object.
    • AdminGetLogsByUserId - Administrator method, gets a list of logs by user id. Get only the logs from the last 24 hours.
      • param name="userId" > Id of the user whose logs to get.
      • returns > A list of log objects.

Raskuskohad olid injectimine, nii et ei tekiks konflikte, ning kasutajate päringute hulga ilus piiramine, hetkel lihtsaltkatkestatakse kasutajaga ühendus.

Klientrakendused

Klientrakendus on tehtud WPF baasil kasutades peamiselt MVVM (Model-View-ViewModel) lähenemist, mille puhul View kood on enamjaolt tühi. Teenuse kasutamisel igakordse parooli ja kasutajanime sisestamise vältimiseks on teenuse kanali loomine eraldi kapseldatud.

Loodud klientrakendus võimaldab järgnevat:

  • Kasutajaid tuvastada
  • Kasutajad rolli põhjal eristada ja kuvada erinevaid menüüsid
  • Kasutajal kontake lisada ja redigeerida
  • Kontaktidele kontaktandmeid lisada ja redigeerida
  • Kontaktidele pilte lisada, otse arvutist kui ka veebilinki ette andes
  • Kontakte otsida kontakti nime ning kontaktandmete sisu järgi
  • Kontakte otsida vaid kindla kontaktandmete tüübi sisu järgi
  • Kontakte otsida ka nn. avalike ehk teiste kasutajate kontaktide seast
  • Kontaktide määrata avalikuks (teistele nähtav) või mitte-avalikuks
  • Administraatoritel lisada ja redigeerida kasutajaid
  • Administraatoritel muuta maksimaalsete päringute arvu
  • Administraatoritel näha iga kasutaja viimase 24 tunni päringuid (logi)

Raskuskohad olid teenuse asünkroonne kasutamine rakenduses ning võimalike veateadete haldamine.

Klientrakenduse ja teenuse kasutamine

Klientrakendus ja teenus asuvad koos SIIN

Et teenus suudaks kliendiga suhelda tuleb luua sertifikaadid ja nende "Thumbprint" kood asendada vastavalt "ServiceHost" ja "ServiceClientWPF" konfiguratsioonifailides, vastavalt "Web.config" ja "App.config". Õpetus kuidas sertifikaate luua ja nende "Thumbprint" leida on õppejõu poolt jagatud videos SIIN

Hetkel on "ServiceHost" seadistatud kasutama internetist kättesaadavat andmebaasi, kui soovite selle lokaalse vastu vahetada tuleb muuta "ContactBookConnection" nimeline connectionstring.

Kui on soovi kasutada omaenda kohalikku andmebaasi, siis saab EF andmebaasi loomiseks ja testandmete sisestamiseks kasutada "DALTestConsole" programmijuppi, kus tuleb siis asendada "ContactBookConnection" nimeline connectionstring. Et testandmeid suudetaks sisestada tuleb teha järgmist:

  • DAL>ContactBookContext.cs - välja kommenteerida "this.Configuration.ProxyCreationEnabled = false;"
  • Models>aBaseHistory.cs - sisse kommenteerida konstruktor, kus väärtustatakse kuupäeva väljad
  • DAL>User-/Contact-/ContactInfoRepository - Välja kommenteerida "Add" ja "Update" meetodid

Pärast testandmete genereerimist tuleks muudatused tagasi keerata (Undo!)

Logi

  • 2013.03.13 – Sai paika pandud XML faili struktuur ja loodud seda genereeriv rakendus.
  • 2013.03.14 – XSLT faili loomine, lisatud „Puuvaade“ näitamaks kõiki sisendeid.
  • 2013.03.15 – XSLT failile inimeste otsing vastavalt kasutaja sisendile lisatud (ainult IE). Sai tehtud XSLT fail XML-i transformeerimiseks teistsuguseks XML-iks ja ka XSLT fail XML-i exceli vorminduse jaoks.
  • 2013.03.20 – XML to HTML otsing töötab nüüd IE, Chrome ja Firefoxiga
    • wiki leht loodud,XML wiki lehele lisatud, tehtud stiilifailide näidised
  • 2013.03.24 – Teiste tiimide XML tööde retsenseerimine
  • 2013.04.25 – Alustatud teenuse loomist.
    • Teenusele lisatud autentimine.
    • Esialgsed mudelid ja DAL (Data-Access-Layer) loodud.
  • 2013.04.26 – Repositooriumite loomine ja baasrepositooriumi täitmine.
    • Esialgsete testandmete automaatsisestamise loomine.
  • 2013.04.27 – Autentimine üle viidud isevalmistatud membership- ja role providerite peale.
    • Alustatud teenuse meetodite kirjapanemisega.
  • 2013.04.28 – DI (Dependency-Injection) kasutusele võtmine.
    • Esimesed teenuse meetodid kirja pandud.
  • 2013.05.02 – Tavakasutajatele mõeldud meetodid kirja pandud, alustatud administraatori meetoditega.
  • 2013.05.04 – Alustatud klientrakenduse loomist. Valmis navigeerimine ja käskluste põhi.
  • 2013.05.07 – Klientrakenduses valmis kõikide kontaktide kuvamise vaade. Teenusele lisatud piltide/failide lisamise/pärimise võimalus.
  • 2013.05.12 – WCF asünkroonsed meetodid asendatud asünkroonsete tööde klientrakenduse poolel.
  • 2013.05.13 – Otsimise võimalus lisatud.
    • Administraatori vaade (kasutajate haldus) klientrakendusele lisatud.
    • Logimine andmebaasi lisatud.
    • Logimise põhjal päringute arvu piirangud lisatud.
  • 2013.05.15 – Klientrakendusele üldine veahalduse lisatud.
  • 2013.05.16 – Teenuse meetodid kommenteeritud.
    • Teenuse ja klientrakenduse kohta käiv info Wikisse lisatud.
    • Selle logi kirjutamine...