Example #1
0
        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));
            }
        }