public async Task <ActionResult> Get([FromQuery] KlijentSearchRequestModel model = null) { try { return(Ok(await _userService.GetKlijenti(UserResolver.GetUposlenikId(HttpContext.User), UserResolver.GetUserRoles(HttpContext.User), model))); } catch (Exception ex) { return(BadRequest(new ApiException(ex.Message, System.Net.HttpStatusCode.BadRequest))); } }
private async void btnPrikazi_Click(object sender, EventArgs e) { var request = new KlijentSearchRequestModel { Ime = txtIme.Text, Prezime = txtPrezime.Text }; var kursInstancaId = int.Parse(comboKursInstanca.SelectedValue.ToString()); if (kursInstancaId != 0) { request.KursInstancaId = kursInstancaId; } await LoadKlijents(request); }
private async Task LoadKlijents(KlijentSearchRequestModel model = null) { try { gridKlijenti.RowTemplate.Height = 100; var result = await _klijentService.Get <List <KlijentModel> >(model); gridKlijenti.DataSource = result; gridKlijenti.Columns[nameof(KlijentModel.Id)].Visible = false; gridKlijenti.Columns[nameof(KlijentModel.KlijentId)].Visible = false; gridKlijenti.Columns[nameof(KlijentModel.OpcinaId)].Visible = false; gridKlijenti.Columns[nameof(KlijentModel.UkupnoUplaceno)].HeaderText = "Ukupno uplaćeno"; gridKlijenti.Columns[nameof(KlijentModel.OpcinaNaziv)].HeaderText = "Općina"; gridKlijenti.Columns[nameof(KlijentModel.DatumRodjenja)].HeaderText = "Datum Rodjenja"; gridKlijenti.Columns[nameof(KlijentModel.UkupnoUplaceno)].DisplayIndex = 8; gridKlijenti.Columns[nameof(KlijentModel.ClanarinaAktivna)].HeaderText = "Članarina aktivna"; gridKlijenti.Columns[nameof(KlijentModel.ClanarinaAktivna)].DisplayIndex = 9; gridKlijenti.Columns[nameof(KlijentModel.DatumIstekaClanarine)].HeaderText = "Datum isteka članarine"; gridKlijenti.Columns[nameof(KlijentModel.DatumIstekaClanarine)].DisplayIndex = 10; if (gridKlijenti.Columns["UplataColumn"] == null) { DataGridViewButtonColumn uplataButton = new DataGridViewButtonColumn() { Name = "UplataColumn", HeaderText = "Akcija", Text = "Dodaj uplatu", UseColumnTextForButtonValue = true }; gridKlijenti.CellClick += gridKlijenti_CellClick; gridKlijenti.Columns.Add(uplataButton); } gridKlijenti.Columns["UplataColumn"].DisplayIndex = 13; } catch (ApiException ex) { MessageBox.Show(ex.Message); } }
public async Task <List <KlijentModel> > GetKlijenti(int uposlenikId, List <string> roles, KlijentSearchRequestModel model = null) { try { var query = _context.Klijent .Include(u => u.ApplicationUser) .ThenInclude(au => au.Opcina) .Include(u => u.KurseviKlijenta) .ThenInclude(k => k.KursInstanca) .AsQueryable(); if (model != null) { if (!string.IsNullOrEmpty(model.Ime)) { query = query .Where(u => u.ApplicationUser.Ime.StartsWith(model.Ime)); } if (!string.IsNullOrEmpty(model.Prezime)) { query = query .Where(u => u.ApplicationUser.Prezime.StartsWith(model.Prezime)); } } var result = await query.ToListAsync(); bool isAdmin = roles.Contains("AdministrativnoOsoblje"); bool isPredavacOnCourse = false; if (model?.KursInstancaId != null) { isPredavacOnCourse = IsPredavacOnCourse(uposlenikId, (int)model.KursInstancaId); } var returnModel = new List <KlijentModel>(); foreach (var r in result) { bool passed = false; //zbog uplate da ne ide ponovo trip na db ako sigurno ne treba if (model?.KursInstancaId != null && model?.KursInstancaId != 0) { if ((isAdmin || isPredavacOnCourse) && IsKlijentOnCourse(r, (int)model.KursInstancaId)) { passed = true; } } else { if (isAdmin) { passed = true; } else if (IsKlijentOnAnyCourseFromUposlenik(r, uposlenikId)) { passed = true; } } if (passed) { var k = MapKlijentToKlijentModel(r); k.UkupnoUplaceno = GetUkupnoUplaceno(k.KlijentId); var clanarinaKlijenta = await _context.Clanarina .Where(c => c.KlijentId == k.KlijentId) .OrderByDescending(c => c.Id) .ToListAsync(); if (clanarinaKlijenta.Count == 0 || clanarinaKlijenta[0].DatumIsteka < DateTime.Now) { k.ClanarinaAktivna = "Neaktivna"; } else { k.DatumIstekaClanarine = clanarinaKlijenta[0].DatumIsteka; if (clanarinaKlijenta[0].DatumIsteka > DateTime.Now) { k.ClanarinaAktivna = "Aktivna"; } } returnModel.Add(k); } } return(returnModel); } catch (Exception ex) { throw new Exception(ex.Message); } }