public async Task CreateAsync() { var body = new ItemTypeRequest { TypeKey = "JOB", Display = "Job", DisplayPlural = "Jobs", Description = "HR" }; MetaResponse response = await _service.CreateAsync(body); Assert.IsNotNull(response); }
public async Task <OperationDataResult <Paged <ItemTypeSimpleModel> > > Index( [FromBody] ItemTypeRequest itemTypeRequest) { return(await _inventoryItemTypeService.GetItemTypes(itemTypeRequest)); }
public async Task <OperationDataResult <Paged <ItemTypeSimpleModel> > > GetItemTypes( ItemTypeRequest itemTypeRequest) { try { var inventoryItemTypeQuery = _dbContext.ItemTypes .AsQueryable(); // filter by name if (!string.IsNullOrEmpty(itemTypeRequest.NameFilter)) { inventoryItemTypeQuery = inventoryItemTypeQuery .Where(x => x.Name.Contains(itemTypeRequest.NameFilter)); } // filter by tags if (itemTypeRequest.TagIds.Any()) { foreach (var tagId in itemTypeRequest.TagIds) { inventoryItemTypeQuery = inventoryItemTypeQuery .Where(x => x.ItemTypeTags .Where(y => y.WorkflowState != Constants.WorkflowStates.Removed) .Any(y => y.InventoryTagId == tagId)); } } inventoryItemTypeQuery = inventoryItemTypeQuery .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed); // calculate total before pagination var total = await inventoryItemTypeQuery.Select(x => x.Id).CountAsync(); // pagination inventoryItemTypeQuery = inventoryItemTypeQuery .Skip(itemTypeRequest.Offset) .Take(itemTypeRequest.PageSize); // get userIds for get full name users var fullNamesUserWithId = new List <KeyValuePair <int, string> >(); foreach (var userId in inventoryItemTypeQuery.Select(x => x.CreatedByUserId).Distinct()) { // get full names users fullNamesUserWithId.Add(new KeyValuePair <int, string>(userId, await _userService.GetFullNameUserByUserIdAsync(userId))); } // add select var inventoryItemTypeMappedQuery = AddSelectToItemTypeQuery(inventoryItemTypeQuery); // sort inventoryItemTypeMappedQuery = QueryHelper.AddSortToQuery(inventoryItemTypeMappedQuery, itemTypeRequest.Sort, itemTypeRequest.IsSortDsc); // take objects from db var inventoryItemTypeFromDb = await inventoryItemTypeMappedQuery.ToListAsync(); foreach (var(userId, fullNameUser) in fullNamesUserWithId) { foreach (var itemTypeSimpleModel in inventoryItemTypeFromDb.Where(x => x.CreatedByUserId == userId)) { itemTypeSimpleModel.CreatedBy = fullNameUser; } } var returnValue = new Paged <ItemTypeSimpleModel> { Entities = inventoryItemTypeFromDb, Total = total, }; return(new OperationDataResult <Paged <ItemTypeSimpleModel> >(true, returnValue)); } catch (Exception e) { Trace.TraceError(e.Message); return(new OperationDataResult <Paged <ItemTypeSimpleModel> >(false, _inventoryLocalizationService.GetString("ErrorObtainingLists"))); } }