public BusinessPartnerListResponse Sync(SyncBusinessPartnerRequest request) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { response.BusinessPartners = new List <BusinessPartnerViewModel>(); if (request.LastUpdatedAt != null) { response.BusinessPartners.AddRange(unitOfWork.GetBusinessPartnerRepository() .GetBusinessPartnersNewerThen(request.CompanyId, (DateTime)request.LastUpdatedAt) ?.ConvertToBusinessPartnerViewModelList() ?? new List <BusinessPartnerViewModel>()); } else { response.BusinessPartners.AddRange(unitOfWork.GetBusinessPartnerRepository() .GetBusinessPartners(request.CompanyId) ?.ConvertToBusinessPartnerViewModelList() ?? new List <BusinessPartnerViewModel>()); } response.Success = true; } catch (Exception ex) { response.BusinessPartners = new List <BusinessPartnerViewModel>(); response.Success = false; response.Message = ex.Message; } return(response); }
public BusinessPartnerListResponse GetBusinessPartnersNewerThen(DateTime?lastUpdateTime) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { if (lastUpdateTime != null) { response.BusinessPartners = unitOfWork.GetBusinessPartnerRepository() .GetBusinessPartnersNewerThen((DateTime)lastUpdateTime) .ConvertToBusinessPartnerViewModelList(); } else { response.BusinessPartners = unitOfWork.GetBusinessPartnerRepository() .GetBusinessPartners() .ConvertToBusinessPartnerViewModelList(); } response.Success = true; } catch (Exception ex) { response.BusinessPartners = new List <BusinessPartnerViewModel>(); response.Success = false; response.Message = ex.Message; } return(response); }
public BusinessPartnerListResponse GetUnSyncedBusinessPartners() { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); List <BusinessPartnerViewModel> BusinessPartners = new List <BusinessPartnerViewModel>(); using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); try { SqliteCommand selectCommand = new SqliteCommand( SqlCommandSelectPart + "FROM BusinessPartners " + "WHERE IsSynced = 0 " + "ORDER BY Id DESC;", db); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) { int counter = 0; BusinessPartnerViewModel dbEntry = new BusinessPartnerViewModel(); dbEntry.Id = SQLiteHelper.GetInt(query, ref counter); dbEntry.Identifier = SQLiteHelper.GetGuid(query, ref counter); dbEntry.Code = SQLiteHelper.GetString(query, ref counter); dbEntry.Name = SQLiteHelper.GetString(query, ref counter); dbEntry.Director = SQLiteHelper.GetString(query, ref counter); dbEntry.Address = SQLiteHelper.GetString(query, ref counter); dbEntry.InoAddress = SQLiteHelper.GetString(query, ref counter); dbEntry.PIB = SQLiteHelper.GetString(query, ref counter); dbEntry.MatCode = SQLiteHelper.GetString(query, ref counter); dbEntry.Mobile = SQLiteHelper.GetString(query, ref counter); dbEntry.Phone = SQLiteHelper.GetString(query, ref counter); dbEntry.Email = SQLiteHelper.GetString(query, ref counter); dbEntry.ActivityCode = SQLiteHelper.GetString(query, ref counter); dbEntry.BankAccountNumber = SQLiteHelper.GetString(query, ref counter); dbEntry.OpeningDate = SQLiteHelper.GetDateTime(query, ref counter); dbEntry.BranchOpeningDate = SQLiteHelper.GetDateTime(query, ref counter); dbEntry.IsSynced = SQLiteHelper.GetBoolean(query, ref counter); dbEntry.UpdatedAt = SQLiteHelper.GetDateTime(query, ref counter); dbEntry.CreatedBy = SQLiteHelper.GetCreatedBy(query, ref counter); dbEntry.Company = SQLiteHelper.GetCompany(query, ref counter); BusinessPartners.Add(dbEntry); } } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; response.BusinessPartners = new List <BusinessPartnerViewModel>(); return(response); } db.Close(); } response.Success = true; response.BusinessPartners = BusinessPartners; return(response); }
public BusinessPartnerListResponse Sync(SyncBusinessPartnerRequest request) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { response = WpfApiHandler.SendToApi <SyncBusinessPartnerRequest, BusinessPartnerViewModel, BusinessPartnerListResponse>(request, "Sync"); } catch (Exception ex) { response.BusinessPartners = new List <BusinessPartnerViewModel>(); response.Success = false; response.Message = ex.Message; } return(response); }
public BusinessPartnerListResponse Sync(SyncBusinessPartnerRequest request) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { response.BusinessPartners = new List <BusinessPartnerViewModel>(); if (request.LastUpdatedAt != null) { response.BusinessPartners.AddRange(unitOfWork.GetBusinessPartnerRepository() .GetBusinessPartnersNewerThen((DateTime)request.LastUpdatedAt) ?.ConvertToBusinessPartnerViewModelList() ?? new List <BusinessPartnerViewModel>()); } else { response.BusinessPartners.AddRange(unitOfWork.GetBusinessPartnerRepository() .GetBusinessPartners() ?.ConvertToBusinessPartnerViewModelList() ?? new List <BusinessPartnerViewModel>()); } List <BusinessPartner> addedBusinessPartners = new List <BusinessPartner>(); foreach (var remedy in request.UnSyncedBusinessPartners) { addedBusinessPartners.Add(unitOfWork.GetBusinessPartnerRepository().Create(remedy.ConvertToBusinessPartner())); } unitOfWork.Save(); foreach (var item in addedBusinessPartners) { response.BusinessPartners.Add(unitOfWork.GetBusinessPartnerRepository().GetBusinessPartner(item.Id).ConvertToBusinessPartnerViewModel()); } response.Success = true; } catch (Exception ex) { response.BusinessPartners = new List <BusinessPartnerViewModel>(); response.Success = false; response.Message = ex.Message; } return(response); }
public BusinessPartnerListResponse GetBusinessPartnersForPopup(int companyId, string filterString) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); List <BusinessPartnerViewModel> businessPartners = new List <BusinessPartnerViewModel>(); using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); try { SqliteCommand selectCommand = new SqliteCommand( SqlCommandSelectPart + "FROM BusinessPartners " + "WHERE (@Name IS NULL OR @Name = '' OR Name LIKE @Name OR NameGer LIKE @Name) " + "AND CompanyId = @CompanyId " + "ORDER BY IsSynced, Id DESC " + "LIMIT @ItemsPerPage;", db); selectCommand.Parameters.AddWithValue("@Name", ((object)filterString) != null ? "%" + filterString + "%" : ""); selectCommand.Parameters.AddWithValue("@CompanyId", ((object)filterString) != null ? companyId : 0); selectCommand.Parameters.AddWithValue("@ItemsPerPage", 100); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) { BusinessPartnerViewModel dbEntry = Read(query); businessPartners.Add(dbEntry); } } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; response.BusinessPartners = new List <BusinessPartnerViewModel>(); return(response); } db.Close(); } response.Success = true; response.BusinessPartners = businessPartners; return(response); }
public JsonResult GetBusinessPartners() { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { response = businessPartnerService.GetBusinessPartners(); } catch (Exception ex) { response.Success = false; response.Message = ex.Message; Console.WriteLine(ex.Message); } return(Json(response, new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.Indented })); }
public JsonResult Sync([FromBody] SyncBusinessPartnerRequest request) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { response = this.businessPartnerService.Sync(request); } catch (Exception ex) { response.Success = false; response.Message = ex.Message; } return(Json(response, new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Newtonsoft.Json.Formatting.Indented })); }
public BusinessPartnerListResponse GetBusinessPartners(int companyId) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { List <BusinessPartner> businessPartners = unitOfWork.GetBusinessPartnerRepository().GetBusinessPartners(companyId); response.BusinessPartners = businessPartners.ConvertToBusinessPartnerViewModelList(); response.Success = true; } catch (Exception ex) { response.BusinessPartners = new List <BusinessPartnerViewModel>(); response.Success = false; response.Message = ex.Message; } return(response); }
public BusinessPartnerListResponse GetBusinessPartnersNewerThen(int companyId, DateTime?lastUpdateTime) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { response = WpfApiHandler.GetFromApi <List <BusinessPartnerViewModel>, BusinessPartnerListResponse>("GetBusinessPartnersNewerThen", new Dictionary <string, string>() { { "CompanyId", companyId.ToString() }, { "LastUpdateTime", lastUpdateTime.ToString() } }); } catch (Exception ex) { response.Success = false; response.Message = ex.Message; } return(response); }
public BusinessPartnerListResponse GetBusinessPartners(int companyId) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); try { response = WpfApiHandler.GetFromApi <List <BusinessPartnerViewModel>, BusinessPartnerListResponse>("GetBusinessPartners", new Dictionary <string, string>() { { "companyId", companyId.ToString() }, }); } catch (Exception ex) { response.BusinessPartners = new List <BusinessPartnerViewModel>(); response.Success = false; response.Message = ex.Message; } return(response); }
private void btnSync_Click(object sender, RoutedEventArgs e) { Thread th = new Thread(() => { BusinessPartnerButtonContent = " Sinhronizacija u toku... "; BusinessPartnerButtonEnabled = false; BusinessPartnerSQLiteRepository sqlLite = new BusinessPartnerSQLiteRepository(); SyncBusinessPartnerRequest request = new SyncBusinessPartnerRequest(); request.UnSyncedBusinessPartners = sqlLite.GetUnSyncedBusinessPartners().BusinessPartners; request.LastUpdatedAt = sqlLite.GetLastUpdatedAt(MainWindow.CurrentCompanyId); BusinessPartnerListResponse response = businessPartnerService.Sync(request); if (response.Success) { List <BusinessPartnerViewModel> businessPartnersFromDB = response.BusinessPartners; int total = businessPartnersFromDB.Count; int counter = 1; foreach (var businessPartner in businessPartnersFromDB.OrderBy(x => x.Id)) { BusinessPartnerButtonContent = " Sinhronizacija u toku " + counter++ + " od " + total; sqlLite.Delete(businessPartner.Identifier); businessPartner.IsSynced = true; sqlLite.Create(businessPartner); } MainWindow.SuccessMessage = "Podaci su uspešno sinhronizovani (" + businessPartnersFromDB.Count + ")!"; } PopulateData(); BusinessPartnerButtonContent = " Sinhronizacija lekova sa serverom "; BusinessPartnerButtonEnabled = true; }); th.IsBackground = true; th.Start(); }
public BusinessPartnerListResponse GetBusinessPartnersByPage(BusinessPartnerViewModel businessPartnerSearchObject, int currentPage = 1, int itemsPerPage = 50) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); List <BusinessPartnerViewModel> BusinessPartners = new List <BusinessPartnerViewModel>(); using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); try { SqliteCommand selectCommand = new SqliteCommand( SqlCommandSelectPart + "FROM BusinessPartners " + "WHERE (@Name IS NULL OR @Name = '' OR Name LIKE @Name) " + "ORDER BY IsSynced, Id DESC " + "LIMIT @ItemsPerPage OFFSET @Offset;", db); selectCommand.Parameters.AddWithValue("@Name", ((object)businessPartnerSearchObject.SearchBy_BusinessPartnerName) != null ? "%" + businessPartnerSearchObject.SearchBy_BusinessPartnerName + "%" : ""); selectCommand.Parameters.AddWithValue("@ItemsPerPage", itemsPerPage); selectCommand.Parameters.AddWithValue("@Offset", (currentPage - 1) * itemsPerPage); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) { int counter = 0; BusinessPartnerViewModel dbEntry = new BusinessPartnerViewModel(); dbEntry.Id = SQLiteHelper.GetInt(query, ref counter); dbEntry.Identifier = SQLiteHelper.GetGuid(query, ref counter); dbEntry.Code = SQLiteHelper.GetString(query, ref counter); dbEntry.Name = SQLiteHelper.GetString(query, ref counter); dbEntry.Director = SQLiteHelper.GetString(query, ref counter); dbEntry.Address = SQLiteHelper.GetString(query, ref counter); dbEntry.InoAddress = SQLiteHelper.GetString(query, ref counter); dbEntry.PIB = SQLiteHelper.GetString(query, ref counter); dbEntry.MatCode = SQLiteHelper.GetString(query, ref counter); dbEntry.Mobile = SQLiteHelper.GetString(query, ref counter); dbEntry.Phone = SQLiteHelper.GetString(query, ref counter); dbEntry.Email = SQLiteHelper.GetString(query, ref counter); dbEntry.ActivityCode = SQLiteHelper.GetString(query, ref counter); dbEntry.BankAccountNumber = SQLiteHelper.GetString(query, ref counter); dbEntry.OpeningDate = SQLiteHelper.GetDateTime(query, ref counter); dbEntry.BranchOpeningDate = SQLiteHelper.GetDateTime(query, ref counter); dbEntry.IsSynced = SQLiteHelper.GetBoolean(query, ref counter); dbEntry.UpdatedAt = SQLiteHelper.GetDateTime(query, ref counter); dbEntry.CreatedBy = SQLiteHelper.GetCreatedBy(query, ref counter); dbEntry.Company = SQLiteHelper.GetCompany(query, ref counter); BusinessPartners.Add(dbEntry); } selectCommand = new SqliteCommand( "SELECT Count(*) " + "FROM BusinessPartners " + "WHERE (@Name IS NULL OR @Name = '' OR Name LIKE @Name;", db); selectCommand.Parameters.AddWithValue("@Name", ((object)businessPartnerSearchObject.SearchBy_BusinessPartnerName) != null ? "%" + businessPartnerSearchObject.SearchBy_BusinessPartnerName + "%" : ""); query = selectCommand.ExecuteReader(); if (query.Read()) { response.TotalItems = query.GetInt32(0); } } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; response.BusinessPartners = new List <BusinessPartnerViewModel>(); return(response); } db.Close(); } response.Success = true; response.BusinessPartners = BusinessPartners; return(response); }
public void Sync(IBusinessPartnerService bpService, Action <int, int> callback = null) { try { SyncBusinessPartnerRequest request = new SyncBusinessPartnerRequest(); request.CompanyId = MainWindow.CurrentCompanyId; request.LastUpdatedAt = GetLastUpdatedAt(MainWindow.CurrentCompanyId); int toSync = 0; int syncedItems = 0; BusinessPartnerListResponse response = bpService.Sync(request); if (response.Success) { toSync = response?.BusinessPartners?.Count ?? 0; List <BusinessPartnerViewModel> businessPartnersFromDB = response.BusinessPartners; using (SqliteConnection db = new SqliteConnection(SQLiteHelper.SqLiteTableName)) { db.Open(); using (var transaction = db.BeginTransaction()) { SqliteCommand deleteCommand = db.CreateCommand(); deleteCommand.CommandText = "DELETE FROM BusinessPartners WHERE Identifier = @Identifier"; SqliteCommand insertCommand = db.CreateCommand(); insertCommand.CommandText = SqlCommandInsertPart; foreach (var businessPartner in businessPartnersFromDB) { deleteCommand.Parameters.AddWithValue("@Identifier", businessPartner.Identifier); deleteCommand.ExecuteNonQuery(); deleteCommand.Parameters.Clear(); if (businessPartner.IsActive) { businessPartner.IsSynced = true; insertCommand = AddCreateParameters(insertCommand, businessPartner); insertCommand.ExecuteNonQuery(); insertCommand.Parameters.Clear(); syncedItems++; callback?.Invoke(syncedItems, toSync); } } transaction.Commit(); } db.Close(); } } else { throw new Exception(response.Message); } } catch (Exception ex) { MainWindow.ErrorMessage = ex.Message; } }
public BusinessPartnerListResponse GetBusinessPartnersOnConstructionSiteByPage(int companyId, Guid constructionSiteIdentifier, BusinessPartnerViewModel BusinessPartnerSearchObject, int currentPage = 1, int itemsPerPage = 50) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); List <BusinessPartnerViewModel> BusinessPartners = new List <BusinessPartnerViewModel>(); using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); try { SqliteCommand selectCommand = new SqliteCommand( SqlCommandSelectPart + "FROM BusinessPartners " + "WHERE Identifier IN (SELECT BusinessPartnerIdentifier FROM BusinessPartnerByConstructionSites WHERE ConstructionSiteIdentifier = @ConstructionSiteIdentifier) " + "AND (@Name IS NULL OR @Name = '' OR Name LIKE @Name) " + "AND (@PIB IS NULL OR @PIB = '' OR PIB LIKE @PIB) " + "AND CompanyId = @CompanyId " + "ORDER BY IsSynced, Id DESC " + "LIMIT @ItemsPerPage OFFSET @Offset;", db); selectCommand.Parameters.AddWithValue("@ConstructionSiteIdentifier", constructionSiteIdentifier); selectCommand.Parameters.AddWithValue("@Name", ((object)BusinessPartnerSearchObject.Search_Name) != null ? "%" + BusinessPartnerSearchObject.Search_Name + "%" : ""); selectCommand.Parameters.AddWithValue("@PIB", ((object)BusinessPartnerSearchObject.Search_PIB) != null ? "%" + BusinessPartnerSearchObject.Search_PIB + "%" : ""); selectCommand.Parameters.AddWithValue("@CompanyId", companyId); selectCommand.Parameters.AddWithValue("@ItemsPerPage", itemsPerPage); selectCommand.Parameters.AddWithValue("@Offset", (currentPage - 1) * itemsPerPage); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) { BusinessPartnerViewModel dbEntry = Read(query); BusinessPartners.Add(dbEntry); } response.BusinessPartners = BusinessPartners; selectCommand = new SqliteCommand( "SELECT Count(*) " + "FROM BusinessPartners " + "WHERE Identifier IN (SELECT BusinessPartnerIdentifier FROM BusinessPartnerByConstructionSites WHERE ConstructionSiteIdentifier = @ConstructionSiteIdentifier) " + "AND (@Name IS NULL OR @Name = '' OR Name LIKE @Name) " + "AND (@PIB IS NULL OR @PIB = '' OR PIB LIKE @PIB) " + "AND CompanyId = @CompanyId;", db); selectCommand.Parameters.AddWithValue("@ConstructionSiteIdentifier", constructionSiteIdentifier); selectCommand.Parameters.AddWithValue("@Name", ((object)BusinessPartnerSearchObject.Search_Name) != null ? "%" + BusinessPartnerSearchObject.Search_Name + "%" : ""); selectCommand.Parameters.AddWithValue("@PIB", ((object)BusinessPartnerSearchObject.Search_PIB) != null ? "%" + BusinessPartnerSearchObject.Search_PIB + "%" : ""); selectCommand.Parameters.AddWithValue("@CompanyId", companyId); query = selectCommand.ExecuteReader(); if (query.Read()) { response.TotalItems = query.GetInt32(0); } } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; response.BusinessPartners = new List <BusinessPartnerViewModel>(); return(response); } db.Close(); } response.Success = true; response.BusinessPartners = BusinessPartners; return(response); }
public BusinessPartnerListResponse GetBusinessPartnersByPage(int companyId, BusinessPartnerViewModel businessPartnerSearchObject, int currentPage = 1, int itemsPerPage = 50) { BusinessPartnerListResponse response = new BusinessPartnerListResponse(); List <BusinessPartnerViewModel> businessPartners = new List <BusinessPartnerViewModel>(); using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db")) { db.Open(); try { SqliteCommand selectCommand = new SqliteCommand( "SELECT bp.ServerId, bp.Identifier, bp.Code, bp.InternalCode, bp.Name, bp.PIB, bp.PIO, bp.IdentificationNumber, " + "bp.DueDate, bp.WebSite, bp.ContactPerson, bp.IsInPdv, bp.JBKJS, " + "bp.CountrySrbId, bp.CountrySrbIdentifier, bp.CountrySrbCode, bp.CountrySrbName, " + "bp.CitySrbId, bp.CitySrbIdentifier, bp.CitySrbCode, bp.CitySrbName, " + "bp.Address, " + "bp.NameGer, bp.IsInPDVGer, bp.TaxAdministrationId, bp.TaxAdministrationIdentifier, bp.TaxAdministrationCode, bp.TaxAdministrationName, " + "bp.IBAN, bp.BetriebsNumber, bp.Customer, bp.TaxNr, bp.CommercialNr, bp.ContactPersonGer, " + "bp.CountryId, bp.CountryIdentifier, bp.CountryCode, bp.CountryName, " + "bp.CityId, bp.CityIdentifier, bp.CityCode, bp.CityName, " + "bp.AddressGer, " + "bp.SectorId, bp.SectorIdentifier, bp.SectorCode, bp.SectorName, " + "bp.VatId, bp.VatIdentifier, bp.VatCode, bp.VatDescription, bp.VatAmount, " + "bp.DiscountId, bp.DiscountIdentifier, bp.DiscountCode, bp.DiscountName, bp.DiscountAmount, " + "bp.AgencyId, bp.AgencyIdentifier, bp.AgencyCode, bp.AgencyName, bp.VatDeductionFrom, bp.VatDeductionTo, bp.PdvType, bp.Path, " + "bp.IsSynced, bp.UpdatedAt, bp.CreatedById, bp.CreatedByName, bp.CompanyId, bp.CompanyName " + "FROM BusinessPartners bp " + "WHERE (@Name IS NULL OR @Name = '' OR bp.Name LIKE @Name OR bp.NameGer LIKE @Name) " + "AND (@PIB IS NULL OR @PIB = '' OR ((SELECT GROUP_CONCAT(cities.CityName) FROM BusinessPartnerLocations cities Where bp.Identifier = cities.BusinessPartnerIdentifier) LIKE @PIB)) " + "AND (@InternalCode IS NULL OR @InternalCode = '' OR bp.InternalCode LIKE @InternalCode) " + "AND (@AgencyName IS NULL OR @AgencyName = '' OR bp.AgencyName LIKE @AgencyName) " + "AND bp.CompanyId = @CompanyId " + "ORDER BY bp.IsSynced, bp.Id DESC " + "LIMIT @ItemsPerPage OFFSET @Offset;", db); selectCommand.Parameters.AddWithValue("@Name", (((object)businessPartnerSearchObject?.Search_Name) != null && businessPartnerSearchObject?.Search_Name != "") ? "%" + businessPartnerSearchObject?.Search_Name + "%" : ""); selectCommand.Parameters.AddWithValue("@PIB", (((object)businessPartnerSearchObject?.Search_PIB) != null && businessPartnerSearchObject?.Search_PIB != "") ? "%" + businessPartnerSearchObject?.Search_PIB + "%" : ""); selectCommand.Parameters.AddWithValue("@InternalCode", ((object)businessPartnerSearchObject?.Search_Code) != null ? "%" + businessPartnerSearchObject?.Search_Code + "%" : ""); selectCommand.Parameters.AddWithValue("@AgencyName", ((object)businessPartnerSearchObject?.Search_Agency) != null ? "%" + businessPartnerSearchObject?.Search_Agency + "%" : ""); selectCommand.Parameters.AddWithValue("@CompanyId", companyId); selectCommand.Parameters.AddWithValue("@ItemsPerPage", itemsPerPage); selectCommand.Parameters.AddWithValue("@Offset", (currentPage - 1) * itemsPerPage); SqliteDataReader query = selectCommand.ExecuteReader(); while (query.Read()) { BusinessPartnerViewModel dbEntry = Read(query); businessPartners.Add(dbEntry); } selectCommand = new SqliteCommand( "SELECT Count(*) " + "FROM BusinessPartners " + "WHERE (@Name IS NULL OR @Name = '' OR Name LIKE @Name) " + "AND (@PIB IS NULL OR @PIB = '' OR PIB LIKE @PIB) " + "AND (@InternalCode IS NULL OR @InternalCode = '' OR InternalCode LIKE @InternalCode) " + "AND (@AgencyName IS NULL OR @AgencyName = '' OR AgencyName LIKE @AgencyName) " + "AND CompanyId = @CompanyId;", db); selectCommand.Parameters.AddWithValue("@Name", ((object)businessPartnerSearchObject?.Search_Name) != null ? "%" + businessPartnerSearchObject?.Search_Name + "%" : ""); selectCommand.Parameters.AddWithValue("@PIB", ((object)businessPartnerSearchObject?.Search_PIB) != null ? "%" + businessPartnerSearchObject?.Search_PIB + "%" : ""); selectCommand.Parameters.AddWithValue("@InternalCode", ((object)businessPartnerSearchObject?.Search_Code) != null ? "%" + businessPartnerSearchObject?.Search_Code + "%" : ""); selectCommand.Parameters.AddWithValue("@AgencyName", ((object)businessPartnerSearchObject?.Search_Agency) != null ? "%" + businessPartnerSearchObject?.Search_Agency + "%" : ""); selectCommand.Parameters.AddWithValue("@CompanyId", companyId); query = selectCommand.ExecuteReader(); if (query.Read()) { response.TotalItems = query.GetInt32(0); } } catch (SqliteException error) { MainWindow.ErrorMessage = error.Message; response.Success = false; response.Message = error.Message; response.BusinessPartners = new List <BusinessPartnerViewModel>(); return(response); } db.Close(); } response.Success = true; response.BusinessPartners = businessPartners; return(response); }