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 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 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 })); }
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 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; } }