//dateTimeToCompare should be in UTC
        public static TimeFilterComparisonDelegate GetTimeFilterDateComparison(TimeCategories time)
        {
            var utcNow = DateTime.UtcNow;

            switch (time)
            {
            case TimeCategories.Today:
                var timeZoneService   = Catalog.Factory.Resolve <ITimeZoneService>();
                var localNow          = timeZoneService.ConvertUtcToLocal(utcNow);
                var initDay           = localNow.Date;
                var initLocalDayInUtc = timeZoneService.ConvertLocalToUtc(initDay);

                return(dateTimeToCompare => ((initLocalDayInUtc <= dateTimeToCompare) && (dateTimeToCompare <= utcNow)));

            case TimeCategories.LastMonth:
                return(dateTimeToCompare => (utcNow.AddMonths(-OneMonth) <= dateTimeToCompare && dateTimeToCompare <= utcNow));

            //last 6 months
            case TimeCategories.LastSixMonths:
                return
                    (dateTimeToCompare =>
                     (utcNow.AddMonths(-SixMonths) <= dateTimeToCompare && dateTimeToCompare <= utcNow));

            //all
            case TimeCategories.All:
                return(dateTimeToCompare => true);

            default:
                throw new ArgumentOutOfRangeException("time");
            }
        }
Esempio n. 2
0
        public IEnumerable <User> GetAllValidUsers(TimeCategories time = TimeCategories.All)
        {
            var listUsers = GetAllValidUsers();

            if (time == TimeCategories.All)
            {
                return(new List <User>(listUsers));
            }

            var aFunction = TimeFilterManager.GetTimeFilterDateComparison(time);

            return
                ((from user in listUsers.ToArray()
                  let timeCreate = user.AppUser.DateCreated
                                   where aFunction(timeCreate)
                                   select user).ToArray());
        }
Esempio n. 3
0
        //
        // GET: /ItemRegistration/
        // Here the model is the entity itself ItemRegistration
        public ActionResult Index(string criteria = null)
        {
            try
            {
                ViewBag.ItemsEnable = _command;

                ViewBag.id = Request["id"];

                var time         = Request["kind"];
                var timeCriteria = criteria ?? time;

                ViewBag.criteria = timeCriteria;

                ViewBag.TagFilters = new TagUILogic().GetTagsFromEntities(UITaggableEntity.ItemRegistration);

                var categories = new TagCategoryUILogic().GetAllTagCategories();
                ViewBag.Categories = categories;

                var tags = _itemRegistrationUILogic.GetTagsFromItemRegistration();
                ViewBag.tags = tags;

                TimeCategories tCategory = TimeCategories.All;
                Enum.TryParse <TimeCategories>(time, out tCategory);

                var itemRegistration = _itemRegistrationUILogic.Get(criteria, tCategory);

                return(View(itemRegistration));
            }

            catch (Exception exception)
            {
                if (!ExceptionHandler.Manage(exception, this, Layer.UILogic))
                {
                    return(RedirectToAction("Error", "Errors"));
                }
            }
            return(View());
        }
Esempio n. 4
0
        /// <summary>
        /// Gets item registrations with tags matching the given criteria and time category
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public IEnumerable <Lok.Unik.ModelCommon.ItemRegistration.ItemRegistration> Get(string criteria = null, TimeCategories time = TimeCategories.All)
        {
            var filteredItemRegistrationList = new List <Lok.Unik.ModelCommon.ItemRegistration.ItemRegistration>();

            using (var session = DocumentStoreLocator.ResolveOrRoot(CommonConfiguration.CoreDatabaseRoute))
            {
                var tenancy = ContextRegistry.ContextsOf("Tenancy").First().Segments[1];
                if (!string.IsNullOrEmpty(criteria))
                {
                    var query = from entity in session.Query <Lok.Unik.ModelCommon.ItemRegistration.ItemRegistration>()
                                where
                                entity.TenancyId == tenancy && entity.Tags.Any(tag => tag.Id.ToString() == criteria)
                                select entity;

                    filteredItemRegistrationList.AddRange(query);
                }

                //filter by criteria over registered time
                if (time != TimeCategories.All)
                {
                    var registrations = from entity in session.Query <Lok.Unik.ModelCommon.ItemRegistration.ItemRegistration>()
                                        where entity.TenancyId == tenancy
                                        select entity;

                    var aFunction = TimeFilterManager.GetTimeFilterDateComparison(time);

                    return((from itemRegistration in registrations.ToArray()
                            let dateCreation = itemRegistration.TimeRegistered
                                               where aFunction(dateCreation)
                                               select itemRegistration).ToArray());
                }

                if (string.IsNullOrEmpty(criteria) && time == TimeCategories.All)
                {
                    return(GetAll(session));
                }
            }

            return(filteredItemRegistrationList);
        }
Esempio n. 5
0
        internal IEnumerable <User> GetAllValidUsers(TimeCategories time)
        {
            var allUsers = _userBusinessLogic.GetAllValidUsers(time);

            return(allUsers.Select(EntityToModel));
        }
 public IEnumerable <Lok.Unik.ModelCommon.ItemRegistration.ItemRegistration> Get(string criteria = null, TimeCategories time = TimeCategories.All)
 {
     return(_itemRegistrationBusinessLogic.Get(criteria, time));
 }
Esempio n. 7
0
        internal IEnumerable <OwnerInvitationModel> GetInvitationsFrom(string id, TimeCategories time)
        {
            var list = invitationBusinessLogic.GetInvitationsFrom(id);

            return(this.GetInvitations(list, time));
        }
Esempio n. 8
0
        public IEnumerable <OwnerInvitationModel> GetInvitations(IEnumerable <Invitation> invitationList, TimeCategories time)
        {
            if (time == TimeCategories.All)
            {
                return(invitationList.Select(this.DbToModel));
            }

            var aFunction       = TimeFilterManager.GetTimeFilterDateComparison(time);
            var invitationsTime = new List <OwnerInvitationModel>();

            if (aFunction != null)
            {
                invitationsTime.AddRange(
                    from invitation in invitationList.ToList()
                    let timeDataSent = invitation.DateSent
                                       where aFunction(timeDataSent)
                                       select this.DbToModel(invitation));
            }
            return(invitationsTime);
        }
Esempio n. 9
0
        public IEnumerable <OwnerInvitationModel> GetInvitations(TimeCategories time)
        {
            var invitations = invitationBusinessLogic.GetAllOwnerInvitations();

            return(this.GetInvitations(invitations, time));
        }
 public async Task <TimeCategoriesResponse> GetTimeCategoriesAsync() => await TimeCategories.CastTask <TimeCategoriesResponse>();
Esempio n. 11
0
 public IEnumerable <ItemRegistration> Get(string criteria = null, TimeCategories time = TimeCategories.All)
 {
     return(_itemRegistrationManager.Get(criteria, time));
 }