Docary.ViewModelAssemblers.Mobile.HomeAssembler.AssembleHomeIndexViewModel C# (CSharp) Method

AssembleHomeIndexViewModel() public method

public AssembleHomeIndexViewModel ( string userId ) : HomeIndexViewModel
userId string
return Docary.ViewModels.Mobile.HomeIndexViewModel
        public HomeIndexViewModel AssembleHomeIndexViewModel(string userId)
        {
            var indexViewModel = new HomeIndexViewModel();

            var userTimeZone = _userSettingService.Get(userId).TimeZone;

            var createdOnMin = _timeService.GetNow().Date.AddDays(-DAYS_PER_LIST_PAGE);
            var createdOnMax = DateTime.MaxValue;

            var universalEntries = _entryService.GetEntries(createdOnMin, createdOnMax, userId);

            var localizedEntries = new List<Entry>();

            foreach(var entry in universalEntries)
            {
                entry.CreatedOn = TimeZoneInfo.ConvertTimeFromUtc(entry.CreatedOn, userTimeZone);
                if (entry.StoppedOn.HasValue)
                    entry.StoppedOn = TimeZoneInfo.ConvertTimeFromUtc(entry.StoppedOn.Value, userTimeZone);
                localizedEntries.Add(entry);
            }

            var entries = localizedEntries.OrderByDescending(e => e.CreatedOn);
            var groups = entries.GroupBy(e => e.CreatedOn.Date);

            indexViewModel.EntryGroups = new List<HomeIndexViewModelEntryGroup>();

            foreach (var group in groups)
            {
                var entryGroup = new HomeIndexViewModelEntryGroup();
                entryGroup.Date = group.First().CreatedOn.Date;
                entryGroup.Entries = group.ToList();

                indexViewModel.EntryGroups.Add(entryGroup);
            }

            return indexViewModel;
        }

Usage Example

コード例 #1
0
ファイル: HomeAssemblerTest.cs プロジェクト: JefClaes/Docary
        public void Test_Initializes_EntryGroups()
        {
            var target = new HomeAssembler(
                GetEntryServiceStubForTestingEntryGroups(),
                GetUserSettingStub(),
                GetTimeServiceStub());

            var actual = target.AssembleHomeIndexViewModel(string.Empty);

            Assert.IsNotNull(actual.EntryGroups);
        }
All Usage Examples Of Docary.ViewModelAssemblers.Mobile.HomeAssembler::AssembleHomeIndexViewModel