Beispiel #1
0
        public List <ChatMessageViewModel> GetChatMessages()
        {
            var nowdt    = DateTime.Now;
            var pre24dt  = DateTime.Now.AddDays(-1);
            var messages = from p in _chatMessageRepository.GetAllQueryable()
                           join u in _userRepository.GetAllQueryable() on p.DriverUserId equals u.Id into pu
                           from u in pu.DefaultIfEmpty()
                           join d in _driverRepository.GetAllQueryable() on u.DriverC equals d.DriverC into pdu
                           from d in pdu.DefaultIfEmpty()
                           where p.Create_At > pre24dt && p.Create_At < nowdt
                           select new ChatMessageViewModel()
            {
                Id           = p.Id,
                UserId       = p.UserId,
                DriverUserId = p.DriverUserId,
                DriverN      = !p.IsDriver & p.DriverUserId == "ALL" ? "ALL" : (d != null ? d.LastN + " " + d.FirstN : ""),
                Message      = p.Message,
                Create_At    = p.Create_At,
                IsDriver     = p.IsDriver
            };

            // sorting (done with the System.Linq.Dynamic library available on NuGet)
            var messagesOrdered = messages.OrderBy("Create_At descending");

            //var messagesLimited = messagesOrdered.Skip(0).Take(20);

            var result = messagesOrdered.OrderBy("Create_At ascending").ToList();

            return(result);
        }