private void ConfigureReport()
        {
            var geoGroups = _filter.CreateParameterSet(
                "Части города",
                "geographic_groups",
                new ParametersFactory(UoW, (filters) => {
                SelectableEntityParameter <GeographicGroup> resultAlias = null;
                var query = UoW.Session.QueryOver <GeographicGroup>();

                if (filters != null && filters.Any())
                {
                    foreach (var f in filters)
                    {
                        query.Where(f());
                    }
                }

                query.SelectList(list => list
                                 .Select(x => x.Id).WithAlias(() => resultAlias.EntityId)
                                 .Select(x => x.Name).WithAlias(() => resultAlias.EntityTitle)
                                 );
                query.TransformUsing(Transformers.AliasToBean <SelectableEntityParameter <GeographicGroup> >());
                return(query.List <SelectableParameter>());
            })
                );

            District        districtAlias     = null;
            DistrictsSet    districtsSetAlias = null;
            GeographicGroup geoGroupAlias     = null;
            var             districtParameter = _filter.CreateParameterSet(
                "Районы",
                "districts",
                new ParametersFactory(UoW, (filters) => {
                SelectableEntityParameter <District> resultAlias = null;

                var query = UoW.Session.QueryOver(() => districtAlias)
                            .JoinAlias(() => districtAlias.DistrictsSet, () => districtsSetAlias)
                            .Left.JoinAlias(() => districtAlias.GeographicGroup, () => geoGroupAlias)
                            .Where(() => districtsSetAlias.Status == DistrictsSetStatus.Active);

                if (filters != null && filters.Any())
                {
                    foreach (var f in filters)
                    {
                        var filterCriterion = f();
                        if (filterCriterion != null)
                        {
                            query.Where(filterCriterion);
                        }
                    }
                }

                query.SelectList(list => list
                                 .Select(() => districtAlias.Id).WithAlias(() => resultAlias.EntityId)
                                 .Select(() => districtAlias.DistrictName).WithAlias(() => resultAlias.EntityTitle)
                                 );
                var result = query.TransformUsing(Transformers.AliasToBean <SelectableEntityParameter <District> >())
                             .List <SelectableEntityParameter <District> >();
                foreach (var parameter in result)
                {
                    parameter.EntityTitle = $"{parameter.EntityId} {parameter.EntityTitle}";
                }
                return(result.Cast <SelectableParameter>().ToList());
            })
                );

            districtParameter.AddFilterOnSourceSelectionChanged(geoGroups, () => {
                var selectedValues = geoGroups.GetSelectedValues();
                if (!selectedValues.Any())
                {
                    return(null);
                }
                return(Restrictions.On(() => geoGroupAlias.Id).IsIn(selectedValues.ToArray()));
            });

            var viewModel    = new SelectableParameterReportFilterViewModel(_filter);
            var filterWidget = new SelectableParameterReportFilterView(viewModel);

            vboxSelectableFilter.Add(filterWidget);
            filterWidget.Show();
        }
Esempio n. 2
0
        public Organization GetOrganization(IUnitOfWork uow, PaymentType paymentType, bool isSelfDelivery,
                                            IEnumerable <OrderItem> orderItems = null, PaymentFrom paymentFrom = null, GeographicGroup geographicGroup = null)
        {
            if (uow == null)
            {
                throw new ArgumentNullException(nameof(uow));
            }

            if (HasAnyOnlineStoreNomenclature(orderItems))
            {
                return(GetOrganizationForOnlineStore(uow));
            }

            return(isSelfDelivery
                                ? GetOrganizationForSelfDelivery(uow, paymentType, paymentFrom)
                                : GetOrganizationForOtherOptions(uow, paymentType, paymentFrom, geographicGroup));
        }
