Advertisement
Mihailo21

Bolji servis

Apr 18th, 2024
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.61 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Common;
  7. using System.ServiceModel;
  8. using System.IO;
  9.  
  10. namespace Server
  11. {
  12.     public class ApotekaService : IApoteka
  13.     {
  14.         private static StreamWriter logWriter;
  15.  
  16.         static ApotekaService()
  17.         {
  18.             logWriter = new StreamWriter("log.txt", true, System.Text.Encoding.UTF8);
  19.         }
  20.  
  21.         public List<Lek> dobaviSveLekove()
  22.         {
  23.             List<Lek> ret = new List<Lek>();
  24.             foreach(Lek lek in DataBase.DataBaseOfLek.Values)
  25.             {
  26.                 ret.Add(lek);
  27.             }
  28.             return ret;
  29.         }
  30.  
  31.         public bool DodajLek(Lek lek)
  32.         {
  33.             if (DataBase.DataBaseOfLek.ContainsKey(lek.Id))
  34.             {
  35.                 Dogadjaj($"Neuspesno dodavanje, postoji lek sa ID={lek.Id}");
  36.                 return false;
  37.             }
  38.             else
  39.             {
  40.                 DataBase.DataBaseOfLek.Add(lek.Id, lek);
  41.                 Dogadjaj($"Uspesno dodavanje leka ID={lek.Id}");
  42.                 return true;
  43.             }
  44.         }
  45.  
  46.         public void dodajSastojak(int id, string sastojak)
  47.         {
  48.             Lek lek;
  49.             if (DataBase.DataBaseOfLek.TryGetValue(id, out lek))
  50.             {
  51.                 throw new FaultException<CustomException>(new CustomException("Nemoguce dodati sastojak jer ne postoji taj lek"));
  52.             }
  53.             else
  54.             {
  55.                 if (lek.Sastojci.Contains(sastojak))
  56.                 {
  57.                     throw new FaultException<CustomException>(new CustomException("Nemoguce dodati sastojak jer vec postoji"));
  58.                 }
  59.                 else
  60.                 {
  61.                     lek.Sastojci.Add(sastojak);
  62.                     Dogadjaj($"Uspesno dodat sastojak");
  63.                 }
  64.             }
  65.         }
  66.  
  67.         public void ObrisiLek(int id)
  68.         {
  69.             if (DataBase.DataBaseOfLek.ContainsKey((int)id))
  70.             {
  71.                 DataBase.DataBaseOfLek.Remove(id);
  72.                 Dogadjaj($"Uspesno obrisan lek");
  73.             }
  74.             else
  75.             {
  76.                 throw new FaultException<CustomException>(new CustomException($"Neuspesno brisanje leka"));
  77.             }
  78.         }
  79.  
  80.         public void PromeniKolicinuLek(int id, int kolicina, bool povecaj)
  81.         {
  82.             Lek lek;
  83.             if(DataBase.DataBaseOfLek.TryGetValue(id, out lek))
  84.             {
  85.                 if(lek.Kolicina - kolicina < 0 && !povecaj)
  86.                 {
  87.                     throw new FaultException<CustomException>(new CustomException($"Neuspesna promena kolicine"));
  88.                 }
  89.                 else
  90.                 {
  91.                     if (!povecaj)
  92.                         lek.Kolicina = lek.Kolicina - kolicina;
  93.                     else lek.Kolicina += kolicina;
  94.  
  95.                     Dogadjaj($"Promena izvrsena");
  96.                 }
  97.             }
  98.         }
  99.  
  100.         public List<Lek> PronadjiLekNaOsnovuSastojka(string sastojak)
  101.         {
  102.             List<Lek> retV = new List<Lek> ();
  103.             foreach(Lek lek in DataBase.DataBaseOfLek.Values)
  104.             {
  105.                 if(lek.Sastojci.Contains(sastojak))
  106.                 {
  107.                     retV.Add(lek);
  108.                 }
  109.             }
  110.             if (retV.Count > 0)
  111.                 Dogadjaj($"Uspesno pronadjen lek");
  112.             return retV;
  113.         }
  114.  
  115.         private static void Dogadjaj(string tekst)
  116.         {
  117.             logWriter.WriteLine(tekst);
  118.             logWriter.Flush();
  119.         }
  120.     }
  121. }
  122.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement