Пример #1
0
 public List <BaoHanhInfo> GetBaoHanh()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableBaoHanh.MaKH, EqualityOperator.Equal, this.MaKH)
     };
     return(BaoHanhDAO.GetTop(filters, null, -1));
 }
Пример #2
0
 public List <ChiTietNhapHangInfo> GetChiTietNhapHang()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableChiTietNhapHang.MaPhieuNhap, EqualityOperator.Equal, this.MaPhieuNhap)
     };
     return(ChiTietNhapHangDAO.GetTop(filters, null, -1));
 }
 public List <RoleInfo> GetRole()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableRole.InformationID, EqualityOperator.Equal, this.ID)
     };
     return(RoleDAO.GetTop(filters, null, -1));
 }
Пример #4
0
        public IQueryable <PhieuThuChi> GetValidInOutCommingNotes(string drugStoreCode, out IBaseRepository <PhieuThuChi> repository,
                                                                  FilterObject filter = null, int[] validStatuses = null)
        {
            repository = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuThuChi> >();
            var validItems = repository.GetAll().Where(r => r.NhaThuoc_MaNhaThuoc == drugStoreCode);

            if (filter != null)
            {
                if (filter.FromDate.HasValue)
                {
                    validItems = validItems.Where(i => i.NgayTao >= filter.FromDate);
                }
                if (filter.ToDate.HasValue)
                {
                    validItems = validItems.Where(i => i.NgayTao <= filter.ToDate);
                }
            }

            if (validStatuses != null && validStatuses.Any())
            {
                validItems = validItems.Where(i => validStatuses.Contains(i.LoaiPhieu));
            }

            return(validItems);
        }
Пример #5
0
        private void ApplyCurrentStaffFilter(FilterObject filter)
        {
            int?currentStaffId = null;

            if (User.IsInRole(MedMan.App_Start.Constants.Security.Roles.User.Value))
            {
                currentStaffId = WebSecurity.GetCurrentUserId;
            }

            if (currentStaffId.HasValue)
            {
                if (filter.StaffIds == null)
                {
                    filter.StaffIds = new int[] { currentStaffId.Value };
                }
                else
                {
                    if (!filter.StaffIds.Contains(currentStaffId.Value))
                    {
                        var staffList = filter.StaffIds.ToList();
                        staffList.Add(currentStaffId.Value);
                        filter.StaffIds = staffList.ToArray();
                    }
                }
            }
        }
Пример #6
0
        public IQueryable <UserProfile> GetValidUsers(string drugStoreCode,
                                                      FilterObject filter, out IBaseRepository <UserProfile> repository)
        {
            var staffRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, NhanVienNhaThuoc> >();

            repository = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, UserProfile> >();
            var drugStoreCodes = GetDrugStoreCodes(drugStoreCode);

            var validItems = (from s in staffRepo.GetAll()
                              join u in repository.GetAll() on s.User_UserId equals u.UserId into suGroup
                              from su in suGroup.DefaultIfEmpty()
                              where drugStoreCodes.Contains(s.NhaThuoc_MaNhaThuoc)
                              select su).Distinct();

            if (filter != null)
            {
                if (filter.HasStaffIds)
                {
                    validItems = validItems.Where(i => filter.StaffIds.Contains(i.UserId));
                }
                if (filter.HasStaffNames)
                {
                    filter.StaffNames.ForEach(name =>
                    {
                        validItems = validItems.Where(i => i.UserName.Contains(name));
                    });
                }
            }

            return(validItems);
        }
Пример #7
0
 public List <ChiTietHoaDonInfo> GetChiTietHoaDon()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableChiTietHoaDon.MaHH, EqualityOperator.Equal, this.MaHH)
     };
     return(ChiTietHoaDonDAO.GetTop(filters, null, -1));
 }
Пример #8
0
 public List <BangGiaInfo> GetBangGia()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableBangGia.MaHH, EqualityOperator.Equal, this.MaHH)
     };
     return(BangGiaDAO.GetTop(filters, null, -1));
 }
Пример #9
0
        private FilterObjectWrapper GetFilterObjects(IList <string> filterKeys, string filterLogic)
        {
            var list = new List <FilterObject>();

            var fieldKeys = filterKeys.Where(x => x.Contains("field"));

            foreach (int index in GetIndexArr(fieldKeys))
            {
                var group = filterKeys.Where(x => GetFilterIndex(x) == index && !x.Contains("logic")).ToList();

                var filterObject = new FilterObject
                {
                    Field1    = GetQueryStringValue(group[0]),
                    Operator1 = GetQueryStringValue(group[1]),
                    Value1    = GetQueryStringValue(group[2])
                };

                if (group.Count == 6)
                {
                    filterObject.Field2    = GetQueryStringValue(group[3]);
                    filterObject.Operator2 = GetQueryStringValue(group[4]);
                    filterObject.Value2    = GetQueryStringValue(group[5]);
                    filterObject.Logic     = GetValue(filterKeys, index, "logic");
                }

                list.Add(filterObject);
            }

            return(new FilterObjectWrapper(filterLogic, list));
        }
Пример #10
0
 public List <TraHangInfo> GetTraHang()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableTraHang.MaNV, EqualityOperator.Equal, this.MaNV)
     };
     return(TraHangDAO.GetTop(filters, null, -1));
 }
Пример #11
0
 public List <HoaDonInfo> GetHoaDon()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableHoaDon.MaNV, EqualityOperator.Equal, this.MaNV)
     };
     return(HoaDonDAO.GetTop(filters, null, -1));
 }
Пример #12
0
        public JsonResult CustomizeReport(DateTime fromDate, DateTime toDate)
        {
            IResponseData <CustomizeReportItemResponse> response = new ResponseData <CustomizeReportItemResponse>();

            try
            {
                var filter = new FilterObject()
                {
                    FromDate = fromDate.AbsoluteStart(),
                    ToDate   = toDate.AbsoluteEnd()
                };

                var currentDrugStoreCode   = WebSessionManager.Instance.CurrentDrugStoreCode;
                var customizeReportService = IoC.Container.Resolve <ICustomizeReportService>();
                var data = customizeReportService.GetCustomizeReportItems(currentDrugStoreCode, filter);
                response.SetData(data);
            }
            catch (ValidationException ex)
            {
                response.SetErrors(ex.Errors);
                response.SetStatus(HttpStatusCode.PreconditionFailed);
            }

            return(Json(response));
        }
