Exemplo n.º 1
0
        /// <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");
            }
        }
Exemplo n.º 2
0
        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);
                    }
                }
            }
        }
Exemplo n.º 3
0
        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);
        }