public async Task <IHttpActionResult> FindAllContactUsMessages(SharedEnums.SeenStatus seenStatus = SharedEnums.SeenStatus.All, int pageIndex = 1, int pageSize = 10, string include = null, string orderBy = "IsSeen ASC, CreateDate DESC", string KeyWord = null) { try { if (this.ActiveUser.UserType != SharedEnums.UserTypes.Manager) { return(BadRequest()); } Pager pager = new Pager() { PageSize = pageSize, PageIndex = pageIndex };; Expression <Func <ContactUsMessage, bool> > Filter = x => !x.IsDeleted; if (seenStatus != SharedEnums.SeenStatus.All) { if (seenStatus == SharedEnums.SeenStatus.NotSeen) { Filter = Filter.And(x => !x.IsSeen); } else { Filter = Filter.And(x => x.IsSeen); } } if (!string.IsNullOrEmpty(KeyWord)) { KeyWord = KeyWord.ToLower(); Filter = Filter.And(x => x.Messgae.ToLower().Contains(KeyWord) || x.Email.ToLower().Contains(KeyWord) || x.MobileNumber.ToLower().Contains(KeyWord) || x.Name.ToLower().Contains(KeyWord)); } var msgs = await Mgr.FindAll_Async(Filter, orderBy, pager, Helper.ToStringArray(include)); HttpContext.Current.Response.Headers.Add("access-control-expose-headers", "X-Pager"); HttpContext.Current.Response.Headers.Add("X-Pager", Newtonsoft.Json.JsonConvert.SerializeObject(pager)); return(Ok(msgs)); } catch (Exception ex) { Unit.LogError(ex, this.ToString(), this.ActionContext.ActionArguments.ToList()); return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> FindAllNotifications(SharedEnums.SeenStatus status = SharedEnums.SeenStatus.NotSeen, SharedEnums.NotificationType type = SharedEnums.NotificationType.All, int pageIndex = 1, int pageSize = 10, string include = null, string orderBy = "CreateDate DESC") { try { Pager pager = new Pager() { PageSize = pageSize, PageIndex = pageIndex }; Expression <Func <Notification, bool> > Filter = x => !x.IsDeleted; Filter = Filter.And(x => x.ToUserId == this.ActiveUser.Id); if (status != SharedEnums.SeenStatus.All) { if (status == SharedEnums.SeenStatus.Seen) { Filter = Filter.And(x => x.IsSeen); } else { Filter = Filter.And(x => !x.IsSeen); } } if (type != SharedEnums.NotificationType.All) { Filter = Filter.And(x => x.Type == type); } var includes = Helper.ToStringArray(include); var notifications = await Mgr.FindAll_Async(Filter, orderBy, pager, includes); HttpContext.Current.Response.Headers.Add("access-control-expose-headers", "X-Pager"); HttpContext.Current.Response.Headers.Add("X-Pager", Newtonsoft.Json.JsonConvert.SerializeObject(pager)); return(Ok(notifications)); } catch (Exception ex) { Unit.LogError(ex, this.ToString(), this.ActionContext.ActionArguments.ToList()); return(InternalServerError(ex)); } }