Пример #13
0
 public List <HangHoaInfo> GetHangHoa()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableHangHoa.MaLoai, EqualityOperator.Equal, this.MaLoai)
     };
     return(HangHoaDAO.GetTop(filters, null, -1));
 }
Пример #14
0
        public IQueryable <PhieuNhap> GetValidReceiptNotes(string drugStoreCode, out IBaseRepository <PhieuNhap> repository,
                                                           FilterObject filter = null, int[] validStatuses = null)
        {
            repository = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuNhap> >();
            var validItems = repository.GetAll().Where(r =>
                                                       r.NhaThuoc_MaNhaThuoc == drugStoreCode && !r.Xoa && r.NgayNhap.HasValue);

            if (filter != null)
            {
                if (filter.FromDate.HasValue)
                {
                    validItems = validItems.Where(i => i.NgayNhap >= filter.FromDate);
                }
                if (filter.ToDate.HasValue)
                {
                    validItems = validItems.Where(i => i.NgayNhap <= filter.ToDate);
                }
            }
            if (validStatuses != null && validStatuses.Any())
            {
                validItems = validItems.Where(i => validStatuses.Contains(i.LoaiXuatNhap_MaLoaiXuatNhap.Value));
            }

            return(validItems);
        }
Пример #15
0
        public IQueryable <PhieuThuChi> GetValidInOutCommingNotes(string drugStoreCode,
                                                                  FilterObject filter = null, int[] validStatuses = null)
        {
            IBaseRepository <PhieuThuChi> repository = null;

            return(GetValidInOutCommingNotes(drugStoreCode, out repository, filter, validStatuses));
        }
Пример #16
0
        public IQueryable <KhachHang> GetValidCustomers(string drugStoreCode,
                                                        FilterObject filter, out IBaseRepository <KhachHang> repository)
        {
            repository = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, KhachHang> >();
            var validItems = repository.GetAll().Where(r =>
                                                       r.MaNhaThuoc == drugStoreCode);

            if (filter != null)
            {
                if (filter.HasCustomerGroupIds)
                {
                    validItems = validItems.Where(i => filter.CustomerGroupIds.Contains(i.MaNhomKhachHang));
                }
                if (filter.HasCustomerIds)
                {
                    validItems = validItems.Where(i => filter.CustomerIds.Contains(i.MaKhachHang));
                }
                if (filter.HasCustomerNames)
                {
                    filter.CustomerNames.ForEach(name =>
                    {
                        validItems = validItems.Where(i => i.TenKhachHang.Contains(name));
                    });
                }
            }

            return(validItems);
        }
Пример #17
0
        public double GetDeliveryRevenueTotal(string drugStoreCode, FilterObject filter = null)
        {
            var deliveryStatuses = new int[] { (int)NoteInOutType.Delivery };
            var deliveryItems    = GetDeliveryNoteItems(drugStoreCode, filter, deliveryStatuses);

            return(deliveryItems.Sum(i => i.Revenue));
        }
Пример #18
0
        public IQueryable <PhieuXuat> GetValidDeliveryNotes(string drugStoreCode,
                                                            FilterObject filter = null, int[] validStatuses = null)
        {
            IBaseRepository <PhieuXuat> repository = null;

            return(GetValidDeliveryNotes(drugStoreCode, out repository, filter, validStatuses));
        }
Пример #19
0
 public List <NhanVienInfo> GetNhanVien()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableNhanVien.TenTaiKhoan, EqualityOperator.Equal, this.TenTaiKhoan)
     };
     return(NhanVienDAO.GetTop(filters, null, -1));
 }
Пример #20
0
        private FilterObject GetFilterObjectFromCookie()
        {
            var result = new FilterObject();

            var cookieKey = GetCookieKeyForFilterForExport();
            var cookie    = Request.Cookies[HttpUtility.UrlEncode(cookieKey)];

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                var anchor = cookie.Value;

                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(anchor)));

                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value <string>("params"))));

                        switch (filterObj.Value <string>("id"))
                        {
                        case "sorter":
                            result.SortBy    = filterParam.Value <string>("id");
                            result.SortOrder = filterParam.Value <string>("sortOrder");
                            break;

                        case "text":
                            result.FilterValue = filterParam.Value <string>("value");
                            break;

                        case "closed":
                        case "opened":
                            result.IsClosed = filterParam.Value <bool>("value");
                            break;

                        case "tags":
                            result.Tags = new List <string>();
                            result.Tags = filterParam.Value <JArray>("value").ToList().ConvertAll(
                                n => n.ToString());
                            break;
                        }
                    }
                }
                catch (Exception)
                {
                    result.SortBy    = "title";
                    result.SortOrder = "ascending";
                }
            }
            else
            {
                result.SortBy    = "title";
                result.SortOrder = "ascending";
            }
            return(result);
        }
Пример #21
0
        public Dictionary <int, double> GetLastDrugPriceOnDeliveryNotes(string drugStoreCode, params int[] drugIds)
        {
            var filter = new FilterObject()
            {
                DrugIds = drugIds
            };

            //
            var deliveryItems = _dataFilterService.GetValidDeliveryItems(drugStoreCode, filter, new int[] { (int)NoteInOutType.Delivery })
                                .Where(i => i.RetailPrice > 0).Select(i => new { i.Thuoc_ThuocId, i.PreNoteItemDate, i.RetailPrice }).ToList();
            var lastPrices = deliveryItems.GroupBy(i => i.Thuoc_ThuocId).Select(i =>
                                                                                new { DrugId = i.Key, Price = i.OrderByDescending(ii => ii.PreNoteItemDate).FirstOrDefault().RetailPrice }).ToList();

            //deliveryItems.ToList().Groupby();
            if (lastPrices.Count > 0)
            {
                //Trả về giá bán gần nhất
                return(lastPrices.ToDictionary(i => i.DrugId.Value, i => i.Price));
            }
            else
            {
                //Trả về giá bán lẻ trên thuốc
                IBaseRepository <Thuoc> drugRepo = null;
                var drugs = _dataFilterService.GetValidDrugs(drugStoreCode, filter, false, out drugRepo).ToList();

                var lastPriceOnDrugs = drugs.ToDictionary(i => i.ThuocId, i => (double)i.GiaBanLe);
                return(lastPriceOnDrugs);
            }
        }
