public List <WasteRoleDto> GetAllDataGroupByRoleOrderByUserAndGroupRole() { Func <IQueryable <WASTE_ROLE>, IOrderedQueryable <WASTE_ROLE> > orderByFilter = n => n.OrderBy(z => z.USER_ID).ThenBy(z => z.GROUP_ROLE); var listData = _repository.Get(null, orderByFilter, _includeTables).ToList(); var listMapper = Mapper.Map <List <WasteRoleDto> >(listData); var listDistinct = listMapper.Select(c => new { c.USER_ID, c.WERKS, c.FirstName, c.LastName, c.EmailAddress, c.Phone, c.PlantDescription }).Distinct().ToList(); var result = new List <WasteRoleDto>(); foreach (var item in listDistinct) { var listDetails = listMapper.Where(c => c.USER_ID == item.USER_ID && c.WERKS == item.WERKS).ToList(); var wasteDto = new WasteRoleDto(); wasteDto.USER_ID = item.USER_ID; wasteDto.WERKS = item.WERKS; wasteDto.WasteGroupDescription = string.Join("<br />", listDetails.Select(c => "-" + c.WasteGroupDescription).ToList()); wasteDto.FirstName = item.FirstName; wasteDto.LastName = item.LastName; wasteDto.EmailAddress = item.EmailAddress; wasteDto.Phone = item.Phone; wasteDto.PlantDescription = item.PlantDescription; int wasteRoleId = 0; var waste = listMapper.FirstOrDefault(c => c.USER_ID == item.USER_ID && c.WERKS == item.WERKS); if (waste != null) { wasteRoleId = waste.WASTE_ROLE_ID; } wasteDto.WASTE_ROLE_ID = wasteRoleId; result.Add(wasteDto); } return(result); }
private bool SetChangesHistory(WasteRoleDto origin, WasteRoleDto data, string userId) { bool isModified = false; var changesData = new Dictionary <string, bool>(); changesData.Add("USER_ID", origin.USER_ID == data.USER_ID); changesData.Add("PLANT_ID", origin.WERKS == data.WERKS); changesData.Add("WASTE_GROUP", origin.GROUP_ROLE == data.GROUP_ROLE); foreach (var listChange in changesData) { if (listChange.Value) { continue; } var changes = new CHANGES_HISTORY(); changes.FORM_TYPE_ID = Enums.MenuList.WasteRole; changes.FORM_ID = data.WASTE_ROLE_ID.ToString(); changes.FIELD_NAME = listChange.Key; changes.MODIFIED_BY = userId; changes.MODIFIED_DATE = DateTime.Now; switch (listChange.Key) { case "USER_ID": changes.OLD_VALUE = origin.USER_ID; changes.NEW_VALUE = data.USER_ID; break; case "PLANT_ID": changes.OLD_VALUE = origin.WERKS; changes.NEW_VALUE = data.WERKS; break; case "WASTE_GROUP": changes.OLD_VALUE = EnumHelper.GetDescription(origin.GROUP_ROLE); changes.NEW_VALUE = EnumHelper.GetDescription(data.GROUP_ROLE); break; } _changesHistoryBll.AddHistory(changes); isModified = true; } return(isModified); }