public async Task<Client[]> GetSMSClients(int[] selectedCountries, int[] selectedProvinces, int[] selectedAreas, int[] selectedCodes, int[] selectedClientTypes, int? clientId) { var selectedItems = new List<SMSDistributionItemModel>(); selectedItems.AddRange(SMSDistributionViewModel.Find(selectedCountries, SMSDistributionViewModel.enumSMSDistributionItemType.Country)); selectedItems.AddRange(SMSDistributionViewModel.Find(selectedProvinces, SMSDistributionViewModel.enumSMSDistributionItemType.Province)); selectedItems.AddRange(SMSDistributionViewModel.Find(selectedAreas, SMSDistributionViewModel.enumSMSDistributionItemType.PostalArea)); selectedItems.AddRange(SMSDistributionViewModel.Find(selectedCodes, SMSDistributionViewModel.enumSMSDistributionItemType.PostalCode)); var parents = (from item in selectedItems.Where(m => m.Parent != null).ToArray() select item.Parent.Key).ToArray(); selectedItems.RemoveAll(m => parents.Contains(m.Key)); var codes = (from item in await db.PostalCodes.Where(m => m.Active).ToArrayAsync() where ( selectedItems.Where(m => m.ItemType == SMSDistributionViewModel.enumSMSDistributionItemType.Country).Select(m => m.Id).Contains(item.Country.CountryId) || selectedItems.Where(m => m.ItemType == SMSDistributionViewModel.enumSMSDistributionItemType.Province).Select(m => m.Id).Contains(item.Province.ProvinceId) || selectedItems.Where(m => m.ItemType == SMSDistributionViewModel.enumSMSDistributionItemType.PostalArea).Select(m => m.Id).Contains(item.PostalArea.PostalAreaId) || selectedItems.Where(m => m.ItemType == SMSDistributionViewModel.enumSMSDistributionItemType.PostalCode).Select(m => m.Id).Contains(item.PostalCodeId) ) select item.PostalCodeName).ToArray(); Client[] clients = null; if (clientId.HasValue && clientId.Value > 0) { clients = new Client[] { db.Clients.FirstOrDefault(m => m.ClientId == clientId.Value) }; } else { clients = await db.Clients.Where(m => m.Active).ToArrayAsync(); clients = (from item in clients where codes.Contains(item.DeliveryAddress.Code) && selectedClientTypes.Contains(item.ClientTypeID) select item).ToArray(); } return clients; }
public ReportDownlineStatementViewModel(Client client) { this.Name = string.Format("{0} {1}", client.ClientInitials, client.ClientSurname); this.ClientId = client.ClientId; }
public ReportDownlineStatementResellerViewModel(Client client, int level, string cell, string email, Client parent) :base( client, level, cell, email, parent) { }
public ReportDownlineStatementChildViewModel(Client client, int level, string cell, string email, Client parent) { Level = level; Name = string.Format("{0} {1}", client.ClientInitials, client.ClientSurname); ClientId = client.ClientId; ClientType = client.ClientType.ClientTypeName; Status = client.Active ? "Active" : "Inactive"; DateJoined = client.iDate.ToString(Generic.LongDateNoTime); CellphoneNo = cell; EmailAddress = email; if (parent != null) { IntroducerName = string.Format("{0} {1}", parent.ClientInitials, parent.ClientSurname); ; IntroducerClientId = parent.ClientId; } }