private void Prijava() { HttpResponseMessage response = KompanijeService.GetActionResponse("GetByKorisnickoIme", korisnickoImeInput.Text); if (response.StatusCode == System.Net.HttpStatusCode.NotFound) { MessageBox.Show("Korisnicko ime nije pronadjeno", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (response.IsSuccessStatusCode) { Kompanije k = response.Content.ReadAsAsync <Kompanije>().Result; if (UIHelper.GenerateHash(k.LozinkaSalt, lozinkaInput.Text) == k.LozinkaHash) { this.DialogResult = DialogResult.OK; Global.notBrojac = 0; Global.prijavljenaKompanija = k; if (k.RefKompanijaID != null) { Global.IsRadnik = true; HttpResponseMessage response2 = KompanijeService.GetResponse(k.RefKompanijaID.GetValueOrDefault().ToString()); Global.prijavljenaKompanija = response2.Content.ReadAsAsync <Kompanije>().Result; } else { Global.IsRadnik = false; } Form frm = new Administracija.DodajKompaniju(); this.Close(); } else { MessageBox.Show("Pogresni korisnicki podaci", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error); lozinkaInput.Text = String.Empty; } } else { MessageBox.Show("Error Code" + response.StatusCode + " Message - " + response.ReasonPhrase); } }
public async Task <ActionResult> CreateUplatnicaManually(int masterId, int godina, int mjesec, int zgradaId = 0) { try { var vlasniciPeriod = await _db.Zgrade_PosebniDijeloviMaster_VlasniciPeriod.FirstOrDefaultAsync(p => p.PosebniDioMasterId == masterId && p.Zatvoren != true); // period nije zatvoren! var vlasnici = vlasniciPeriod.Zgrade_PosebniDijeloviMaster_VlasniciPeriod_Vlasnici.Where(p => p.VlasniciPeriodId == vlasniciPeriod.Id); var vlasnik = vlasnici.FirstOrDefault(); // uzeo prvog var vlasnikObj = await _db.Zgrade_Stanari.FirstOrDefaultAsync(p => p.Id == vlasnik.StanarId); Platitelj = vlasnikObj.Ime + " " + vlasnikObj.Prezime; string PozivNaBroj = "987654321"; var god = await _db.PrihodiRashodi.FirstOrDefaultAsync(p => p.Godina == godina); var mj = god.PrihodiRashodi_Rashodi.Where(p => p.Mjesec == mjesec && p.PosebniDioMasterId == masterId); Iznos = (decimal)mj.Where(p => p.PosebniDioMasterId == masterId).Sum(p => p.Iznos); var zgradaObj = await _db.Zgrade.FirstOrDefaultAsync(p => p.Id == zgradaId); _zgrada = zgradaObj; var identity = (ClaimsIdentity)User.Identity; var companyId = Convert.ToInt32(identity.FindFirstValue("Cid")); var tvrtka = await _db.Kompanije.FirstOrDefaultAsync(p => p.Id == companyId); _tvrtka = tvrtka; var newGuid = UplatnicaPdf(Opis, Platitelj, zgradaObj.Adresa, zgradaObj.Mjesto, tvrtka.IBAN, PozivNaBroj, Iznos); foreach (var item in mj) { item.PdfFileName = newGuid; } await _db.SaveChangesAsync(); return(Json(new { success = true })); } catch { return(Json(new { success = false })); } }
public IzmjenaProfila(int?id = null) { if (id == null) { k = Global.prijavljenaKompanija; } else { HttpResponseMessage response = KompanijeService.GetResponse(id.GetValueOrDefault().ToString()); if (response.IsSuccessStatusCode) { k = response.Content.ReadAsAsync <Kompanije>().Result; } else { MessageBox.Show("Error Code" + response.StatusCode + " : Message - " + response.ReasonPhrase); } } InitializeComponent(); this.AutoValidate = AutoValidate.Disable; }
private void DodajBtn_Click(object sender, EventArgs e) { Random rnd = new Random(); int _rnd = rnd.Next(1, 100000); Kompanije k = new Kompanije(); k.Naziv = ""; k.Adresa = ""; k.Email = _rnd.ToString(); k.Telefon = ""; k.KorisickoIme = KorisickoImeTxt.Text; k.GradID = 1; // gradID k.KorisickoIme = KorisickoImeTxt.Text; k.RefKompanijaID = _id; k.LozinkaSalt = UIHelper.GenerateSalt(); k.LozinkaHash = UIHelper.GenerateHash(k.LozinkaSalt, LozinkaTxt.Text); HttpResponseMessage response = KompanijeService.PostResponse(k); if (response.IsSuccessStatusCode) { MessageBox.Show("Uspjesno dodan radnik", "Dodano", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } else { MessageBox.Show("Korisnicko ime je zauzeto", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error); //string msg = response.ReasonPhrase; //MessageBox.Show("Error Code" + //response.StatusCode + " : Message - " + msg); } }
private void BindGrid() { HttpResponseMessage response = KompanijeService.GetResponse(Global.prijavljenaKompanija.KompanijaID.ToString()); if (response.IsSuccessStatusCode) { Kompanije k = response.Content.ReadAsAsync <Kompanije>().Result; ServisLbl.Text = k.Naziv; } // HttpResponseMessage response2 = KompanijeUpitiService.GetActionResponse("GetCountNeodgovoreni", Global.prijavljenaKompanija.KompanijaID.ToString()); if (response2.IsSuccessStatusCode) { int brUpita = response2.Content.ReadAsAsync <int>().Result; UpitiLbl.Text = brUpita.ToString(); if (Global.notBrojac < 2) { if (brUpita > 0) { notifyIcon.ShowBalloonTip(3000, "Novi upiti", "Imate ukupno " + brUpita.ToString() + " neodgovorenih upita", ToolTipIcon.Info); Global.notBrojac++; } } } else { UpitiLbl.Text = "0"; } // HttpResponseMessage response3 = ServisiService.GetActionResponse("GetCountUtoku", Global.prijavljenaKompanija.KompanijaID.ToString()); if (response3.IsSuccessStatusCode) { BrojServisaLbl.Text = response3.Content.ReadAsAsync <int>().Result.ToString(); } else { BrojServisaLbl.Text = "0"; } // DatumLbl.Text = DateTime.Now.ToShortDateString(); HttpResponseMessage response4 = KompanijeService.GetActionResponse("GetProsjecnaOcjena", Global.prijavljenaKompanija.KompanijaID.ToString()); if (response4.IsSuccessStatusCode) { decimal p = response4.Content.ReadAsAsync <decimal>().Result; p = Math.Round(p, 2); prosjekLbl.Text = p.ToString(); } else { prosjekLbl.Text = ""; } // DatumLbl.Text = DateTime.Now.ToShortDateString(); HttpResponseMessage response5 = KompanijeUpitiService.GetActionResponse("GetUpitiSvi", Global.prijavljenaKompanija.KompanijaID.ToString()); if (response5.IsSuccessStatusCode) { int sviUpitiBroj = response5.Content.ReadAsAsync <int>().Result; ukupnoUpitaLbl.Text = sviUpitiBroj.ToString(); } else { ukupnoUpitaLbl.Text = "0"; } HttpResponseMessage response6 = ServisiService.GetActionResponse("GetServisiSvi", Global.prijavljenaKompanija.KompanijaID.ToString()); if (response6.IsSuccessStatusCode) { int sviServisiBroj = response6.Content.ReadAsAsync <int>().Result; servisiSviLbl.Text = sviServisiBroj.ToString(); } else { servisiSviLbl.Text = "0"; } }
public List <KompanijeDetalji_Result> GetSlicneKompanije(int kompanijaID, int kategorijaID) { UcitajKompanije(kompanijaID, kategorijaID); List <Ocjene> ocjenePosmatraneKompanije = db.esp_Ocjene_GetByKompanijaID(kompanijaID).ToList(); List <Ocjene> zajedniceOcjene1 = new List <Ocjene>(); List <Ocjene> zajedniceOcjene2 = new List <Ocjene>(); List <KompanijeDetalji_Result> preporuceneKompanije = new List <KompanijeDetalji_Result>(); //preporuci slicne kompanije foreach (var x in kompanijeDict) { foreach (var o in ocjenePosmatraneKompanije) { if (x.Value.Where(i => i.KlijentID == o.KlijentID).Count() > 0) { zajedniceOcjene1.Add(o); zajedniceOcjene2.Add(x.Value.Where(i => i.KlijentID == o.KlijentID).First()); } } double slicnost = GetSlicnost(zajedniceOcjene1, zajedniceOcjene2); if (slicnost > 0.85) { preporuceneKompanije.Add(db.esp_Kompanije_GetDetalji(x.Key).First()); } zajedniceOcjene1.Clear(); zajedniceOcjene2.Clear(); } if (preporuceneKompanije.Count() != 0) { //sortiranje preporuceneKompanije = preporuceneKompanije.OrderByDescending(p => p.ProsjecnaOcjena).ToList(); } //cold start, ukoliko klijent jos nije ocijenio nijednu kompaniju - //dodaj top 5 sa najvecom prosjecnom ocjenom else { List <Kompanije> CS = new List <Kompanije>(); CS = db.esp_Recommender_ColdStart(kompanijaID, kategorijaID).ToList(); foreach (var x in CS) { preporuceneKompanije.Add(db.esp_Kompanije_GetDetalji(x.KompanijaID).First()); } //sortiranje preporuceneKompanije = preporuceneKompanije.OrderByDescending(p => p.ProsjecnaOcjena).ToList(); } List <KompanijeDetalji_Result> filter = new List <KompanijeDetalji_Result>(); //filtriraj prvih 5 i dodaj jednu kompaniju bez ocjene if (preporuceneKompanije.Count > 5) { // select top 5 foreach (var x in preporuceneKompanije) { filter.Add(x); if (filter.Count >= 5) { break; } } //dodaj jednu kompaniju bez ocjene u listu -- 6. stavka Kompanije bezOcjene = db.esp_Recommender_ColdStart_PreporuciKompanijeBezOcjena(kompanijaID, kategorijaID).FirstOrDefault(); if (bezOcjene != null) // ako ne postoji kompanija bez ocjene { filter.Add(db.esp_Kompanije_GetDetalji(bezOcjene.KompanijaID).First()); } } else { // ukoliko nema toliko zajednickih kompanija i mal je broj ocjenjenih kompanija(cold start,pocetak rada aplikacije) popuni listu sa random kompanijama foreach (var x in preporuceneKompanije) { filter.Add(x); } int brojac = 0; int loopStop = 0; while (filter.Count < 6 && loopStop < 100) { //popuni listu random kompanijama bez ocjena Kompanije bezOcjene = db.esp_Recommender_ColdStart_PreporuciKompanijeBezOcjena(kompanijaID, kategorijaID).FirstOrDefault(); KompanijeDetalji_Result kd = db.esp_Kompanije_GetDetalji(bezOcjene.KompanijaID).First(); bool postoji = false; foreach (var x in filter.ToList()) { postoji = false; if (kd.KompanijaID == x.KompanijaID)// ukoliko vec postoji kompanija u listi, nemoj je dodavati { brojac--; postoji = true; } } if (postoji == false) { filter.Add(db.esp_Kompanije_GetDetalji(bezOcjene.KompanijaID).First()); } brojac++; loopStop++; // zaustavi beskonacnu petlju ako vise nema kompanija na listi, lista preporucenih kompanija ce biti manja od 6 } } return(filter); }
public IHttpActionResult PutKompanije(int id, Kompanije k) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != k.KompanijaID) { return(BadRequest()); } db.esp_KompanijeUpdate(id, k.Naziv, k.Adresa, k.Email, k.Telefon, k.KorisickoIme, k.LozinkaSalt, k.LozinkaHash); if (k.kategorije != null) { List <KompanijeKategorije> Kategorije = db.KompanijeKategorije.Where(y => y.KompanijaID == k.KompanijaID).ToList(); //trenutne kategorije List <int> trenutneKategorije = new List <int>(); // dodavanje ID trenutnih kategorija foreach (var i in Kategorije) { trenutneKategorije.Add(i.KategorijaID); } List <int> isteKategorije = new List <int>(); // dodavanje ID istih kategorija foreach (var ku in Kategorije) { foreach (var u in k.kategorije) { if (ku.KategorijaID == u.KategorijaID) { isteKategorije.Add(ku.KategorijaID); } } } foreach (var u in k.kategorije) { if (isteKategorije.Contains(u.KategorijaID)) { // } else { db.esp_KompanijeKategorije_Insert(k.KompanijaID, u.KategorijaID); isteKategorije.Add(u.KategorijaID); // dodavanje ID -a kako bi kasnije provjerili koje uloge treba brisati } } //brisanje neoznacenih uloga foreach (var x in trenutneKategorije) { if (isteKategorije.Contains(x)) { // } else { KompanijeKategorije zaBrisanje = db.KompanijeKategorije.Where(y => y.KompanijaID == k.KompanijaID && y.KategorijaID == x).FirstOrDefault(); db.KompanijeKategorije.Remove(zaBrisanje); db.SaveChanges(); } } } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <JsonResult> SendRashodi(List <UplatniceRashodi> list) { if (list == null) { return(Json(new { success = false })); } if (list.Count == 0) { return(Json(new { success = false })); } var identity = (ClaimsIdentity)User.Identity; var companyId = Convert.ToInt32(identity.FindFirstValue("Cid")); var tvrtka = await _db.Kompanije.FirstOrDefaultAsync(p => p.Id == companyId); _tvrtka = tvrtka; IBANPrimatelj = tvrtka.IBAN; // za svaki master, kreiraj uplatnicu (pdf), qr kod, nadji kome se salje i posalji IEnumerable <int> masteri = list.Where(p => p.poslano != true).Select(p => p.masterId).Distinct(); if (masteri.Count() == 0) { return(Json(new { success = false })); } //int godina = (await _db.PrihodiRashodi.FirstOrDefaultAsync(p => p.Id == list[0].prihodiRashodiGodId)).Godina; int godina = list[0].godina; int zgradaId = list[0].zgradaId; int mjesec = list[0].mjesec; string email = ""; var zgradaObj = await _db.Zgrade.FirstOrDefaultAsync(p => p.Id == zgradaId); _zgrada = zgradaObj; List <UplatniceRashodiPopis> uplatniceList = new List <UplatniceRashodiPopis>(); foreach (var zgradaMasterId in masteri) { //var priRezGodina = await _db.PricuvaRezijeGodina.FirstOrDefaultAsync(p => p.ZgradaId == zgradaId && p.Godina == godina); //var priRezMjesec = priRezGodina.PricuvaRezijeMjesec.FirstOrDefault(p => p.Mjesec == mjesec); //var master = priRezMjesec.PricuvaRezijePosebniDioMasteri.FirstOrDefault(p => p.PosebniDioMasterId == zgradaMasterId); //var vlasnik = master.PricuvaRezijePosebniDioMasterVlasnici.FirstOrDefault(p => p.PricuvaRezijePosebniDioMasterId == master.Id); //var vlasnikObj = await _db.Zgrade_Stanari.FirstOrDefaultAsync(p => p.Id == vlasnik.VlasnikId); var vlasniciPeriod = await _db.Zgrade_PosebniDijeloviMaster_VlasniciPeriod.FirstOrDefaultAsync(p => p.PosebniDioMasterId == zgradaMasterId && p.Zatvoren != true); // period nije zatvoren! var vlasnici = vlasniciPeriod.Zgrade_PosebniDijeloviMaster_VlasniciPeriod_Vlasnici.Where(p => p.VlasniciPeriodId == vlasniciPeriod.Id); var vlasnik = vlasnici.FirstOrDefault(p => p.UplatnicaGlasiNaVlasnika == true); // uzeo prvog if (vlasnik != null) { var vlasnikObj = await _db.Zgrade_Stanari.FirstOrDefaultAsync(p => p.Id == vlasnik.StanarId); Platitelj = vlasnikObj.Ime + " " + vlasnikObj.Prezime; string PozivNaBroj = "987654321"; Iznos = list.Where(p => p.masterId == zgradaMasterId && p.godina == godina).Sum(p => p.iznos); var zgradaMaster = await _db.Zgrade_PosebniDijeloviMaster.FirstOrDefaultAsync(p => p.Id == zgradaMasterId); email = (await _db.Zgrade_Stanari.FirstOrDefaultAsync(p => p.Id == zgradaMaster.UplatnicaStanarId)).Email; var u = new UplatniceRashodiPopis { Email = email, PdfFileName = UplatnicaPdf(Opis, Platitelj, zgradaObj.Adresa, zgradaObj.Mjesto, IBANPrimatelj, PozivNaBroj, Iznos), ZgradaMasterId = zgradaMasterId }; uplatniceList.Add(u); } } var ret = await SendMail(uplatniceList, Opis, Poruka); foreach (var r in ret) { var targetGod = await _db.PrihodiRashodi.FirstOrDefaultAsync(p => p.Godina == godina && p.ZgradaId == zgradaId); var targetRashodi = targetGod.PrihodiRashodi_Rashodi.Where(p => p.Mjesec == mjesec); foreach (var t in targetRashodi) { if (t.PosebniDioMasterId == r.ZgradaMasterId) { t.PoslanoZaMjesec = r.Poslano; t.StatusSlanja = r.StatusText; t.DatumSlanja = DateTime.Now; t.PdfFileName = r.PdfFileName; //list.FirstOrDefault(p => p.masterId == t.PosebniDioMasterId).datumSlanja = t.DatumSlanja; //list.FirstOrDefault(p => p.masterId == t.PosebniDioMasterId).poslano = r.Poslano; //list.FirstOrDefault(p => p.masterId == t.PosebniDioMasterId).statusSlanja = r.StatusText; foreach (var item in list.Where(p => p.masterId == t.PosebniDioMasterId && p.isUkupnoRow != true)) { item.datumSlanja = t.DatumSlanja; item.poslano = r.Poslano; item.statusSlanja = r.StatusText; item.PdfFileName = r.PdfFileName; } } } } await _db.SaveChangesAsync(); //return new HttpStatusCodeResult(200, list.ToString()); return(Json(new { success = true, response = list })); // kome se salje - pise u pdMasteru u zgradi - email }