/// <summary> /// Unisce gli articoli in quello selezionato nella prima form /// </summary> /// <param name="artToMerge"></param> private void MergeArticoli(Articolo artToMerge) { using (var save = new SaveEntityManager(true)) { var elem = save.UnitOfWork.ArticoliRepository.Find(a => a.ID == this.SelectedItem.ID || a.ID == artToMerge.ID).ToList(); var baseItem = elem.Where(a => a.ID == this.SelectedItem.ID).First(); elem.Remove(baseItem); var secondItem = elem.First(); var list = UtilityProp.GetProperties(baseItem); /*escludo le proprieta del oggetto entita base */ MergeObjects(baseItem, secondItem); if (baseItem.Condizione == enCondizioneArticolo.NonSpecificato) { baseItem.Condizione = secondItem.Condizione; } save.UnitOfWork.ArticoliRepository.Update(baseItem); var fotoArt2 = save.UnitOfWork.FotoArticoloRepository.Find(a => a.ArticoloID == secondItem.ID).ToList(); if (fotoArt2.Count() > 0) { MessageManager.NotificaInfo("Sposto le eventuali foto da un articolo all'altro"); foreach (var item in fotoArt2) { /*sostituisco l'articolo*/ item.ArticoloID = baseItem.ID; save.UnitOfWork.FotoArticoloRepository.Update(item); } } else { MessageManager.NotificaInfo("Non ci sono foto"); } var aggList = save.UnitOfWork.AggiornamentoWebArticoloRepository.Find(a => a.ArticoloID == baseItem.ID || a.ArticoloID == secondItem.ID).ToList(); var baseAgg = aggList.Where(a => a.ArticoloID == baseItem.ID).First(); var secondAgg = aggList.Where(a => a.ArticoloID != baseItem.ID).First(); if (string.IsNullOrEmpty(baseAgg.CodiceArticoloEcommerce)) { /*scambio l'eventuale codice dell'articolo nell'ecommerce*/ baseAgg.CodiceArticoloEcommerce = secondAgg.CodiceArticoloEcommerce; secondAgg.CodiceArticoloEcommerce = ""; save.UnitOfWork.AggiornamentoWebArticoloRepository.Update(baseAgg); save.UnitOfWork.AggiornamentoWebArticoloRepository.Update(secondAgg); } save.SaveEntity(enSaveOperation.Unione); MessageManager.NotificaInfo("Le eventuali giacenze vanno spostate manualmente"); } }
private static void MergeObjects(object obj1Dest, object obj2) { var listPropBase = UtilityProp.GetProperties(new StrumentiMusicali.Library.Entity.Base.BaseEntity()); var objToEnumProp = obj1Dest; if (objToEnumProp == null) { objToEnumProp = obj2; } var allProperties = UtilityProp.GetProperties(objToEnumProp).ToList().Where(x => !listPropBase.Contains(x) && x.CanRead && x.CanWrite && !x.Name.StartsWith("Show") && !x.Name.StartsWith("Categ") ); foreach (var pi in allProperties) { object defaultValue; if (pi.PropertyType == typeof(string)) { defaultValue = pi.GetValue(obj1Dest, null); } else if (pi.PropertyType.IsValueType) { defaultValue = Activator.CreateInstance(pi.PropertyType); } else { defaultValue = null; if (pi.PropertyType.FullName.StartsWith("Strument")) { MergeObjects(pi.GetValue(obj1Dest, null), pi.GetValue(obj2, null)); continue; } else { } } var value = pi.GetValue(obj1Dest, null); if (value != defaultValue) { // pi.SetValue(objResult, value, null); } else { value = pi.GetValue(obj2, null); if (value != defaultValue) { pi.SetValue(obj1Dest, value, null); } } } }
public static bool Validate() { var datiIntestazioneStampaFattura = ReadSetting(); var list = UtilityProp.GetProperties(datiIntestazioneStampaFattura); foreach (var item in list) { if (item.GetValue(datiIntestazioneStampaFattura) == null || string.IsNullOrEmpty((string)item.GetValue(datiIntestazioneStampaFattura).ToString())) { var act = new Action(() => { EventAggregator.Instance().Publish( new ApriAmbiente(enAmbiente.SettingStampa)); }); MessageManager.NotificaWarnig("Non sono state compilate tutte le informazioni sul negozio da stampare sulla fattura. Clicca per compilare.", act); return(false); } } return(true); }