public BusinessPartnerRowViewModel(BusinessUnit associatedBu) { if (associatedBu != null) { this._associatedBu = associatedBu; this.BusinessUnitName = associatedBu.Name; this.NatureOfBusiness = associatedBu.NatureofBusiness; // TODO: Why secondary contact numnber? to be decided? this.PhoneNumber = associatedBu.ContactNumber; if (associatedBu.Address != null) { this.Area = associatedBu.Address.Area; this.Address1 = associatedBu.Address.Address1; } } else { this._associatedBu = new BusinessUnit(); } }
/// <summary> /// Makes a server call to retrieve the business units /// </summary> public void ExecuteSearchBusinessUnits() { //TODO : need to make a server call and populate BusinessPartnerSearchResults collection // NOte: Don't create a new instance of BusinessPartnerSearchResults collection for every search. //clear the existing collection and add the results to it. BusinessPartnerRowViewModel buRowViewModel; // This requires a label titled "label1" on the form... // Get the UI thread's context var context = TaskScheduler.FromCurrentSynchronizationContext(); this.SetStatusbarMessage("Business units search inprogress...", StatusMessageType.Info); this.ShowBusyCursor(true, "Searching business units"); BusinessUnitSearchResults.Clear(); var request = new BusinessUnitSearchRequest { SearchString = this.SearchCriteriaText }; IEnumerable<BusinessUnit> bizUnits = null; Task t = new Task(() => { bizUnits = ManagerFactory.Create<BusinessUnitSearchRequest, IEnumerable<BusinessUnit>>().Execute(request); }); t.ContinueWith(_ => { if (bizUnits != null && bizUnits.Count() > 0) { foreach (var bizUnit in bizUnits) { buRowViewModel = new BusinessPartnerRowViewModel(bizUnit); BusinessUnitSearchResults.Add(buRowViewModel); } BusinessUnitSearchResults.Take(3).ToList().ForEach(item => item.SendSms = true); SetStatusbarMessage("Business unit details retrieved successfully...", StatusMessageType.Info); } else { var bizUnit = new BusinessUnit(); buRowViewModel = new BusinessPartnerRowViewModel(bizUnit); BusinessUnitSearchResults.Add(buRowViewModel); SetStatusbarMessage("No business units found..Try in google maps...", StatusMessageType.Warning); } ShowBusyCursor(false); }, context); t.Start(); }