private CommodityDTO Map(tblCommodity tbl,DateTime from)
 {
     var dto = new CommodityDTO
     {
         MasterId = tbl.Id,
         DateCreated = tbl.IM_DateCreated,
         DateLastUpdated = tbl.IM_DateLastUpdated,
         StatusId = tbl.IM_Status,
         Name = tbl.Name,
         CommodityTypeId = tbl.CommodityTypeId,
         Code = tbl.Code,
         Description = tbl.Description,
         CommodityGrades = new List<CommodityGradeDTO>(),
     };
     var items = tbl.tblCommodityGrade.Where(s => 
         s.IM_Status == (int)EntityStatus.Active && s.CommodityId == dto.MasterId);
     foreach( var item in items)
     {
         var grade = new CommodityGradeDTO
         {   
             MasterId = item.Id,
             DateCreated = item.IM_DateCreated,
             DateLastUpdated = item.IM_DateLastUpdated,
             StatusId = item.IM_Status,
             Name = item.Name,
             UsageTypeId = item.UsageTypeId,
             Code = item.Code,
             Description = item.Description,
             CommodityId = item.CommodityId
         };
         dto.CommodityGrades.Add(grade);
     }
     dto.DeletedCommodityGradesItem = tbl.tblCommodityGrade.Where(n => n.IM_Status == (int)EntityStatus.Deleted && n.CommodityId==tbl.Id && n.IM_DateLastUpdated > from).Select(s => s.Id).ToList();
     return dto;
 }
 public Commodity Map(CommodityDTO dto)
 {
     if (dto == null) return null;
     var commodity = Mapper.Map<CommodityDTO, Commodity>(dto);
     commodity.CommodityType = _commodityTypeRepository.GetById(dto.CommodityTypeId);
     if(dto.CommodityGrades!=null)
          commodity.CommodityGrades = dto.CommodityGrades.Select(n => Map(n, dto.MasterId)).ToList();
     return commodity;
 }