Example #1
0
		protected ActivityFilter CreateFilterFromQuery()
		{
			ActivityFilter filter = new ActivityFilter();
			foreach (var key in Request.QueryString.AllKeys)
			{
				filter[key] = Request.QueryString[key];
			}

			return filter;
		}
Example #2
0
		public static Activity GetActivityById(int id)
		{
			int countOfPages = 1;
			ActivityFilter filter = new ActivityFilter();
			filter[ActivityConstants.ActivityID] = id.ToString();
			Activity activity = DataManager.SearchActivityByFilterToPage(filter, 1, out countOfPages).SingleOrDefault();
			if (activity != null)
			{
				return activity;
			}
			else
			{
				throw new ApplicationException("Invalid Activity ID");
			}
		}
Example #3
0
		public static List<Activity> SearchActivityByFilterToPage(ActivityFilter filter, int? pageNumber, out int countOfPages)
		{
			return _dataActivityProvider.SearchByFilter(filter, pageNumber, out countOfPages);
		}
Example #4
0
		public List<Activity> SearchByFilter(ActivityFilter filter, int? pageNumber, out int countOfPages)
		{
			using (var dc = new EngageCCTDataClassesDataContext())
			{
				IEnumerable<T_Activity> activities = dc.T_Activities;
				if (!String.IsNullOrEmpty(filter[ActivityConstants.ActivityID]))
				{
					int activityID;
					if (int.TryParse(filter[ActivityConstants.ActivityID], out activityID))
						activities = activities.Where(e => e.ActivityID == activityID);
				}
				if (!String.IsNullOrEmpty(filter[ActivityConstants.CreatedBy]))
				{
					activities = activities.Where(e => e.Author.ToLower().Contains(filter[ActivityConstants.CreatedBy].ToLower()));
				}
				if (!String.IsNullOrEmpty(filter[ActivityConstants.ActivityType]))
				{
					int typeID;
					if (int.TryParse(filter[ActivityConstants.ActivityType], out typeID))
						activities = activities.Where(e => e.TypeID == typeID);
				}

				if (!String.IsNullOrEmpty(filter[ActivityConstants.Priority]))
				{
					int typeID;
					if (int.TryParse(filter[ActivityConstants.Priority], out typeID))
						activities = activities.Where(e => e.PriorityID == typeID);
				}
				if (!String.IsNullOrEmpty(filter[ActivityConstants.Recipient]))
				{
					int leadNumber;
					if (int.TryParse(filter[ActivityConstants.Recipient], out leadNumber))
					{
						int leadID = _dataLeadProvider.GetLeadIDByNumber(leadNumber);
						var leadActivities = dc.T_ActivityLeads.Where(al => al.LeadID == leadID);
						activities = activities.Where(a => leadActivities.Any(la => la.ActivityID == a.ActivityID));
					}
				}

				//time
				if (!String.IsNullOrEmpty(filter[ActivityConstants.From]))
				{
					DateTime from = DateTime.Parse(filter[ActivityConstants.From]);
					activities = activities.Where(e => from <= e.actDue);
				}

				if (!String.IsNullOrEmpty(filter[ActivityConstants.To]))
				{
					DateTime to = DateTime.Parse(filter[ActivityConstants.To]);
					activities = activities.Where(e => to >= e.actDue);
				}

				if (!String.IsNullOrEmpty(filter[ActivityConstants.Priority]))
				{
					int typeID;
					if (int.TryParse(filter[ActivityConstants.Priority], out typeID))
						activities = activities.Where(e => e.PriorityID == typeID);
				}
				if (!String.IsNullOrEmpty(filter[ActivityConstants.Status]))
				{
					List<T_Activity> temp = new List<T_Activity>();
					string[] statuses = filter[ActivityConstants.Status].Split(',');
					for (int i = 0; i < statuses.Length; i++)
					{
						temp = temp.Concat(activities.Where(e => e.StatusID == int.Parse(statuses[i].ToString()))).ToList();
					}
					activities = temp;
				}
				if (!String.IsNullOrEmpty(filter[ActivityConstants.Owner]))
				{
					activities = activities.Where(e => e.Owner.ToLower().Contains(filter[ActivityConstants.Owner].ToLower()));
				}
				if (!String.IsNullOrEmpty(filter[ActivityConstants.Sender]))
				{
					activities = activities.Where(e => e.Sender.ToLower().Contains(filter[ActivityConstants.Sender].ToLower()));
				}
				if (!String.IsNullOrEmpty(filter[ActivityConstants.Subject]))
				{
					activities = activities.Where(e => e.actSubject.ToLower().Contains(filter[ActivityConstants.Subject].ToLower()));
				}
				if (!String.IsNullOrEmpty(filter[ActivityConstants.CreatedOn]))
				{
					activities = activities.Where(e => GetDateFormat(e).Contains(filter[ActivityConstants.CreatedOn].ToLower()));
				}

				if (!String.IsNullOrEmpty(filter[ActivityConstants.Sort]))
				{
					var pair = filter[ActivityConstants.Sort].Split(',');
					if (pair.Length == 2)
					{
						var sortBy = pair[0];
						var sortDirection = pair[1];
						switch (sortBy)
						{
							case SortConstants.ActivityType:
								if (sortDirection.Equals(SortConstants.Ascending))
								{
									activities = activities.OrderBy(a => a.T_ActivityType.atType);
								}
								if (sortDirection.Equals(SortConstants.Descending))
								{
									activities = activities.OrderByDescending(a => a.T_ActivityType.atType);
								}
								break;
							case SortConstants.Subject:
								if (sortDirection.Equals(SortConstants.Ascending))
								{
									activities = activities.OrderBy(a => a.actSubject);
								}
								if (sortDirection.Equals(SortConstants.Descending))
								{
									activities = activities.OrderByDescending(a => a.actSubject);
								}
								break;
							case SortConstants.Priority:
								if (sortDirection.Equals(SortConstants.Priority))
								{
									activities = activities.OrderBy(a => a.T_Priority.prType);
								}
								if (sortDirection.Equals(SortConstants.Descending))
								{
									activities = activities.OrderByDescending(a => a.T_Priority.prType);
								}
								break;
							case SortConstants.Status:
								if (sortDirection.Equals(SortConstants.Ascending))
								{
									activities = activities.OrderBy(a => a.T_ActivityStatus.asStatus);
								}
								if (sortDirection.Equals(SortConstants.Descending))
								{
									activities = activities.OrderByDescending(a => a.T_ActivityStatus.asStatus);
								}
								break;

						}
					}
				}


				int countActivitiesOnPage;
				if (int.TryParse(ConfigurationManager.AppSettings["countOfActivitiesOnPage"], out countActivitiesOnPage))
				{
					countOfPages = (activities.Count() - 1) / countActivitiesOnPage + 1;
				}
				else
				{
					countActivitiesOnPage = 10;
					countOfPages = (activities.Count() - 1) / countActivitiesOnPage + 1;
				}

				if (pageNumber != null)
				{
					if (pageNumber.Value > countOfPages || pageNumber.Value < 0)
					{
						pageNumber = 1;
					}
					int temp = activities.Count();
					List<Activity> activityList = new List<Activity>();
					for (int i = (pageNumber.Value - 1) * countActivitiesOnPage; i < pageNumber.Value * countActivitiesOnPage && i < activities.Count(); i++)
					{
						Activity activity = GetActivityEntity(activities.ElementAt(i));
						activityList.Add(activity);
					}
					return activityList;
				}
				else
				{
					return activities.Select(e => GetActivityEntity(e)).ToList();
				}
			}
		}