コード例 #1
0
        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;
        }
コード例 #2
0
 public ReportDownlineStatementViewModel(Client client)
 {
     this.Name = string.Format("{0} {1}", client.ClientInitials, client.ClientSurname);
     this.ClientId = client.ClientId;
 }
コード例 #3
0
        public ReportDownlineStatementResellerViewModel(Client client, int level, string cell, string email, Client parent)
            :base( client,  level,  cell,  email,  parent)
        {

        }
コード例 #4
0
 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;
     }
 }