/// <summary>
        /// Gets filtered client overview data
        /// </summary>
        /// <param name="overviewFilter">Overview filter</param>
        /// <returns>Collection of clients</returns>
        public IEnumerable <Client> GetClientOverview(ClientOverviewFilter overviewFilter)
        {
            var clients = this.clientRepository.GetAsQueryable();

            if (overviewFilter.ClientType == ClientType.Privatni)
            {
                if (!string.IsNullOrEmpty(overviewFilter.FirstName))
                {
                    clients = clients.Where(client => client.FirstName.Contains(overviewFilter.FirstName));
                }

                if (!string.IsNullOrEmpty(overviewFilter.LastName))
                {
                    clients = clients.Where(client => client.LastName.Contains(overviewFilter.LastName));
                }
            }

            if (overviewFilter.ClientType == ClientType.Poslovni)
            {
                if (!string.IsNullOrEmpty(overviewFilter.Company))
                {
                    clients = clients.Where(client => client.CompanyName.Contains(overviewFilter.Company));
                }
            }

            var clientsFiltered = clients.Where(client => client.ClientType.Name == overviewFilter.ClientType.ToString()).ToList();

            return(clientsFiltered);
        }
예제 #2
0
        private void applyFilterBtn_Click(object sender, EventArgs e)
        {
            // Parses client type combo box selected item into client type enum
            var clientType = this.clientTypeCb.GetItemText(this.clientTypeCb.SelectedItem);

            Enum.TryParse(clientType, true, out ClientType selectedClientType);

            // Client overview filter
            var filter = new ClientOverviewFilter()
            {
                ClientType = selectedClientType,
                FirstName  = firstNameFilterTb.Text,
                LastName   = lastNameFilterTb.Text,
                Company    = companyFilterTb.Text
            };

            // Sets client overview data grid view data source
            clientOverviewDgv.DataSource = this.clientOverviewVmService.GetClientOverview(filter);
        }
예제 #3
0
        /// <summary>
        /// On client type combobox index change
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="e">Event args</param>
        private void clientTypeCb_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Parses client type combo box selected item into client type enum
            var clientType = this.clientTypeCb.GetItemText(this.clientTypeCb.SelectedItem);

            Enum.TryParse(clientType, true, out ClientType selectedClientType);

            if (selectedClientType == ClientType.Privatni)
            {
                companyFilterTb.Visible = false;
                companyFilterLb.Visible = false;

                firstNameFilterTb.Visible  = true;
                firstNameFilterLbl.Visible = true;

                lastNameFilterLbl.Visible = true;
                lastNameFilterTb.Visible  = true;
            }
            else
            {
                companyFilterTb.Visible = true;
                companyFilterLb.Visible = true;

                firstNameFilterTb.Visible  = false;
                firstNameFilterLbl.Visible = false;

                lastNameFilterLbl.Visible = false;
                lastNameFilterTb.Visible  = false;
            }

            // Client overview filter
            var filter = new ClientOverviewFilter()
            {
                ClientType = selectedClientType
            };

            // Sets client overview data grid view data source
            clientOverviewDgv.DataSource = this.clientOverviewVmService.GetClientOverview(filter);
        }