public void Get()
 {
     try
     {
         var options = CreateNewContextOptions();
         using (var db = new ConversationContext(options))
         {
             ConversationTestHelper.PopulateDefaultDataCtx(db);
         }
         using (var db = new ConversationContext(options))
         {
             var repository            = new ConversationRepository(db);
             var item                  = GenerateModel();
             IEnumerable <Conv> result = null;
             Assert.DoesNotThrow(() => repository.Save(item));
             Assert.DoesNotThrow(() => repository.AddMember(new User {
                 Id = 1
             }, item));
             var filter = new ConversationFilter <int>
             {
                 UserId             = item.UserStartedId,
                 ConversationTypeId = item.ConversationTypeId,
             };
             Assert.DoesNotThrow(() => result = repository.Get(filter));
             Assert.True(result != null && result.Any());
             filter.Code = "Conv1";
             Assert.DoesNotThrow(() => result = repository.Get(filter));
             Assert.True(result != null && result.Any());
             filter.Title = "Conversation";
             Assert.DoesNotThrow(() => result = repository.Get(filter));
             Assert.True(result != null && result.Any());
             filter.DateCreatedInterval = new Interval <DateTime?>
             {
                 Start = DateTime.Now.AddDays(-2)
             };
             Assert.DoesNotThrow(() => result = repository.Get(filter));
             Assert.True(result != null && result.Any());
             filter.DateCreatedInterval.Start = null;
             filter.DateCreatedInterval.End   = DateTime.Now.AddDays(2);
             Assert.DoesNotThrow(() => result = repository.Get(filter));
             Assert.True(result != null && result.Any());
             filter.DateCreatedInterval.Start = DateTime.Now.AddDays(-2);
             Assert.DoesNotThrow(() => result = repository.Get(filter));
             Assert.True(result != null && result.Any());
         }
     }
     catch (Exception ex)
     {
         LogEventManager.Logger.Error(ex);
         throw;
     }
 }
        public IEnumerable <Server.Model.Conversation.Conversation> Get(ConversationFilter <int> filter)
        {
            try
            {
                var query = from conversation in Db.Set <Server.Model.Conversation.Conversation>()
                            join conversationUser in Db.Set <ConversationUser>() on conversation.Id equals conversationUser.ConversationId
                            where filter.UserId == conversationUser.UserId && conversation.ConversationTypeId == filter.ConversationTypeId
                            select conversation;

                if (!string.IsNullOrEmpty(filter.Code))
                {
                    query = query.Where(it => it.Code == filter.Code);
                }

                if (filter.DateCreatedInterval != null && filter.DateCreatedInterval.Start.HasValue)
                {
                    query = query.Where(it => it.DateCreated >= filter.DateCreatedInterval.Start);
                }
                if (filter.DateCreatedInterval != null && filter.DateCreatedInterval.End.HasValue)
                {
                    query = query.Where(it => it.DateCreated <= filter.DateCreatedInterval.End);
                }


                //Case sensetive contains
                if (!string.IsNullOrEmpty(filter.Title))
                {
                    query = query.Where(it => it.Name.ToUpper().Contains(filter.Title.ToUpper()));
                }

                query = query.Include(it => it.UserStarted).Include(it => it.ConversationType);


                query = filter.Sord.Equals("desc", StringComparison.OrdinalIgnoreCase)
                    ? query.OrderByDescending(filter.Sidx)
                    : query.OrderBy(filter.Sidx);
                return(query.Skip(filter.Rows * (filter.Page - 1)).Take(filter.Rows).Distinct());
            }
            catch (Exception ex)
            {
                LogEventManager.Logger.Error(ex.Message, ex);
                throw;
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Get Conversation filtered by the criteria specified in the passed filter.
 /// </summary>
 /// <param name="filter">Limit the items returned. If null, then all items returned.</param>
 /// <returns>ICollection of the items as specified in the filter.</returns>
 public ICollection <Conversation> Conversations(ConversationFilter filter)
 {
     return(Get <Conversation>(filter ?? new ConversationFilter()));
 }
        public void OnReceivedAllConversations(List <Conversation> conversations)
        {
            App.Current.Dispatcher.BeginInvoke((Action) delegate

            {
                CurrentConversation = null;
                Conversations.Clear();
                ConversationByCID.Clear();

                var filteredConverstions = conversations.Where(w => w.ConvName.ToLower().Contains(ConversationFilter.ToLower()));

                foreach (var conversation in filteredConverstions)
                {
                    AddConversationToView(conversation);
                }
            });
        }