Пример #22
0
 public List <RoleAccountInfo> GetRoleAccount()
 {
     FilterObject[] filters = new FilterObject[] {
         new FilterObject(TableRoleAccount.AccountID, EqualityOperator.Equal, this.ID)
     };
     return(RoleAccountDAO.GetTop(filters, null, -1));
 }
Пример #23
0
        public IQueryable <Thuoc> GetValidDrugs(string drugStoreCode, FilterObject filter, bool onlyActiveDrug,
                                                out IBaseRepository <Thuoc> repository)
        {
            repository = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, Thuoc> >();
            IBaseRepository <NhaThuoc> drugStoreRepo = null;
            var drugStores = GetValidDrugStores(out drugStoreRepo);
            var validItems = (from dr in repository.GetAll()
                              join ds in drugStores on dr.NhaThuoc_MaNhaThuoc equals ds.MaNhaThuocCha
                              where ds.MaNhaThuoc == drugStoreCode &&
                              (!onlyActiveDrug || (onlyActiveDrug && dr.RecordStatusID == (byte)RecordStatus.Activated))
                              select dr);

            if (string.IsNullOrEmpty(drugStoreCode))
            {
                validItems = (from dr in validItems
                              join ds in drugStores on dr.NhaThuoc_MaNhaThuoc equals ds.MaNhaThuoc
                              select dr);
            }
            if (filter != null)
            {
                if (filter.HasDrugIds)
                {
                    validItems = validItems.Where(i => filter.DrugIds.Contains(i.ThuocId));
                }
                if (filter.HasDrugNames)
                {
                    filter.DrugNames.ForEach(name =>
                    {
                        validItems = validItems.Where(i => i.TenThuoc.Contains(name));
                    });
                }
                if (filter.HasDrugGroupIds)
                {
                    var drugGroupIds = filter.DrugGroupIds.ToList();
                    var consultDrugs = filter.DrugGroupIds.Contains(MedConstants.ConsultDrugGroup);
                    if (consultDrugs)
                    {
                        drugGroupIds = drugGroupIds.Except(new int[] { MedConstants.ConsultDrugGroup }).ToList();
                    }
                    if (drugGroupIds.Any())
                    {
                        if (consultDrugs)
                        {
                            validItems = validItems.Where(i => drugGroupIds.Contains(i.NhomThuoc_MaNhomThuoc) || i.HangTuVan == true);
                        }
                        else
                        {
                            validItems = validItems.Where(i => drugGroupIds.Contains(i.NhomThuoc_MaNhomThuoc));
                        }
                    }
                    else if (consultDrugs)
                    {
                        validItems = validItems.Where(i => i.HangTuVan == true);
                    }
                }
            }

            return(validItems);
        }
Пример #24
0
        public SynthesisReportResponse GetSynthesisReportData(string drugStoreCode, FilterObject filter)
        {
            GenerateReportData(drugStoreCode);
            var result = new SynthesisReportResponse();

            using (var trans = TransactionScopeHelper.CreateReadUncommitted())
            {
                var deliveryService     = IoC.Container.Resolve <IDeliveryNoteService>();
                var rpService           = IoC.Container.Resolve <IReportService>();
                var warehouseSysnthesis = rpService.GetDrugWarehouseSyntheises(drugStoreCode, filter);
                var inOutCommingSummary = rpService.GetInOutCommingValueSumary(drugStoreCode, filter);
                // I.1. Tổng giá trị nhập kho
                result.ReceiptValueTotal = warehouseSysnthesis.Values.Sum(i => i.ReceiptInventoryValueInPeriod);

                // I.2. Tổng giá trị xuất kho
                result.DeliveryValueTotal = warehouseSysnthesis.Values.Sum(i => i.DeliveryInventoryValueInPeriod);

                // I.3. Tổng giá trị kho hàng
                result.WarehousingValueTotal = warehouseSysnthesis.Values.Sum(i => i.LastInventoryValue);

                // I.4. Tổng nợ khách hàng
                // I.4.1 Nợ bán hàng
                result.DeliveryDueTotal = inOutCommingSummary.DeliveryDueTotal;
                // I.4.2 Các khoản nợ khác
                result.DeliveryOtherDueTotal = inOutCommingSummary.DeliveryOtherDueTotal;

                // I.5. Tổng nợ nhà cung cấp
                // I.5.1  Nợ mua hàng
                result.ReceiptDueTotal = inOutCommingSummary.ReceiptDueTotal;
                // I.5.2 Các khoản nợ khác
                result.ReceiptOtherDueTotal = inOutCommingSummary.ReceiptOtherDueTotal;



                // II.1. Tổng thu
                // II.1.1. Bán hàng hóa/dịch vụ
                result.DeliveryIncomingTotal = inOutCommingSummary.DeliveryIncomingTotal;
                // II.1.2. Các nguồn thu khác
                result.OtherIncommingTotal = inOutCommingSummary.OtherIncommingTotal;

                // II.2. Tổng chi
                // II.2.1.  Mua hàng hóa/ dịch vụ
                result.ReceiptOutcomingTotal = inOutCommingSummary.ReceiptOutcomingTotal; // TODO:
                                                                                          // II.2.2.  Chi phí kinh doanh
                result.BusinessCostsTotal = inOutCommingSummary.BusinessCostsTotal;
                // II.2.3.  Các khoản chi khác
                result.OtherOutcomingTotal = inOutCommingSummary.OtherOutcomingTotal;

                // II.3. Lãi gộp == II.3.1 + II.1.2
                // II.3.1. Lợi nhuận bán thuốc
                result.DeliveryRevenueTotal = deliveryService.GetDeliveryRevenueTotal(drugStoreCode, filter);
                trans.Complete();
            }

            return(result);
        }
Пример #25
0
        public JsonResult GetValidationSettingsForProduct(int?id, FilterObject filter)
        {
            var result = _validationSettingService.GetValidationSettingsForProduct(id, filter);

            var jsonResult = Json(result, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
Пример #26
0
        internal void UpdateFilter(string arg)
        {
            if (arg != "Function")
            {
                return;
            }
            ICollectionView view = CollectionViewSource.GetDefaultView(ServerList.ItemsSource);

            view.Filter = (o) => FilterObject.Function((FakeServer)o);
        }
Пример #27
0
        public JsonResult GetDataForChart(int productId, FilterObject filter)
        {
            var result = _arrivalMessageRepository.GetChartDataForProduct(productId, filter);

            var jsonResult = Json(result, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
Пример #28
0
        public JsonResult GetCountOfArrivalMessages(int productId, FilterObject filter)
        {
            var result = _arrivalMessageService.GetCountOfArrivalMessages(productId, filter);

            var jsonResult = Json(result, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
        private FilterObject GetFilterObjectFromCookie()
        {
            var result = new FilterObject();

            var cookieKey = GetCookieKeyForFilterForExport();

            var cookie = Request.Cookies[System.Web.HttpUtility.UrlEncode(cookieKey)];

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                var anchor = cookie.Value;
                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(anchor)));

                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value <string>("params"))));

                        switch (filterObj.Value <string>("id"))
                        {
                        case "sorter":
                            result.SortBy    = filterParam.Value <string>("id");
                            result.SortOrder = filterParam.Value <string>("sortOrder");
                            break;

                        case "text":
                            result.FilterValue = filterParam.Value <string>("value");
                            break;

                        case "withInventoryStock":
                        case "withoutInventoryStock":
                            result.InventoryStock = filterParam.Value <bool>("value");
                            break;
                        }
                    }
                }
                catch (Exception)
                {
                    result.SortBy    = "name";
                    result.SortOrder = "ascending";
                }
            }
            else
            {
                result.SortBy    = "name";
                result.SortOrder = "ascending";
            }

            return(result);
        }
Пример #30
0
        public int GetCountOfFilteredItemsByProductId(int productId, FilterObject filter)
        {
            if (filter == null)
            {
                filter = new FilterObject();
            }

            using (var model = new gb_dvsstagingEntities())
            {
                if (filter.Event == null)
                {
                    filter.Event = new FilterValue();
                }
                if (filter.Country == null)
                {
                    filter.Country = new FilterValue();
                }
                if (filter.EventStatus == null)
                {
                    filter.EventStatus = new FilterValue();
                }
                if (filter.League == null)
                {
                    filter.League = new FilterValue();
                }
                if (filter.Market == null)
                {
                    filter.Market = new FilterValue();
                }
                if (filter.Provider == null)
                {
                    filter.Provider = new FilterValue();
                }
                if (filter.Sport == null)
                {
                    filter.Sport = new FilterValue();
                }

                model.Database.CommandTimeout = CONNECTION_TIMEOUT;

                var count = model.dvs_arrivalmessage.Count(result => result.ProductId == productId &&
                                                           result.IsProcessed && result.IsActive &&
                                                           (filter.StartDate == null || result.CreatedOn >= filter.StartDate) &&
                                                           (filter.EndDate == null || result.CreatedOn <= filter.EndDate) &&
                                                           (!filter.Sport.ExternalId.HasValue || result.Sports.Contains(",") && result.Sports.Contains("," + filter.Sport.ExternalId) || result.Sports.Contains(filter.Sport.ExternalId.ToString())) &&
                                                           (!filter.Event.ExternalId.HasValue || result.Events.Contains(",") && result.Events.Contains("," + filter.Event.ExternalId) || result.Events.Contains(filter.Event.ExternalId.ToString())) &&
                                                           (!filter.Country.ExternalId.HasValue || result.Locations.Contains(",") && result.Locations.Contains("," + filter.Country.ExternalId) || result.Locations.Contains(filter.Country.ExternalId.ToString())) &&
                                                           (string.IsNullOrEmpty(filter.EventStatus.Name) || result.Statuses.Contains(",") && result.Statuses.Contains("," + filter.EventStatus.Name) || result.Statuses.Contains(filter.EventStatus.Name)) &&
                                                           (!filter.League.ExternalId.HasValue || (result.Leagues.Contains(",") && result.Leagues.Contains("," + filter.League.ExternalId) || result.Leagues.Contains(filter.League.ExternalId.ToString())) &&
                                                            (string.IsNullOrEmpty(filter.Market.Name) || result.Markets.Contains(",") && result.Markets.Contains("," + filter.Market.Name) || result.Markets.Contains(filter.Market.Name)) &&
                                                            (string.IsNullOrEmpty(filter.Provider.Name) || result.Markets.Contains(",") && result.Providers.Contains("," + filter.Provider.Name) || result.Markets.Contains(filter.Provider.Name))));

                return(count);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            //To get the string to search in depfilter table
            string departmentID = Request.QueryString["DepartmentID"];

            var sqlFilList = new FilterList();
            sqlFilList.Filters = new List<FilterObject>();

            using (var db = new KioskContext())
            {
                //selects only from departmentfilter where department ID  = SIT [Querystring]
                var depfilters = from df in db.DepartmentFilters
                                where df.Department.DepartmentID == departmentID

                                orderby df.FilterName
                                select new
                                {
                                    df.DepartmentFilterID,
                                    df.DepartmentID,
                                    df.FilterName,
                                    df.Block,
                                    df.Level,
                                    df.Name,
                                };

                foreach (var fil in depfilters)
                {
                    FilterObject filobject = new FilterObject(fil.DepartmentFilterID, fil.DepartmentID, fil.FilterName, fil.Block, fil.Level,
                        fil.Name);

                    sqlFilList.Filters.Add(filobject);
                }
            }

            //Serialize into json format output (string)
            string json = JsonConvert.SerializeObject(sqlFilList, Formatting.Indented);

            //codes to pass back the json string to the iPad
            Response.Write(json);
            Response.End();
        }
Пример #32
0
 private void AddItem(FilterObject pFilterObject)
 {
     if (pFilterObject.name.Length > 0)
     {
         ListViewItem item = this.lstView.Items.Add(pFilterObject.entry.ToString());
         item.Tag = pFilterObject.key;
         item.SubItems.Add(pFilterObject.name);
         item.SubItems.Add(pFilterObject.type);
         item.SubItems.Add(pFilterObject.typeid);
         item.SubItems.Add(pFilterObject.filtered.ToString());
         item.SubItems.Add(pFilterObject.special.ToString());
         if (pFilterObject.filtered)
         {
             item.ForeColor = Color.Red;
         }
         else if (pFilterObject.special)
         {
             item.ForeColor = Color.Green;
         }
     }
 }
Пример #33
0
        public FilterObjectWrapper ToFilterObjectWrapper()
        {
            var filters = new List<FilterObject>();
            foreach (var filter in Filters)
            {
                FilterObject filterObject;
                if (filter.Filters != null && filter.Filters.Count == 2)
                {
                    var firstFilter = filter.Filters.First();
                    var lastFilter = filter.Filters.Last();
                    filterObject = new FilterObject
                    {
                        Field1 = firstFilter.Field,
                        Operator1 = firstFilter.Operator,
                        Value1 = firstFilter.Value,

                        Logic = filter.Logic,

                        Field2 = lastFilter.Field,
                        Operator2 = lastFilter.Operator,
                        Value2 = lastFilter.Value
                    };
                }
                else
                {
                    filterObject = new FilterObject
                    {
                        Field1 = filter.Field,
                        Operator1 = filter.Operator,
                        Value1 = filter.Value,
                    };
                }

                filters.Add(filterObject);
            }

            return new FilterObjectWrapper(Logic, filters);
        }
Пример #34
0
 //POST
 public IEnumerable<Application> filterApplications(FilterObject filter)
 {
     var applications = getAllActiveApplications();
     if (filter != null)
     {
         if (filter.subject != "" && filter.subject != null)
         {
             applications = applications.Where(a => a.Subject.Contains(filter.subject));
         }
         if (filter.newInterval != null)
         {
             if (filter.newInterval.startDate != null)
             {
                 applications = applications.Where(a => a.PostDate > filter.newInterval.startDate);
             }
             if (filter.newInterval.endDate != null)
             {
                 applications = applications.Where(a => a.PostDate < filter.newInterval.endDate);
             }
         }
     }
     return applications;
 }
Пример #35
0
 public IHttpActionResult filterApplications(FilterObject filter)
 {
     return Ok(repository.filterApplications(filter));
 }
Пример #36
0
        private static FilterObjectWrapper GetFilterObjects(NameValueCollection queryString, IList<string> filterKeys, string filterLogic)
        {
            var list = new List<FilterObject>();

            var fieldKeys = filterKeys.Where(x => x.Contains("field"));

            foreach (int index in GetIndexArr(fieldKeys))
            {
                var group = filterKeys.Where(x => GetFilterIndex(x) == index && !x.Contains("logic")).ToList();
                var field1 = group.First(g => g.Contains("field"));
                var operator1 = group.First(g => g.Contains("operator"));
                var value1 = group.First(g => g.Contains("value"));
                var ignoreCase1 = group.FirstOrDefault(g => g.Contains("ignoreCase"));

                var filterObject = new FilterObject
                {
                    Field1 = queryString[field1],
                    Operator1 = queryString[operator1],
                    Value1 = queryString[value1],
                    IgnoreCase1 = ignoreCase1 != null ? queryString[ignoreCase1] : null
                };

                if (group.Count == 6 || group.Count == 8)
                {
                    var field2 = group.Last(g => g.Contains("field"));
                    var operator2 = group.Last(g => g.Contains("operator"));
                    var value2 = group.Last(g => g.Contains("value"));
                    var ignoreCase2 = group.LastOrDefault(g => g.Contains("ignoreCase"));

                    filterObject.Field2 = queryString[field2];
                    filterObject.Operator2 = queryString[operator2];
                    filterObject.Value2 = queryString[value2];
                    filterObject.IgnoreCase2 = ignoreCase2 != null ? queryString[ignoreCase2] : null;
                    filterObject.Logic = GetFilterLogic(queryString, filterKeys, index, "logic");
                }

                list.Add(filterObject);
            }

            return new FilterObjectWrapper(filterLogic, list);
        }
        private FilterObject GetFilterObjectFromCookie()
        {
            var result = new FilterObject();

            var cookieKey = GetCookieKeyForFilterForExport();

            var cookie = Request.Cookies[HttpUtility.UrlEncode(cookieKey)];

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                var anchor = cookie.Value;

                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(anchor)));

                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value<string>("params"))));

                        switch (filterObj.Value<string>("id"))
                        {
                            case "sorter":
                                result.SortBy = filterParam.Value<string>("id");
                                result.SortOrder = filterParam.Value<string>("sortOrder");
                                break;
                            case "text":
                                result.FilterValue = filterParam.Value<string>("value");
                                break;

                            case "my":
                            case "responsibleID":
                                result.ResponsibleID = new Guid(filterParam.Value<string>("value"));
                                break;

                            case "stageTypeOpen":
                            case "stageTypeClosedAndWon":
                            case "stageTypeClosedAndLost":
                                result.StageType = filterParam.Value<string>("value");
                                break;
                            case "opportunityStagesID":
                                result.OpportunityStagesID = filterParam.Value<int>("value");
                                break;

                            case "lastMonth":
                            case "yesterday":
                            case "today":
                            case "thisMonth":
                                var valueString = filterParam.Value<string>("value");
                                var fromToArray = JsonConvert.DeserializeObject<List<string>>(valueString);
                                if (fromToArray.Count != 2) continue;
                                result.FromDateString = fromToArray[0];
                                result.ToDateString = fromToArray[1];
                                result.FromDate = UrlParameters.ApiDateTimeParse(result.FromDateString);
                                result.ToDate = UrlParameters.ApiDateTimeParse(result.ToDateString);
                                break;
                            case "fromToDate":
                                result.FromDateString = filterParam.Value<string>("from");
                                result.ToDateString = filterParam.Value<string>("to");
                                result.FromDate = UrlParameters.ApiDateTimeParse(result.FromDateString);
                                result.ToDate = UrlParameters.ApiDateTimeParse(result.ToDateString);
                                break;

                            case "participantID":
                                result.ContactID = filterParam.Value<int>("id");
                                result.ContactAlsoIsParticipant = true;
                                break;
                            case "contactID":
                                result.ContactID = filterParam.Value<int>("id");
                                result.ContactAlsoIsParticipant = false;
                                break;

                            case "tags":
                                result.Tags = new List<string>();
                                result.Tags = filterParam.Value<JArray>("value").ToList().ConvertAll(n => n.ToString());
                                break;
                        }
                    }
                }
                catch(Exception)
                {
                    result.SortBy = "stage";
                    result.SortOrder = "ascending";
                }
            }
            else
            {
                result.SortBy = "stage";
                result.SortOrder = "ascending";
            }

            return result;
        }
Пример #38
0
        /// <summary>
        /// Gets all rooms according to a filter
        /// </summary>
        /// <param name="filter">filter object used to filter the rooms</param>
        /// <returns></returns>
        public static List<Room> GetFiltered(FilterObject filter)
        {
            DataClassesDataContext dbo = new DataClassesDataContext();

            var rooms = dbo.Rooms.Where(r => r.ID > -1);

            if (filter.Type.HasValue && filter.Type.Value != -1) rooms = rooms.Where(r => r.TypeId == filter.Type.Value);

            if (filter.MinPrice.HasValue) rooms = rooms.Where(r => r.Price >= filter.MinPrice.Value);
            if (filter.MaxPrice.HasValue) rooms = rooms.Where(r => r.Price <= filter.MaxPrice.Value);

            if (filter.Included) rooms = rooms.Where(r => r.Included == filter.Included);

            if (filter.MinSize.HasValue) rooms = rooms.Where(r => r.Size >= filter.MinSize.Value);
            if (filter.MaxSize.HasValue) rooms = rooms.Where(r => r.Size <= filter.MaxSize.Value);

            if (filter.Attributes != null && filter.Attributes.Length > 0) {
                rooms = rooms.Where(r => dbo.RoomHasAttributes.Where(a => filter.Attributes.Contains(a.AttributeId)).Select(a => a.RoomID).Contains(r.ID));
            }

            if (filter.Region.HasValue) rooms = rooms.Where(r => r.RegionId == filter.Region.Value);

            if (filter.Query != null && filter.Query != "") {
                foreach (string q in filter.Query.Split(' ')) {
                    rooms = rooms.Where(r =>
                     SqlMethods.Like(r.KotUser.Username, "%" + q + "%") ||
                     SqlMethods.Like(r.Location, "%" + q + "%") ||
                     SqlMethods.Like(r.Decsription, "%" + q + "%") ||
                     SqlMethods.Like(r.Address, "%" + q + "%"));
                }
            }

            if (filter.Sort.HasValue) {
                switch (filter.Sort.Value) {

                    case RoomSorts.Toegevoegd:
                        if (!filter.Reversed) rooms = rooms.OrderByDescending(r => r.Added);
                        else rooms = rooms.OrderBy(r => r.Added);
                        break;

                    case RoomSorts.Prijs:
                        if (!filter.Reversed) rooms = rooms.OrderBy(r => r.Price).ThenBy(r => r.Added);
                        else rooms = rooms.OrderByDescending(r => r.Price).ThenBy(r => r.Added);
                        break;

                    case RoomSorts.Regio:
                        if (!filter.Reversed) rooms = rooms.OrderBy(r => r.GentRegion.Name).ThenBy(r => r.Address);
                        else rooms = rooms.OrderByDescending(r => r.GentRegion.Name).ThenByDescending(r => r.Address);
                        break;

                    case RoomSorts.Grootte:
                        if (!filter.Reversed) rooms = rooms.OrderBy(r => r.Size).ThenBy(r => r.Added);
                        else rooms = rooms.OrderByDescending(r => r.Size).ThenBy(r => r.Added);
                        break;

                    case RoomSorts.Type:
                        if (!filter.Reversed) rooms = rooms.OrderBy(r => r.Type.Name).ThenBy(r => r.Added);
                        else rooms = rooms.OrderByDescending(r => r.Type.Name).ThenBy(r => r.Added);
                        break;
                }
            }

            return rooms.ToList();
        }
Пример #39
0
        private FilterObject GetFilterObjectFromCookie()
        {
            GetPageNumberAndCountOnPageFromCookie();
            var result = new FilterObject
            {
                CurrentPageNumber = CurrentPageNumber,
                Count = EntryCountOnPage,
                StartIndex = CurrentPageNumber > 0 ? (CurrentPageNumber - 1) * EntryCountOnPage : 0
            };


            var cookieKey = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Length - Request.Url.Query.Length);


            var cookie = Request.Cookies[System.Web.HttpUtility.UrlEncode(cookieKey)];

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                Anchor = cookie.Value;

                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(Anchor)));
                    
                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value<string>("params"))));

                        switch (filterObj.Value<string>("id"))
                        {
                            case "sorter":
                                result.SortBy = filterParam.Value<string>("id");
                                result.SortOrder = filterParam.Value<string>("sortOrder");
                                break;
                            case "text":
                                result.FilterValue = filterParam.Value<string>("value");
                                break;

                            case "my":
                            case "responsibleID":
                                result.ResponsibleID = new Guid(filterParam.Value<string>("value"));
                                break;

                            case "stageTypeOpen":
                            case "stageTypeClosedAndWon":
                            case "stageTypeClosedAndLost":
                                result.StageType = filterParam.Value<string>("value");
                                break;
                            case "opportunityStagesID":
                                result.OpportunityStagesID = filterParam.Value<int>("value");
                                break;

                            case "lastMonth":
                            case "yesterday":
                            case "today":
                            case "thisMonth":
                                var valueString = filterParam.Value<string>("value");
                                var fromToArray = JArray.Parse(valueString);
                                if (fromToArray.Count != 2) continue;
                                result.FromDate = UrlParameters.ApiDateTimeParse(fromToArray[0].Value<String>());
                                result.ToDate = UrlParameters.ApiDateTimeParse(fromToArray[1].Value<String>());
                            
                         
                                break;
                            case "fromToDate":
                                result.FromDate = UrlParameters.ApiDateTimeParse(filterParam.Value<string>("from"));
                                result.ToDate = UrlParameters.ApiDateTimeParse(filterParam.Value<string>("to"));
                                break;

                            case "participantID":
                                result.ContactID = filterParam.Value<int>("id");
                                result.ContactAlsoIsParticipant = true;
                                break;
                            case "contactID":
                                result.ContactID = filterParam.Value<int>("id");
                                result.ContactAlsoIsParticipant = false;
                                break;

                            case "tags":
                                result.Tags = new List<string>();
                                result.Tags = filterParam.Value<JArray>("value").ToList().ConvertAll(n => n.ToString());
                                break;
                        }
                    }
                }
                catch (Exception)
                {
                    result.CurrentPageNumber = CurrentPageNumber;
                    result.Count = EntryCountOnPage;
                    result.StartIndex = CurrentPageNumber > 0 ? (CurrentPageNumber - 1) * EntryCountOnPage : 0;
                    result.SortBy = "stage";
                    result.SortOrder = "ascending";
                }
            }
            else
            {
                result.CurrentPageNumber = CurrentPageNumber;
                result.Count = EntryCountOnPage;
                result.StartIndex = CurrentPageNumber > 0 ? (CurrentPageNumber - 1) * EntryCountOnPage : 0;
                result.SortBy = "stage";
                result.SortOrder = "ascending";
                Anchor = String.Empty;
            }

            return result;
        }
Пример #40
0
        private FilterObject GetFilterObjectFromCookie()
        {
            GetPageNumberAndCountOnPageFromCookie();
            var result = new FilterObject
                 {
                     CurrentPageNumber = CurrentPageNumber,
                     Count = EntryCountOnPage,
                     StartIndex = CurrentPageNumber > 0 ? (CurrentPageNumber - 1) * EntryCountOnPage : 0
                 };

            var cookieKey = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Length - Request.Url.Query.Length);

            var cookie = Request.Cookies[System.Web.HttpUtility.UrlEncode(cookieKey)];

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                Anchor = cookie.Value;

                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(Anchor)));
                    
                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value<string>("params"))));

                        switch (filterObj.Value<string>("id"))
                        {
                            case "sorter":
                                result.SortBy = filterParam.Value<string>("id");
                                result.SortOrder = filterParam.Value<string>("sortOrder");
                                break;
                            case "text":
                                result.FilterValue = filterParam.Value<string>("value");
                                break;
                            case "tags":
                                result.Tags = new List<string>();
                                result.Tags = filterParam.Value<JArray>("value").ToList().ConvertAll(n => n.ToString());
                                break;
                            case "withopportunity":
                            case "person":
                            case "company":
                                result.ContactListView = filterParam.Value<string>("value");
                                break;
                            case "contactType":
                                result.ContactType = filterParam.Value<int>("value");
                                break;
                        }
                    }
                }
                catch (Exception)
                {
                    result.CurrentPageNumber = CurrentPageNumber;
                    result.Count = EntryCountOnPage;
                    result.StartIndex = CurrentPageNumber > 0 ? (CurrentPageNumber - 1) * EntryCountOnPage : 0;
                    result.SortBy = "displayname";
                    result.SortOrder = "ascending";
                }
            }
            else
            {
                result.CurrentPageNumber = CurrentPageNumber;
                result.Count = EntryCountOnPage;
                result.StartIndex = CurrentPageNumber > 0 ? (CurrentPageNumber - 1) * EntryCountOnPage : 0;
                result.SortBy = "displayname";
                result.SortOrder = "ascending";
                Anchor = String.Empty;
            }

            return result;
        }
