//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"); } }
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()); }
// // 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()); }
/// <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); }
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)); }
internal IEnumerable <OwnerInvitationModel> GetInvitationsFrom(string id, TimeCategories time) { var list = invitationBusinessLogic.GetInvitationsFrom(id); return(this.GetInvitations(list, time)); }
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); }
public IEnumerable <OwnerInvitationModel> GetInvitations(TimeCategories time) { var invitations = invitationBusinessLogic.GetAllOwnerInvitations(); return(this.GetInvitations(invitations, time)); }
public async Task <TimeCategoriesResponse> GetTimeCategoriesAsync() => await TimeCategories.CastTask <TimeCategoriesResponse>();
public IEnumerable <ItemRegistration> Get(string criteria = null, TimeCategories time = TimeCategories.All) { return(_itemRegistrationManager.Get(criteria, time)); }