Beispiel #1
0
        public IHttpActionResult GetAllRepgroups(FilterRepGroups filter)
        {
            if (filter == null)
            {
                filter             = new FilterRepGroups();
                filter.PageSize    = 25;
                filter.CurrentPage = 1;
            }
            var response = repository.GetRepGroups(filter, CurrentBusinessId.Value);

            return(Ok <DataResponse <EntityList <EntityRepGroups> > >(response));
        }
        public IHttpActionResult GetByFilter(FilterRepGroups filter)
        {
            var repository = new RepositoryRepGroups();

            if (filter == null)
            {
                filter = new FilterRepGroups {
                    PageSize = 25, CurrentPage = 1
                }
            }
            ;
            var response = repository.GetRepGroups(filter, CurrentBusinessId.Value);

            return(Ok <DataResponse <EntityList <EntityRepGroups> > >(response));
        }
        public DataResponse <EntityList <EntityRepGroups> > GetRepGroups(FilterRepGroups filter, int currentBusineId, int take = 10, int skip = 0)
        {
            var response = new DataResponse <EntityList <EntityRepGroups> >();

            try
            {
                if (filter != null)
                {
                    take = filter.Take;
                    skip = filter.Skip;
                }
                base.DBInit();
                var query = DBEntity.RepGroups.Where(a => a.BusinessId == currentBusineId);
                if (filter != null)
                {
                    if (!String.IsNullOrEmpty(filter.KeyWords))
                    {
                        query = query.Where(a => a.RepGroupName.ToLower().Contains(filter.KeyWords) ||
                                            a.RepgroupManagerMappers.Any(b => b.User.FirstName.ToLower().Contains(filter.KeyWords.ToLower())) ||
                                            a.RepgroupManagerMappers.Any(b => b.User.Email.ToLower().Contains(filter.KeyWords.ToLower())) ||
                                            a.Reps.Any(b => b.User2.Email.ToLower().Contains(filter.KeyWords.ToLower())) ||
                                            a.RepgroupManagerMappers.Any(b => b.User.Email.ToLower().Contains(filter.KeyWords.ToLower())) ||
                                            a.BusinessMaster.BusinessName.ToLower().Contains(filter.KeyWords.ToLower()));
                    }
                }
                var selectQuery = query.Select(a => new EntityRepGroups
                {
                    Id           = a.Id,
                    RepGroupName = a.RepGroupName,
                    Description  = a.Description,
                    CreatedBy    = a.CreatedBy,
                    CreatedOn    = a.CreatedOn,
                    UpdatedBy    = a.UpdatedBy,
                    UpdatedOn    = a.UpdatedOn,
                    BusinessId   = a.BusinessId,
                    IsActive     = a.IsActive,
                    OldId        = a.OldId,
                    //SalesDirectorId = a.SalesDirectorId,
                    CreatedByName      = a.User.FirstName + " " + a.User.LastName,
                    UpdatedByName      = a.User1.FirstName + " " + a.User1.LastName,
                    SalesDirectors     = a.RepgroupManagerMappers.Where(b => b.UserRole == (int)RepgroupUserType.Director).Select(b => b.User.FirstName + " " + a.User.LastName),
                    RepGroupManagerIds = a.RepgroupManagerMappers.Select(b => b.ManagerId).ToList(),
                    Managers           = a.RepgroupManagerMappers.Where(b => b.User.IsActive == true).Select(b => b.User.FirstName + " " + b.User.LastName)
                });

                if (string.IsNullOrEmpty(filter.SortKey) || string.IsNullOrEmpty(filter.SortOrder))
                {
                    selectQuery = selectQuery.OrderByDescending(o => o.CreatedOn);
                }
                else
                {
                    string orderBy = string.Format("{0} {1}", filter.SortKey, filter.SortOrder);
                    selectQuery = selectQuery.OrderBy(orderBy);
                }

                response = GetList <EntityRepGroups>(selectQuery, skip, take);
            }
            catch (Exception ex)
            {
                ex.Log();
            }
            finally
            {
                base.DBClose();
            }

            return(response);
        }