Esempio n. 3
0
 public Organization GetOrganization(IUnitOfWork uow, PaymentType paymentType, bool isSelfDelivery,
                                     IEnumerable <OrderItem> orderItems = null,
                                     PaymentFrom paymentFrom            = null, GeographicGroup geographicGroup = null)
 {
     throw new NotSupportedException();
 }
        private Organization GetOrganizationForOrderParameters(IUnitOfWork uow, PaymentType paymentType, bool isSelfDelivery,
                                                               DateTime?orderCreateDate, IEnumerable <OrderItem> orderItems, PaymentFrom paymentFrom, GeographicGroup geographicGroup)
        {
            if (uow == null)
            {
                throw new ArgumentNullException(nameof(uow));
            }

            if (HasAnyOnlineStoreNomenclature(orderItems))
            {
                return(GetOrganizationForOnlineStore(uow));
            }

            return(isSelfDelivery
                                ? GetOrganizationForSelfDelivery(uow, paymentType, orderCreateDate, paymentFrom, geographicGroup)
                                : GetOrganizationForOtherOptions(uow, paymentType, orderCreateDate, paymentFrom, geographicGroup));
        }
Esempio n. 5
0
        private void ConfigureReport()
        {
            treeviewDeliveryIntervals.ColumnsConfig = FluentColumnsConfig <Time> .Create()
                                                      .AddColumn("").AddTextRenderer(x => $"{x.Value:hh\\:mm}")
                                                      .Finish();

            treeviewDeliveryIntervals.ItemsDataSource = Times;
            treeviewDeliveryIntervals.HeadersVisible  = false;

            var geoGroups = filter.CreateParameterSet(
                "Части города",
                "geographic_groups",
                new ParametersFactory(UoW, (filters) => {
                SelectableEntityParameter <GeographicGroup> resultAlias = null;
                var query = UoW.Session.QueryOver <GeographicGroup>();

                if (filters != null && filters.Any())
                {
                    foreach (var f in filters)
                    {
                        query.Where(f());
                    }
                }

                query.SelectList(list => list
                                 .Select(x => x.Id).WithAlias(() => resultAlias.EntityId)
                                 .Select(x => x.Name).WithAlias(() => resultAlias.EntityTitle)
                                 );
                query.TransformUsing(Transformers.AliasToBean <SelectableEntityParameter <GeographicGroup> >());
                return(query.List <SelectableParameter>());
            })
                );

            District        districtAlias     = null;
            GeographicGroup geoGroupAlias     = null;
            var             districtParameter = filter.CreateParameterSet(
                "Районы",
                "districts",
                new ParametersFactory(UoW, (filters) => {
                SelectableEntityParameter <District> resultAlias = null;

                var query = UoW.Session.QueryOver <District>(() => districtAlias)
                            .Left.JoinAlias(() => districtAlias.GeographicGroup, () => geoGroupAlias);

                if (filters != null && filters.Any())
                {
                    foreach (var f in filters)
                    {
                        var filterCriterion = f();
                        if (filterCriterion != null)
                        {
                            query.Where(filterCriterion);
                        }
                    }
                }

                query.SelectList(list => list
                                 .Select(() => districtAlias.Id).WithAlias(() => resultAlias.EntityId)
                                 .Select(() => districtAlias.DistrictName).WithAlias(() => resultAlias.EntityTitle)
                                 );
                var result = query.TransformUsing(Transformers.AliasToBean <SelectableEntityParameter <District> >())
                             .List <SelectableEntityParameter <District> >();
                foreach (var parameter in result)
                {
                    parameter.EntityTitle = $"{parameter.EntityId} {parameter.EntityTitle}";
                }
                return(result.Cast <SelectableParameter>().ToList());
            })
                );

            districtParameter.AddFilterOnSourceSelectionChanged(geoGroups, () => {
                var selectedValues = geoGroups.GetSelectedValues();
                if (!selectedValues.Any())
                {
                    return(null);
                }
                return(Restrictions.On(() => geoGroupAlias.Id).IsIn(selectedValues.ToArray()));
            });

            var viewModel    = new SelectableParameterReportFilterViewModel(filter);
            var filterWidget = new SelectableParameterReportFilterView(viewModel);

            vboxParameters.Add(filterWidget);
            filterWidget.Show();
        }
Esempio n. 6
0
 public static long GetHash(GeographicGroup point) => GetHash((double)point.BaseLatitude.Value, (double)point.BaseLongitude.Value);