Пример #41
0
 /// <summary>
 /// Gets all rooms according to a filter
 /// </summary>
 /// <param name="filter">filter object used to filter the rooms</param>
 /// <param name="start">amount of rooms to skip</param>
 /// <param name="amount">amount of rooms to return</param>
 /// <returns></returns>
 public static List<Room> GetFiltered(FilterObject filter, int start, int amount)
 {
     return GetFiltered(filter).Skip(start).Take(amount).ToList();
 }
        private FilterObject GetFilterObjectFromCookie()
        {
            var result = new FilterObject();

            var cookieKey = GetCookieKeyForFilterForExport();

            var cookie = Request.Cookies[System.Web.HttpUtility.UrlEncode(cookieKey)];

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                var anchor = cookie.Value;
                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(anchor)));

                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value<string>("params"))));

                        switch (filterObj.Value<string>("id"))
                        {
                            case "sorter":
                                result.SortBy = filterParam.Value<string>("id");
                                result.SortOrder = filterParam.Value<string>("sortOrder");
                                break;
                            case "text":
                                result.FilterValue = filterParam.Value<string>("value");
                                break;

                            case "withInventoryStock":
                            case "withoutInventoryStock":
                                result.InventoryStock = filterParam.Value<bool>("value");
                                break;
                        }
                    }
                }
                catch (Exception)
                {
                    result.SortBy = "name";
                    result.SortOrder = "ascending";
                }
            }
            else
            {
                result.SortBy = "name";
                result.SortOrder = "ascending";
            }

            return result;
        }
        private FilterObject GetFilterObjectFromCookie()
        {
            var result = new FilterObject();

            var cookieKey = GetCookieKeyForFilterForExport();

            var cookie = Request.Cookies[HttpUtility.UrlEncode(cookieKey)];
            _log.Debug(String.Format("GetFilterObjectFromCookie. cookieKey={0}", cookieKey));

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                var anchor = cookie.Value;
                _log.Debug(String.Format("GetFilterObjectFromCookie. cookie.Value={0}", anchor));
                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(anchor)));
                    _log.Debug(String.Format("GetFilterObjectFromCookie. cookieJson={0}", cookieJson));
                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value<string>("params"))));

                        switch (filterObj.Value<string>("id"))
                        {
                            case "sorter":
                                result.SortBy = filterParam.Value<string>("id");
                                result.SortOrder = filterParam.Value<string>("sortOrder");
                                break;
                            case "text":
                                result.FilterValue = filterParam.Value<string>("value");
                                break;

                            case "my":
                            case "responsibleID":
                                result.ResponsibleID = new Guid(filterParam.Value<string>("value"));
                                break;

                            case "overdue":
                            case "today":
                            case "theNext":
                                var valueString = filterParam.Value<string>("value");
                                var fromToArray = JsonConvert.DeserializeObject<List<string>>(valueString);
                                if (fromToArray.Count != 2) continue;
                                result.FromDate = !String.IsNullOrEmpty(fromToArray[0])
                                                      ? UrlParameters.ApiDateTimeParse(fromToArray[0]) : DateTime.MinValue;
                                result.ToDate = !String.IsNullOrEmpty(fromToArray[1])
                                                    ? UrlParameters.ApiDateTimeParse(fromToArray[1]) : DateTime.MinValue;
                                break;
                            case "fromToDate":
                                result.FromDate = filterParam.Value<DateTime>("from");
                                result.ToDate = filterParam.Value<DateTime>("to");
                                break;
                            case "categoryID":
                                result.CategoryID = filterParam.Value<int>("value");
                                break;
                            case "openTask":
                            case "closedTask":
                                result.IsClosed = filterParam.Value<bool>("value");
                                break;
                            case "contactID":
                                result.ContactID = filterParam.Value<int>("id");
                                break;
                        }
                    }
                }
                catch(Exception)
                {
                    _log.Info("GetFilterObjectFromCookie. Exception! line 206");
                    result.SortBy = "deadline";
                    result.SortOrder = "ascending";
                }
            }
            else
            {
                _log.Info("GetFilterObjectFromCookie. Cookie is null, default filters should be used");
                result.SortBy = "deadline";
                result.SortOrder = "ascending";
            }

            return result;
        }
        private FilterObject GetFilterObjectFromCookie()
        {
            var result = new FilterObject();

            var cookieKey = GetCookieKeyForFilterForExport();
            var cookie = Request.Cookies[HttpUtility.UrlEncode(cookieKey)];

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                var anchor = cookie.Value;

                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(anchor)));

                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value<string>("params"))));

                        switch (filterObj.Value<string>("id"))
                        {
                            case "sorter":
                                result.SortBy = filterParam.Value<string>("id");
                                result.SortOrder = filterParam.Value<string>("sortOrder");
                                break;
                            case "text":
                                result.FilterValue = filterParam.Value<string>("value");
                                break;
                            case "closed":
                            case "opened":
                                result.IsClosed = filterParam.Value<bool>("value");
                                break;
                            case "tags":
                                result.Tags = new List<string>();
                                result.Tags = filterParam.Value<JArray>("value").ToList().ConvertAll(
                                    n => n.ToString());
                                break;
                        }
                    }
                }
                catch(Exception)
                {
                    result.SortBy = "title";
                    result.SortOrder = "ascending";
                }
            }
            else
            {
                result.SortBy = "title";
                result.SortOrder = "ascending";
            }
            return result;
        }
        private FilterObject GetFilterObjectFromCookie()
        {
            var result = new FilterObject();

            var cookieKey = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.Length - Request.Url.Query.Length);

            var cookie = Request.Cookies[System.Web.HttpUtility.UrlEncode(cookieKey)];

            if (cookie != null && !String.IsNullOrEmpty(cookie.Value))
            {
                var anchor = cookie.Value;

                try
                {
                    var cookieJson = Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(anchor)));

                    var jsonArray = cookieJson.Split(';');

                    foreach (var filterItem in jsonArray)
                    {
                        var filterObj = JObject.Parse(filterItem);

                        var filterParam = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(filterObj.Value<string>("params"))));

                        switch (filterObj.Value<string>("id"))
                        {
                            case "sorter":
                                result.SortBy = filterParam.Value<string>("id");
                                result.SortOrder = filterParam.Value<string>("sortOrder");
                                break;
                            case "text":
                                result.FilterValue = filterParam.Value<string>("value");
                                break;
                            case "my":
                            case "responsibleID":
                                result.ResponsibleID = new Guid(filterParam.Value<string>("value"));
                                break;
                            case "tags":
                                result.Tags = new List<string>();
                                result.Tags = filterParam.Value<JArray>("value").ToList().ConvertAll(n => n.ToString());
                                break;
                            case "withopportunity":
                            case "person":
                            case "company":
                                result.ContactListView = filterParam.Value<string>("value");
                                break;
                            case "contactType":
                                result.ContactType = filterParam.Value<int>("value");
                                break;
                            case "contactStage":
                                result.ContactStage = filterParam.Value<int>("value");
                                break;

                            case "lastMonth":
                            case "yesterday":
                            case "today":
                            case "thisMonth":
                                var valueString = filterParam.Value<string>("value");
                                var fromToArray = JsonConvert.DeserializeObject<List<string>>(valueString);
                                if (fromToArray.Count != 2) continue;
                                result.FromDateString = fromToArray[0];
                                result.ToDateString = fromToArray[1];
                                result.FromDate = UrlParameters.ApiDateTimeParse(result.FromDateString);
                                result.ToDate = UrlParameters.ApiDateTimeParse(result.ToDateString);
                                break;
                            case "fromToDate":
                                result.FromDateString = filterParam.Value<string>("from");
                                result.ToDateString = filterParam.Value<string>("to");
                                result.FromDate = UrlParameters.ApiDateTimeParse(result.FromDateString);
                                result.ToDate = UrlParameters.ApiDateTimeParse(result.ToDateString);
                                break;
                        }
                    }
                }
                catch (Exception)
                {
                    result.SortBy = "created";
                    result.SortOrder = "descending";
                }
            }
            else
            {
                result.SortBy = "created";
                result.SortOrder = "descending";
            }

            return result;
        }