public IEnumerable<BusinessTripEntity> GetBusinessTripsBy(BusinessTripFilter filter, string[] userRole)
        {
            IQueryable<BusinessTripEntity> businessTrips = storage.GetStorageFor<BusinessTripEntity>();

            if (!string.IsNullOrEmpty(filter.UserId))
            {
                Guid filterGuid = GetGuidBy(filter.UserId);

                return businessTrips.Where(m => m.Id == filterGuid);
            }

            if (userRole.Contains(Role.Hr.ToString()))
            {
                if (filter.Status.HasValue)
                {
                    businessTrips = businessTrips.Where(m => m.Status == filter.Status);
                }
                else
                {
                    businessTrips = businessTrips.Where(AllStatusFilter());
                }
            }
            else
            {
                businessTrips = businessTrips.Where(RegularUserStatusFilter());
            }

            if (filter.StartingDate.HasValue)
            {
                businessTrips = businessTrips.Where(m => m.StartingDate >= filter.StartingDate);
            }

            if (filter.EndingDate.HasValue)
            {
                businessTrips = businessTrips.Where(m => m.EndingDate <= filter.EndingDate);
            }

            if (!string.IsNullOrEmpty(filter.Location))
            {
                businessTrips = businessTrips.Where(m => m.ClientLocation.Contains(filter.Location));
            }

            if (!string.IsNullOrEmpty(filter.Person))
            {
                businessTrips = businessTrips.Where(m => m.User.Name.Contains(filter.Person));
            }

            if (!string.IsNullOrEmpty(filter.MeansOfTransportation))
            {
                businessTrips = businessTrips.Where(m => m.MeansOfTransportation.Contains(filter.MeansOfTransportation));
            }

            if (!string.IsNullOrEmpty(filter.Accommodation))
            {
                businessTrips = businessTrips.Where(m => m.Accomodation.Contains(filter.Accommodation));
            }

            return businessTrips;
        }
        public IEnumerable <BusinessTripViewModel> GetBusinessTripsBy(BusinessTripFilter filter, string[] userRole)
        {
            var businessTripsRepository = new BusinessTripsRepository();

            return(businessTripsRepository.GetBusinessTripsBy(filter, userRole).Select(m => new BusinessTripViewModel(m)));
        }