public async Task <GenericResponse <IEnumerable <UserDto> > > GetList([FromBody] FilterCriteria filterCriteria)
        {
            IEnumerable <UserBo>  listBo  = null;
            IEnumerable <UserDto> listDto = null;
            ServiceResult <IEnumerable <UserBo> > resultList;
            CultureInfo enCulture = new CultureInfo("en-US");

            long organizationId = 0;

            if (filterCriteria == null)
            {
                filterCriteria = new FilterCriteria();
            }

            DictonaryFilter dictonaryFilter = filterCriteria.DictonaryBasedFilter.FirstOrDefault(x => x.Key == "organizationId");

            if (dictonaryFilter == null || !long.TryParse(dictonaryFilter.Data, out organizationId))
            {
                organizationId = 0;
            }

            if (organizationId > 0)
            {
                // Yetki kontrolü yapılıyor
                ServiceResult <bool> resultAutorized = await GetAutorizedOrganizationStatusById(organizationId);

                if (!resultAutorized.Success || !resultAutorized.Data)
                {
                    return(GenericResponse <IEnumerable <UserDto> > .Error(ResultType.Error, "Not Autorized Access!", "U_GL_01", StatusCodes.Status203NonAuthoritative));
                }
            }
            else
            {
                ServiceResult <UserBo> userDtoResult = await GetCurrentUser();

                if (!userDtoResult.Success || userDtoResult.Data == null)
                {
                    return(GenericResponse <IEnumerable <UserDto> > .Error(ResultType.Error, "User Not Found!", "U_GL_02", StatusCodes.Status404NotFound));
                }

                organizationId = userDtoResult.Data.OrganizationId;
            }

            resultList = await serviceManager.User_Service.GetListAsync(organizationId, filterCriteria);

            if (!resultList.Success || resultList.Data == null)
            {
                return(GenericResponse <IEnumerable <UserDto> > .Error(ResultType.Error, resultList.Error, "U_GL_03", StatusCodes.Status500InternalServerError));
            }

            listBo  = resultList.Data;
            listDto = listBo.Select(x => UserBo.ConvertToDto(x)).ToList();

            return(GenericResponse <IEnumerable <UserDto> > .Ok(listDto));
        }
Example #2
0
        public async Task <GenericResponse <IEnumerable <OrganizationDto> > > GetList([FromBody] FilterCriteria filterCriteria)
        {
            IEnumerable <OrganizationBo> listBo = null;
            ServiceResult <IEnumerable <OrganizationBo> > resultList;
            CultureInfo enCulture = new CultureInfo("en-US");

            long organizationId = 0;

            if (filterCriteria == null)
            {
                filterCriteria = new FilterCriteria();
            }

            DictonaryFilter dictonaryFilter = filterCriteria.DictonaryBasedFilter.FirstOrDefault(x => x.Key == "organizationId");

            if (dictonaryFilter == null || !long.TryParse(dictonaryFilter.Data, out organizationId))
            {
                organizationId = 0;
            }

            if (organizationId > 0)
            {
                // Yetki kontrolü yapılıyor
                ServiceResult <bool> resultAutorized = await GetAutorizedOrganizationStatusById(organizationId);

                if (!resultAutorized.Success || !resultAutorized.Data)
                {
                    return(GenericResponse <IEnumerable <OrganizationDto> > .Error(ResultType.Error, "Not Autorized Access!", "O_GL_01", StatusCodes.Status203NonAuthoritative));
                }
            }
            else
            {
                ServiceResult <UserBo> userDtoResult = await GetCurrentUser();

                if (!userDtoResult.Success || userDtoResult.Data == null)
                {
                    return(GenericResponse <IEnumerable <OrganizationDto> > .Error(ResultType.Error, "User Not Found!", "O_GL_02", StatusCodes.Status404NotFound));
                }
                organizationId = userDtoResult.Data.OrganizationId;
            }

            resultList = await serviceManager.Organization_Service.GetHierarchicalyByOrganizationIdAsync(organizationId);

            if (!resultList.Success || resultList.Data == null)
            {
                return(GenericResponse <IEnumerable <OrganizationDto> > .Error(ResultType.Error, resultList.Error, "O_GL_03", StatusCodes.Status500InternalServerError));
            }
            listBo = resultList.Data;

            foreach (DictonaryFilter item in filterCriteria.DictonaryBasedFilter)
            {
                switch (item.Key.ToLower(enCulture))
                {
                case "title":
                    switch (item.OperandType)
                    {
                    case OperandType.Equal:
                        listBo = listBo.Where(x => x.Title.ToLower() == item.Data.ToLower());
                        break;

                    case OperandType.NotEqual:
                        listBo = listBo.Where(x => x.Title.ToLower() != item.Data.ToLower());
                        break;

                    case OperandType.Like:
                        listBo = listBo.Where(x => x.Title.ToLower().Contains(item.Data.ToLower()));
                        break;
                    }
                    break;

                case "description":
                    switch (item.OperandType)
                    {
                    case OperandType.Equal:
                        listBo = listBo.Where(x => x.Description.ToLower() == item.Data.ToLower());
                        break;

                    case OperandType.NotEqual:
                        listBo = listBo.Where(x => x.Description.ToLower() != item.Data.ToLower());
                        break;

                    case OperandType.Like:
                        listBo = listBo.Where(x => x.Description.ToLower().Contains(item.Data.ToLower()));
                        break;
                    }
                    break;
                }
            }

            IEnumerable <OrganizationDto> listDto = listBo.Select(x => OrganizationBo.ConvertToDto(x));

            return(GenericResponse <IEnumerable <OrganizationDto> > .Ok(listDto));
        }