private void btnFilter_Click(object sender, EventArgs e) { var filterList = new List <FilterDetails>(); foreach (Control control in panelFilters.Controls) { if (control is TextBox) { if (!string.IsNullOrEmpty(control.Text)) { var thisFilter = new FilterDetails { ColumnName = control.Tag.ToString(), FilterValue = control.Text }; filterList.Add(thisFilter); } } } BindAircraftGrid(filterList); }
// GET: CardStat public ActionResult Index(int?page, FilterDetails filters) { if (!Utils.Utils.GetPermission("CARDS_STATUS_SHOW")) { return(new RedirectResult("/Main")); } DateTime dateFrom = DateTime.Now; DateTime dateTo = DateTime.Now;; if (filters.date_from != null && filters.date_to != null) { dateFrom = Utils.Utils.GetRequestDate(filters.date_from, true); dateTo = Utils.Utils.GetRequestDate(filters.date_to, false); } else { dateFrom = Utils.Utils.GetRequestDate(Request["dt_from"], true); dateTo = Utils.Utils.GetRequestDate(Request["dt_to"], false); } List <CardStat> cardstats = new List <CardStat>(); List <Card> cards; List <Logging> _loggings; List <User> _users; List <SellerObject> _sellers; using (DataContext _db = new DataContext()) { //var __cards = _db.Cards.Include("Customer").Include("Subscribtions.SubscriptionPackages.Package").Where(c => c.CardStatus != CardStatus.Canceled).ToList(); //__cards = __cards.Where(c => c.Subscribtions.Where(s => s.Status == true).FirstOrDefault().SubscriptionPackages.Where(s => s.PackageId == 304085).ToList().Count > 0).ToList(); //List<Customer> customers = new List<Customer>(); //CASSocket _socket = new CASSocket() { IP = "192.168.4.143", Port = 8000 }; //_socket.Connect(); //foreach (var item in __cards) //{ // if (customers.Exists(c => c.Id == item.Customer.Id)) // { // } // else // { // customers.Add(item.Customer); // } // if (!_socket.SendOSDRequest(int.Parse(item.CardNum), "თუ გსურთ პაკეტის გაუმჯობესება და ყველა კოდირებული არხის ჩართვა, დაგვიკავშირდით ნომერზე: 032 205 12 12", DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc), 0)) // { // return Json(0); // } //} //_socket.Disconnect(); //foreach (var item in customers) //{ // Task.Run(async () => { await Utils.Utils.sendMessage(item.Phone1, "Tu gsurt paketis gaumjobeseba da yvela kodirebuli arxis chartva, dagvikavshirdit nomerze: 032 205 12 12"); }).Wait(); //} cards = _db.Cards.Include("Customer").Include("Subscribtions.SubscriptionPackages.Package").OrderByDescending(c => c.Id).Where(c => c.CardStatus != CardStatus.Canceled /*&& c.Tdate >= dateFrom && c.Tdate <= dateTo*/).ToList(); foreach (var item in cards) { item.CardLogs = _db.CardLogs.Where(l => l.CardId == item.Id).ToList(); } //cards = cards.Where(c => (c.CardLogs.Where(l => l.Date < dateFrom).Count() > 0 && c.CardLogs.Where(l => l.Date < dateFrom).Last().Status == (CardLogStatus)filters.logStatus) || c.CardLogs.Where(l => l.Date >= dateFrom && l.Date <= dateTo).Any(l => l.Status == CardLogStatus.Open)).ToList(); //int count = //cards.Where(c => c.Subscribtions.Where(s => s.Status == true).FirstOrDefault().SubscriptionPackages.Any(s => s.Package.Id == 304085) && c.Tdate >= dateFrom && c.Tdate <= dateTo).ToList().ForEach(c => c.Subscribtions.Where(s => s.Status == true).FirstOrDefault().SubscriptionPackages.Where(s => s.Package.Id == 304085).FirstOrDefault().Package = _db.Packages.Where(p=>p.Id == 304084).FirstOrDefault()); //cards = _db.Cards.Include("Customer").Include("Subscribtions.SubscriptionPackages.Package").OrderByDescending(c => c.Id).ToList(); _loggings = _db.Loggings.Where(l => l.Mode == LogMode.Add && l.Type == LogType.Card).ToList(); _users = _db.Users.Include("UserType").ToList(); _sellers = _db.Seller.ToList(); if (filters != null) { if (filters.abonent != null) { if (filters.abonent_select != null) { switch (filters.abonent) { case -1: { } break; case 0: { cards = cards.Where(c => c.City.Contains(filters.abonent_select)).ToList(); } break; case 1: { if (cards.Any(c => c.Village != null)) { cards = cards.Where(c => c.Village != null && (c.Village.Contains(filters.abonent_select) || c.Village == filters.abonent_select)).ToList(); } else { cards = new List <Card>(); } } break; case 2: { if (filters.abonent_select != "-1") { cards = cards.Where(c => c.Region != null && c.Region.Contains(filters.abonent_select)).ToList(); } } break; case 3: { cards = cards.Where(c => c.Customer.Name.Contains(filters.abonent_select.Split(' ').First()) || c.Customer.LastName.Contains(filters.abonent_select.Split(' ').Last())).ToList(); } break; case 4: { cards = cards.Where(c => c.Customer.Code.Contains(filters.abonent_select)).ToList(); } break; case 5: { cards = cards.Where(c => c.Customer.Phone1.Contains(filters.abonent_select)).ToList(); } break; default: break; } } } if (filters.abonentType != null) { switch (filters.abonentType) { case -1: { } break; default: cards = cards.Where(c => c.Customer.Type == (CustomerType)filters.abonentType).ToList(); break; } } if (filters.abonentStatus != null) { switch (filters.abonentStatus) { case -1: { } break; default: cards = cards.Where(c => c.CardStatus == (CardStatus)filters.abonentStatus).ToList(); break; } } if (filters.logStatus != null) { switch (filters.logStatus) { case -1: { } break; default: cards = cards.Where(c => (c.CardLogs.Where(l => l.Date < dateFrom).Count() > 0 && c.CardLogs.Where(l => l.Date < dateFrom).Last().Status == (CardLogStatus)filters.logStatus) || c.CardLogs.Where(l => l.Date >= dateFrom && l.Date <= dateTo).Any(l => l.Status == (CardLogStatus)filters.logStatus)).ToList(); break; } } if (filters.package != null) { switch (filters.package) { case -1: { } break; default: { //List<Card> _cards = new List<Card>(cards); //cards = cards.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Id == filters.package)).ToList(); List <Card> curr_package = null; if (cards.Where(c => c.Subscribtions.Any(s => s.Tdate >= dateFrom && s.Tdate <= dateTo)).ToList().Count() > 0) { curr_package = new List <Card>(cards.Where(c => c.Subscribtions.Any(s => s.Tdate >= dateFrom && s.Tdate <= dateTo)).ToList()); if (curr_package.Count > 0) { //cards = cards.Where(c => c.Subscribtions.Any(s => s.Tdate >= dateFrom && s.Tdate <= dateTo)).ToList(); curr_package = curr_package.Where(c => (c.Subscribtions.Where(s => s.Tdate >= dateFrom && s.Tdate <= dateTo).First().SubscriptionPackages.Any(sb => sb.PackageId == filters.package) /*|| c.Subscribtions.Where(s => s.Tdate < dateFrom).Last().SubscriptionPackages.Any(sb => sb.PackageId == filters.package)*/)).ToList(); } } else { curr_package = new List <Card>(); } cards = cards.Where(c => c.Subscribtions.Any(s => s.Tdate < dateFrom)).ToList(); cards = cards.Where(c => (c.Subscribtions.Last().SubscriptionPackages.Any(sb => sb.PackageId == filters.package) /*|| c.Subscribtions.Where(s => s.Tdate < dateFrom).Last().SubscriptionPackages.Any(sb => sb.PackageId == filters.package)*/)).ToList(); cards = cards.Except(curr_package).ToList(); cards.AddRange(curr_package); //cards = cards.Except(cards).ToList(); } break; } } if (filters.saleType != null) { switch (filters.saleType) { case -1: { } break; case 0: { int[] userids = _users.Where(u => u.Type == 18).Select(u => u.Id).ToArray(); cards = cards.Where(c => userids.Contains(c.UserId)).ToList(); } break; case 1: { int[] userids = _users.Where(u => u.Type == 4).Select(u => u.Id).ToArray(); cards = cards.Where(c => userids.Contains(c.UserId)).ToList(); } break; default: break; } } if (filters.region != null) { switch (filters.region) { case "-1": { } break; default: { int[] sellerids = _sellers.Where(s => s.region != null && s.region.Contains(filters.region)).Select(s => s.ID).ToArray(); int[] user_ids = _users.Where(u => u.@object != null && sellerids.Contains((int)u.@object)).Select(u => u.Id).ToArray(); cards = cards.Where(c => user_ids.Contains(c.UserId)).ToList(); } break; } } } foreach (var card in cards) { //if (card.Customer.Type == CustomerType.Technic) // continue; //if (card.Tdate >= dateFrom && card.Tdate <= dateTo) { cardstats.Add(new CardStat() { card = card, }); } } int rownum = cardstats.Count; foreach (var cardstat in cardstats) { cardstat.rowNumber = rownum--; cardstat.customer = cardstat.card.Customer; cardstat.subscribe = cardstat.card.Subscribtions.Where(s => s.Status == true).First(); // _db.Subscribtions.Where(s => s.CardId == cardstat.card.Id && s.Status == true).First(); cardstat.subscribePackages = cardstat.subscribe.SubscriptionPackages.ToList(); // _db.SubscriptionPackages.Where(s => s.SubscriptionId == cardstat.subscribe.Id).ToList(); cardstat.logging = _loggings.Where(l => (l.TypeId == cardstat.card.Id || l.TypeValue == cardstat.card.AbonentNum)).FirstOrDefault(); cardstat.user = _users.Where(u => u.Id == cardstat.logging.UserId).First(); cardstat.seller = _sellers.Where(s => s.ID == cardstat.user.@object).FirstOrDefault(); cardstat.userType = cardstat.user.UserType; // _db.UserTypes.Where(u => u.Id == cardstat.user.Type).FirstOrDefault(); //int[] arr = cardstat.subscribePackages.Select(s => s.PackageId).ToArray(); cardstat.packages = cardstat.subscribePackages.Select(s => s.Package).ToList(); // _db.Packages.Where(p => arr.Contains(p.Id)).ToList(); } } var AbonentValue = filters.abonent == -1 ? "ყველა" : filters.abonent == 0 ? "ქალაქი" : filters.abonent == 1 ? "სოფელი" : filters.abonent == 2 ? "რეგიონი" : filters.abonent == 3 ? "სახელი" : filters.abonent == 4 ? "პ/ნ" : filters.abonent == 5 ? "ტელეფონი" : "No"; var AbonentType = filters.abonentType == -1 ? "ყველა" : filters.abonentType == 0 ? "ფიზიკური" : filters.abonentType == 1 ? "იურიდიული" : filters.abonentType == 2 ? "ტექნიკური" : "No"; var AbonentStatus = filters.abonentStatus == -1 ? "ყველა" : filters.abonentStatus == 0 ? "აქტიური" : filters.abonentStatus == 1 ? "გათიშული" : filters.abonentStatus == 2 ? "დაპაუზებული" : filters.abonentStatus == 3 ? "მონტაჟი" : filters.abonentStatus == 4 ? "გაუქმებული" : filters.abonentStatus == 5 ? "დაბლოკილი" : filters.abonentStatus == 6 ? "უფასო დღეები" : "No"; var AbonentPackage = filters.package == -1 ? "ყველა" : filters.package == 0 ? "თანამშრომელი" : filters.package == 1 ? "სტანდარტი" : filters.package == 2 ? "სტანდარტი+ქირა" : filters.package == 3 ? "აქცია 8 აქტივაცია" : filters.package == 4 ? "აქცია 8" : "No"; var AbonentSale = filters.saleType == -1 ? "ყველა" : filters.saleType == 0 ? "დილერი" : filters.saleType == 1 ? "გარე გაყიდვები" : "No"; var AbonentRegion = filters.region == null ? "ყველა" : filters.region == "-1" ? "ყველა" : filters.region; // == "0" ? "სამეგრელო - ზემო სვანეთი" : filters.region == "1" ? "აფხაზეთის ა.რ." : filters.region == "2" ? "აჭარის ა.რ." : filters.region == "3" ? "გურია" : filters.region == "4" ? "თბილისი" : filters.region == "5" ? "იმერეთი" : filters.region == "6" ? "კახეთი" : filters.region == "7" ? "მცხეთა-მთიანეთი" : filters.region == "8" ? "რაჭა-ლეჩხუმი და ქვემო სვანეთი" : filters.region == "9" ? "სამცხე-ჯავახეთი" : filters.region == "10" ? "ქვემო ქართლი" : filters.region == "11" ? "შიდა ქართლი" : "No"; ViewBag.AbonentFilter = new string[] { dateFrom.ToString(), dateTo.ToString(), AbonentValue, AbonentType, AbonentStatus, AbonentPackage, AbonentSale, AbonentRegion }; return(View(cardstats.ToPagedList(page ?? 1, 20))); }
public ItemDetails[] DownloadItemDetails(string strContainer, ref int nStatusCode, string strFilterName) { ItemDetails[] resultItemDetails = null; // If there is no filter, then handle pagination. if ((null == strFilterName) || (0 == strFilterName.Length)) { int newTotal = 0; bool continuePaging = true; ItemDetails[] itemDetails; FilterDetails filterDetails = new FilterDetails(); filterDetails.szFieldValue = strFilterName; filterDetails.nStartPosition = 0; while (continuePaging) { itemDetails = fileCloud.DownloadItemDetails(strContainer, ref nStatusCode, filterDetails); if (nStatusCode != ResponseCode.DOWNLOADITEMDETAILS) { for (int n = 0; n < CloudService.NUMBER_OF_RETRIES; n++) { itemDetails = fileCloud.DownloadItemDetails(strContainer, ref nStatusCode, filterDetails); if ((null != itemDetails) && (nStatusCode == ResponseCode.DOWNLOADITEMDETAILS)) { // Update the total count member of item 0 since it is the // only item the calling code uses to get/check the count. newTotal = 0; if (null == resultItemDetails) resultItemDetails = itemDetails; else { newTotal = resultItemDetails[0].nTotalItem + itemDetails[0].nTotalItem; resultItemDetails = resultItemDetails.Concat(itemDetails).ToArray(); resultItemDetails[0].nTotalItem = newTotal; } if (0 == itemDetails[0].nTotalItem) continuePaging = false; } if (n >= CloudService.NUMBER_OF_RETRIES) continuePaging = false; } } else { if (null != itemDetails) { // Update the total count member of item 0 since it is the // only item the calling code uses to get/check the count. newTotal = 0; if (null == resultItemDetails) resultItemDetails = itemDetails; else { newTotal = resultItemDetails[0].nTotalItem + itemDetails[0].nTotalItem; resultItemDetails = resultItemDetails.Concat(itemDetails).ToArray(); resultItemDetails[0].nTotalItem = newTotal; } if (0 == itemDetails[0].nTotalItem) continuePaging = false; } } if (null == itemDetails) { // Nothing was there so there are no more pages. continuePaging = false; } else { // Increment the count and ask for another possible page. filterDetails.nStartPosition += itemDetails[0].nTotalItem; } } } else { FilterDetails filterDetails = new FilterDetails(); filterDetails.szFieldValue = strFilterName; filterDetails.nStartPosition = 0; resultItemDetails = fileCloud.DownloadItemDetails(strContainer, ref nStatusCode, filterDetails); if (nStatusCode != ResponseCode.DOWNLOADITEMDETAILS) { for (int n = 0; n < CloudService.NUMBER_OF_RETRIES; n++) { resultItemDetails = fileCloud.DownloadItemDetails(strContainer, ref nStatusCode, filterDetails); if (nStatusCode == ResponseCode.DOWNLOADITEMDETAILS) return resultItemDetails; } } } return resultItemDetails; }