static void Main() { Report a = new Report { Id = 1, ProjectId = 13 }, b = new Report { Id = 1, ProjectId = 13 }, c = new Report { Id = 1, ProjectId = 12 }; Console.WriteLine(PropertyCompare.Equal(a, b)); Console.WriteLine(PropertyCompare.Equal(a, c)); }
public bool AddIfHasChangePolitico(dynamic registroImportacao, Politico actualPolitico) { var politico = (Politico)_mapper.Map <Politico>(registroImportacao); var hasChange = !PropertyCompare.Equal(politico, actualPolitico, nameof(politico.Id), nameof(politico.ImportacaoId), nameof(politico.Importacao)); if (hasChange) { actualPolitico = _mapper.Map <Politico, Politico>(politico, actualPolitico); actualPolitico.SetImportacao(this); _politicos.Add(actualPolitico); AddDomainEvent(new PoliticoChangedDomainEvent(actualPolitico)); } return(hasChange); }
public bool RenewalStorageGroupZones(List <StorageGroupsByZonesDTO> storageGroupZones) { bool result; var dbSideRusult = mapper.Map <IEnumerable <StorageGroupZones>, List <StorageGroupZonesDTO> >(StorageGroupZones.GetAll()); var linqSideRusult = storageGroupZones.Select(s => new StorageGroupZonesDTO { StorageGroupZoneId = s.StorageGroupZoneId ?? 0, StorageGroupId = s.StorageGroupId, ZoneNameId = s.ZoneNameId ?? 0 }).ToList(); var ids = dbSideRusult.Select(s => s.StorageGroupZoneId) .Union(linqSideRusult.Select(s => s.StorageGroupZoneId)); var fullResult = (from i in ids join db in dbSideRusult on i equals db.StorageGroupZoneId into j_db from db in j_db.DefaultIfEmpty() join linq in linqSideRusult on i equals linq.StorageGroupZoneId into j_linq from linq in j_linq.DefaultIfEmpty() select new { db, linq }) .ToList(); string caseStr; int storageGroupZoneId = 0; try { for (int i = 0; i < fullResult.Count(); i++) { caseStr = (fullResult[i].db == null) ? "add" : (fullResult[i].linq == null) ? "delete" : (!PropertyCompare.Equal <StorageGroupZonesDTO>(fullResult[i].db, fullResult[i].linq)) ? "update" : ""; switch (caseStr) { case "add": { StorageGroupZones.Create(mapper.Map <StorageGroupZones>(fullResult[i].linq)); } break; case "update": { storageGroupZoneId = fullResult[i].linq.StorageGroupZoneId; var eGroup = StorageGroupZones.GetAll().SingleOrDefault(c => c.StorageGroupZoneId == storageGroupZoneId); StorageGroupZones.Update((mapper.Map <StorageGroupZonesDTO, StorageGroupZones>(fullResult[i].linq, eGroup))); } break; case "delete": { storageGroupZoneId = fullResult[i].db.StorageGroupZoneId; StorageGroupZones.Delete(StorageGroupZones.GetAll().FirstOrDefault(c => c.StorageGroupZoneId == storageGroupZoneId)); } break; } } result = true; } catch (Exception ex) { MessageBox.Show("Действие отменено.\n" + ex.Message, "Сохранение", MessageBoxButtons.OK, MessageBoxIcon.Information); result = false; } return(result); }