Exemple #1
0
        protected override void UndoDetail(TDto dto, Recyclate entity, bool isDelete)
        {
            base.UndoDetail(dto, entity, isDelete);

            if (entity.GetID() > 0 && entity.RecyclatePackages.Count > 0)
            {
                if (isDelete || dto.RecyclatePackages == null || dto.RecyclatePackages.Count == 0)
                {
                    this.recyclateRepository.TotalSmartPortalEntities.RecyclatePackages.RemoveRange(entity.RecyclatePackages);
                }
                else
                {
                    entity.RecyclatePackages.ToList()                                                                      //Have to use .ToList(): to convert enumerable to List before do remove. To correct this error: Collection was modified; enumeration operation may not execute.
                    .Where(detailModel => !dto.RecyclatePackages.Any(detailDTO => detailDTO.RecyclatePackageID == detailModel.RecyclatePackageID))
                    .Each(deleted => this.recyclateRepository.TotalSmartPortalEntities.RecyclatePackages.Remove(deleted)); //remove deleted details
                }
            }
        }
Exemple #2
0
        protected override void UpdateDetail(TDto dto, Recyclate entity)
        {
            base.UpdateDetail(dto, entity);

            if (dto.RecyclatePackages != null && dto.RecyclatePackages.Count > 0)
            {
                dto.RecyclatePackages.Each(detailDTO =>
                {
                    RecyclatePackage recyclatePackage;

                    if (detailDTO.RecyclatePackageID <= 0 || (recyclatePackage = entity.RecyclatePackages.First(detailModel => detailModel.RecyclatePackageID == detailDTO.RecyclatePackageID)) == null)
                    {
                        recyclatePackage = new RecyclatePackage();
                        entity.RecyclatePackages.Add(recyclatePackage);
                    }

                    Mapper.Map <RecyclatePackageDTO, RecyclatePackage>(detailDTO, recyclatePackage);
                });
            }
        }