Example #1
1
        public static string FindPositionPart(IList<string> parts, int cursorPosition, out int foundPartsIndex, out int cursorInPartPosition)
        {
            cursorInPartPosition = 0;
              var partsComplete = parts.Aggregate(String.Empty, (aggr, s) => aggr + s);
              for (int i = 0; i < parts.Count(); i++) {
            var partsLower = parts.Take(i).Aggregate(String.Empty, (aggr, s) => aggr + s);
            var partsUpper = parts.Take(i + 1).Aggregate(String.Empty, (aggr, s) => aggr + s);

            var b = partsLower.Length;
            var t = partsUpper.Length;

            if ((cursorPosition >= b && cursorPosition < t) || partsUpper == partsComplete) {
              if (parts[i] == WorkDayParser.itemSeparator.ToString() || parts[i] == WorkDayParser.hourProjectInfoSeparator.ToString()) {
            // cursor left of separator
            foundPartsIndex = i - 1;
            var prevPart = parts.ElementAt(foundPartsIndex);
            // find out where in the found part the cursor is, need to use prevpart an its length
            cursorInPartPosition = prevPart.Length;
            return prevPart;
              } else {
            // find out where in the found part the cursor is
            cursorInPartPosition = cursorPosition - b;
            foundPartsIndex = i;
            return parts.ElementAt(i);
              }
            }
              }
              // not found
              foundPartsIndex = -1;
              return String.Empty;
        }
Example #2
0
 private static void MorphPart(RenderMeshPart part, IList<PartMorphInfo> morphInfos)
 {
     var count = morphInfos.Any() ? 1.0f / morphInfos.Count() : 1.0f;
     if (part.IsMirrored)
     {
         var verticesDictionary = new Dictionary<uint, Vector3>();
         for (var i = 0; i < part.Points.Count; i++)
         {
             var point = part.Points[i];
             var delta = morphInfos.Aggregate(Vector3.Zero, (current, mi) => current + mi.PointsMorph[i] * mi.Delta) * count;
             foreach (var index in point.Indices)
             {
                 if (!verticesDictionary.ContainsKey(index))
                     verticesDictionary.Add(index, delta);
             }
         }
         for (var i = 0; i < part.Vertices.Length; i++)
         {
             var vertex = part.Vertices[i];
             if (vertex.OriginalPosition.X >= 0.0f && vertex.OriginalPosition.X <= 1.0f)
             {
                 var a = (uint)Math.Abs(vertex.OriginalPosition.Y);
                 var b = (uint)Math.Abs(vertex.OriginalPosition.Z);
                 var point0 = part.BaseVertices[a].Position + verticesDictionary[a];
                 var point1 = part.BaseVertices[b].Position + verticesDictionary[b];
                 vertex.Position = point0 + (point1 - point0) * vertex.OriginalPosition.X;
             }
             else
             {
                 var p = (uint)Math.Abs(vertex.OriginalPosition.X) - 2;
                 var delta = verticesDictionary[p];
                 vertex.Position = part.BaseVertices[p].Position + delta;
                 if (vertex.Position.X > 0.0f == part.IsLeftToRight)
                     vertex.Position.X = 0.0f;
                 if (vertex.OriginalPosition.X < 0.0f)
                     vertex.Position.X *= -1.0f;
             }
             part.Vertices[i] = vertex;
         }
     }
     else
     {
         for (var i = 0; i < part.Points.Count; i++)
         {
             var point = part.Points[i];
             var delta = morphInfos.Aggregate(Vector3.Zero, (current, mi) => current + mi.PointsMorph[i] * mi.Delta) * count;
             foreach (var index in point.Indices)
                 part.Vertices[index].Position = point.Position + delta;
         }
     }
     part.UpdateNormals();
 }
Example #3
0
        public static void ModifyFile(string pathToFile, IList<ProjectSolutionMapping> mappings)
        {
            string allText;
            Encoding originalEncoding;
            using (var fileStream = File.OpenText(pathToFile))
            {
                originalEncoding = fileStream.CurrentEncoding;
                allText = fileStream.ReadToEnd();
            }

            if (string.IsNullOrEmpty(allText))
            {
                return;
            }

            if (!AnythingNeedsReplacing(allText, mappings))
            {
                Console.WriteLine(@"nothing to modify in " + pathToFile);
                return;
            }

            Console.WriteLine(@"modifying " + pathToFile);

            allText = mappings.Aggregate(
                allText,
                (current, eachMapping) => current.Replace(eachMapping.OldText, eachMapping.NewText));

            File.WriteAllText(pathToFile, allText, originalEncoding);
        }
 public static async Task ShowErrorsAsync(IList<string> errors)
 {
     if (errors.Count > 0)
     {
         await ShowErrorAsync(errors.Aggregate((s, next) => s + '\n' + next));
     }
 }
Example #5
0
        public CollisionGroup(IList<SimpleSphereCollider> colliders)
        {
            Colliders = colliders;

            _center = colliders.Aggregate(Vector3.zero, (total, each) => (total + each.transform.position)) / colliders.Count;

            _radius = colliders.Select( _=> (_.transform.position - _center).magnitude + _radius ).Max();
        }
 private string AppendMethodParameters(string methodName, IList<string> parameters)
 {
     if (parameters.Count == 0)
     {
         return methodName + "()";
     }
     return methodName + ('(' + parameters.Aggregate((a, b) => a + ", " + b) + ')');
 }
Example #7
0
 private static IList<Int32> GenerateSlantingSegmentsRow(IList<Int32> sourceValue, Int32 delta)
 {
     return sourceValue.Aggregate(new List<Int32>(), (acc, value) =>
     {
         acc.AddRange(new[] {value - delta, value + delta});
         return acc;
     });
 }
 public bool OnActivate(IList<string> args)
 {
     // handle command line arguments of second instance
     Current.MainWindow.Title = args.Any()
                                    ? args.Aggregate((s1, s2) => string.Format("{0}, {1}", s1, s2))
                                    : "Second instance launched";
     return true;
 }
        private static void StartProcess(IList<string> parameters)
        {
            var process = new Process();

            process.StartInfo.FileName = App.CurrentTranspilerPath;
            process.StartInfo.Arguments = parameters.Aggregate((x, y) => x + " " + y);

            process.Start();
        }
 public ValidateDeploymentUpgradeTypeAttribute()
 {
     this.validValues = new List<string>
     {
         UpgradeType.Auto,
         UpgradeType.Manual,
         UpgradeType.Simultaneous
     };
     commaSeparatedUpgradeTypes = validValues.Aggregate((c, n) => c + ", " + n);
 }
 public static void ShowErrors(IList<string> errors)
 {
     if (errors.Count > 0)
     {
         ShowError(errors.Aggregate((s, next) => s + '\n' + next));
     }
     else
     {
         ShowError("An unknown error has occurred.");
     }
 }
Example #12
0
        protected override int performOperation(IList<int> input)
        {
            if (input.Count == 0)
            {
                return 1;
            }
            if (input.Count == 1)
            {
                return input.First();
            }

            return input.Aggregate((a, b) => a * b);
        }
Example #13
0
        public static float Run(IList<double> dp0, IList<IList<double>> dpc1)
        {
            IList<LocalPattern> lps1 = new List<LocalPattern>();
            lps1 = dpc1.Aggregate(lps1,
                (current, ts) => current.Concat(GetLocalPatterns(ts, WINDOW_SIZE)).ToList());

            IList<LocalPattern> lps0 = GetLocalPatterns(dp0, WINDOW_SIZE);
            BUCKET_SIZE = (int) (TOP_BUCKET_RATIO*dp0.Count);

            List<List<LocalPatternMatch>> lpmBuckets = GetLocalPatternMatchBuckets(lps0, lps1);

            var allLpms = new List<LocalPatternMatch>();
            foreach (var bucket in lpmBuckets)
            {
                foreach (LocalPatternMatch lpm in bucket)
                {
                    allLpms.Add(lpm);
                }
            }

            int numVertices = allLpms.Count + 2;
            var costMatrix = new int[numVertices, numVertices];

            for (int i = 0; i < allLpms.Count; i++)
            {
                int distToStart = LocalPatternMatch.DistanceToPs(allLpms[i], allLpms.Count, WINDOW_SIZE);
                int distToEnd = LocalPatternMatch.DistanceToPe(allLpms[i], allLpms.Count, WINDOW_SIZE);

                costMatrix[0, i + 1] = distToStart;
                costMatrix[i + 1, numVertices - 1] = distToEnd;
            }

            for (int row = 0; row < numVertices - 2; row++)
            {
                for (int col = 0; col < numVertices - 2; col++)
                {
                    if (row == col)
                        costMatrix[row + 1, col + 1] = 0;
                    else
                        costMatrix[row + 1, col + 1] = LocalPatternMatch.Distance(allLpms[row], allLpms[col],
                            allLpms.Count, WINDOW_SIZE);
                }
            }

            var dijkstra = new Dijkstra.Dijkstra();
            dijkstra.Run(costMatrix, 0);
            return dijkstra.StartToEndDistance;
        }
 public ValidateVMSizeAttribute(bool includeExtraSmall)
 {
     this.validValues = new List<string>
     {
         "Small",
         "Medium",
         "Large",
         "ExtraLarge",
         "A6",
         "A7"
     };
     if (includeExtraSmall)
     {
         this.validValues.Insert(0, "ExtraSmall");
     }
     commaSeparatedVMSizes = validValues.Aggregate((c, n) => c + ", " + n);
 }
Example #15
0
        public string UpdateAlertAttivita(IList<AlertAttivitaDTO> listaAlert)
        {
            try
            {
                var message = string.Empty;
                foreach (var alertAttivitaDTO in listaAlert)
                {
                    var alert =  manage(alertAttivitaDTO);
                    if (alert == null)
                        message += string.Format("L'alert {0} non è stato salvato.{1}", alertAttivitaDTO.ID, Environment.NewLine);
                }

                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio degli Alert - {0} - alert:{1}", ex, Utility.GetMethodDescription(), listaAlert.Aggregate(string.Empty, (current, alertAttivitaDTO) => current + (alertAttivitaDTO.ID + ", ")));
                throw;
            }
        }
Example #16
0
		static void DownloadSubtitle(string movieFileName, bool lucky, IList<string> languages) {
			var systemLanguage = GetSystemLanguage();
			using (var osdb = Osdb.Login(systemLanguage, "OS Test User Agent")) {
				var subtitles = osdb.SearchSubtitlesFromFile(languages.Aggregate( (a,b) => a + "," +b ),movieFileName);

				int subtitlesCount = subtitles.Count;
				if (subtitlesCount == 0) {
					Console.WriteLine("Sorry, no subtitles found for your movie");
					return;
				}
				var selectedSubtitle = subtitles.First();
				if (!lucky) {
					var canceled = !PromptForSubtitle(subtitles, ref selectedSubtitle);
					if (canceled) {
						return;
					}
				}

				string subtitleFile = osdb.DownloadSubtitleToPath(Path.GetDirectoryName(movieFileName), selectedSubtitle);
				Console.WriteLine("Subtitle downloaded to '{0}'", subtitleFile);
			}
		}
Example #17
0
 public IList<AnswerGuess> GetAnswerGuesses(IList<AnsweredQuestion> answeredQuestions)
 {
     var answerGuesses = new List<AnswerGuess>();
     double answeredQuestionsProbability = 0;
     foreach (var answerStatistic in answerStatistics)
     {
         var answeredQuestionsProbabilityRelativeToAnswer = answeredQuestions.Aggregate(1.0,
             (curr, q) => curr * GetAnsweringFrequency(answerStatistic.Value, q) / GetTotalAnsweringFrequency(answerStatistic.Value, q));
         var answerProbability = answeredQuestionsProbabilityRelativeToAnswer * answerStatistic.Value.AnswerCount / answersGuessedCount;
         answerGuesses.Add(new AnswerGuess
             {
                 AnswerId = answerStatistic.Key,
                 Probability = answerProbability,
                 AnswerStatistic = answerStatistic.Value
             });
         answeredQuestionsProbability += answerProbability;
     }
     foreach (var answerGuess in answerGuesses)
     {
         answerGuess.Probability /= answeredQuestionsProbability;
     }
     return answerGuesses.OrderByDescending(g => g.Probability).Take(maxGuesses).ToList();
 }
Example #18
0
        public string AperturaAutomaticaPratiche(IList<PraticaDTO> pratiche, IList<int> condomini, Urgenza urgenza, int idAzienda, LogTransazione logTransazione)
        {
            var result = string.Empty;
            try
            {
                foreach (var idCondominio in condomini)
                {
                    foreach (var praticaDTO in pratiche)
                    {
                        Pratica pratica;
                        AperturaPratica(0, DateTime.Now, praticaDTO.IdTipoPraticaRiferimento, idCondominio, null, praticaDTO.Oggetto, urgenza, null, idAzienda, logTransazione, out pratica);
                    }
                }

            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'apertura automatica delle pratiche - {0} - condomini:{1} - pratiche:{2}", ex, Utility.GetMethodDescription(), condomini.Aggregate(string.Empty, (current, id) => current + $"{id},"), pratiche.Aggregate(string.Empty, (current, nome) => current + $"{nome.Oggetto},"));
                throw;
            }
            
            return result;
        }
Example #19
0
 public Borda Unpack(IList<string> files, string key)
 {
     var borda = new Borda();
     return files.Aggregate(borda,
         (b, file) => b + Unpack(file, key));
 }
Example #20
0
        public string AddDocumentiAttivita(int idAttivita, IList<int> documenti)
        {
            try
            {
                var message = string.Empty;

                var attivita = _daoFactory.GetAttivitaDao().Find(idAttivita, false);
                if (attivita != null)
                {
                    foreach (var idDocumento in documenti)
                    {
                        if (attivita.Documenti.Count(item => item.ID == idDocumento) == 0)
                        {
                            var documento = _daoFactory.GetDocumentoDao().Find(idDocumento, false);
                            if (documento != null)
                            {
                                documento.AttivitaRiferimento = attivita;
                                attivita.Documenti.Add(documento);
                            }
                        }
                    }
                }

                return message;
            }
            catch (Exception ex)
            {                
                _log.ErrorFormat("Errore il nell'associazione di documenti a attivita - {0} - attività:{1} - documenti:{2}", ex, Utility.GetMethodDescription(), idAttivita, documenti.Aggregate(string.Empty, (current, id) => current + (id + ", ")));
                throw;
            }
        }
 private string PreformatMessage(string displayName, string expression, out IList<FormatItem> items)
 {
     var message = MessageFormatter.FormatString(ErrorMessageString, out items); // process custom format items: {fieldPath[:indicator]}, and substitute them entirely with guids, not to interfere with standard string.Format() invoked below
     message = string.Format(message, displayName, expression); // process standard format items: {index[,alignment][:formatString]}, https://msdn.microsoft.com/en-us/library/txafckwd(v=vs.110).aspx
     message = items.Aggregate(message, (cargo, current) => cargo.Replace(current.Uuid.ToString(), current.Substitute)); // give back, initially preprocessed, custom format items
     return message;
 }
Example #22
0
 public string Generate(string className, IList<IList<string>> ps)
 {
     return ps.Aggregate("", (str, m) => str + GenAutoINPC(m));
 }
 private static string CharListToString(IList<char> chars)
     => chars.Aggregate(new StringBuilder(), (builder, c) => builder.Append(c), builder => builder.ToString());
        public IList<VersamentoSoggettoDTO> GetVersamentiByEsercizioPersone(int? idEsercizio, IList<int> idPersone, bool sollecitaProprietarioConduzione)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var versamenti = daoFactory.GetVersamentoSoggettoDao().GetByEsercizioPersone(idEsercizio, idPersone);
                IList<VersamentoSoggettoDTO> listaDto = new List<VersamentoSoggettoDTO>(versamenti.Count);

                foreach (var item in versamenti)
                    listaDto.Add(setDto(item, false));

                // ================================================================================
                //  Se richiesto aggiungo per i proprietari le rate di conduzione
                // ================================================================================
                if (sollecitaProprietarioConduzione)
                {
                    var versamentiSoggetto = versamenti.GroupBy(item => item.Soggetto);
                    foreach (var kvp in versamentiSoggetto)
                    {
                        var soggetto = kvp.Key;
                        if (soggetto.Tipo == TipoSoggetto.Proprietario)
                        {
                            var conduttori = soggetto.UnitaImmobiliare.Conduttori;
                            var idConduttori = new List<int>(conduttori.Count);
                            idConduttori.AddRange(conduttori.Select(idConduttore => idConduttore.ID));
                            var versamentiConduzione =  GetVersamentiByEsercizioSoggetti(idEsercizio, idConduttori, false);
                            foreach (var versamentoSoggettoDTO in versamentiConduzione)
                            {
                                versamentoSoggettoDTO.IdSoggetto = soggetto.ID;
                                versamentoSoggettoDTO.IdPersona = soggetto.Persona.ID;
                                listaDto.Add(versamentoSoggettoDTO);
                            }
                        }
                    }
                }

                return listaDto;
            }
            catch (Exception ex)
            {
                var soggetti = string.Empty;
                if (idPersone != null)
                    soggetti = idPersone.Aggregate(soggetti, (current, id) => current + (id + ", "));

                _log.ErrorFormat("Errore nel caricamento dei versamenti per esercizio e persone - {0} - esercizio:{1} - soggetti:{2}", ex, Library.Utility.GetMethodDescription(), idEsercizio, soggetti);
                throw;
            }
        }
        public IList<string> IsAllowDataRegistrazione(IList<int> idCondomini, Esercizio esercizio, DateTime dataRegistrazione)
        {
            try
            {
                var message = new List<string>();
                if (dataRegistrazione != DateTime.MinValue)
                {
                    if (esercizio != null)
                    {
                        if (dataRegistrazione < esercizio.DataApertura.GetValueOrDefault() || dataRegistrazione > esercizio.DataChiusura.GetValueOrDefault() || esercizio.Stato == StatoEsercizioEnum.Chiuso)
                        {
                            message.Add(string.Format("Data non valida per l'esercizio {0} - Data inizio esercizio: {1:d} - Data fine esercizio:{2:d}", esercizio.DisplayName, esercizio.DataApertura.GetValueOrDefault(), esercizio.DataChiusura.GetValueOrDefault()));
                            _log.DebugFormat("Data di registrazione non corretta - {0} - esercizio:{1} - dataApertura:{2} - dataChiusura:{3} - dataRegistrazione:{4}", Utility.GetMethodDescription(), esercizio.ID, esercizio.DataApertura.GetValueOrDefault(), esercizio.DataChiusura.GetValueOrDefault(), dataRegistrazione);
                        }
                    }

                    foreach (var id in idCondomini)
                    {
                        var condominio = _daoFactory.GetCondominioDao().Find(id, false);
                        if (condominio != null)
                        {
                            var dataUltimaChiusura = _condominioService.GetDataUltimaChiusura(condominio).GetValueOrDefault();
                            if (dataRegistrazione <= dataUltimaChiusura)
                            {
                                message.Add(string.Format("Data non valida per il condominio {0} - Ultima chiusura: {1}", condominio.DisplayName, dataUltimaChiusura.ToShortDateString()));
                                _log.DebugFormat("Data di registrazione non corretta - {0} - condominio:{1} - dataUltimaChiusura:{2} - dataRegistrazione:{3}", Utility.GetMethodDescription(), id, dataUltimaChiusura, dataRegistrazione);
                            }

                            var esercizioCompetenza = getEsercizioCompetenza(condominio, dataRegistrazione);
                            if (esercizioCompetenza == null || esercizioCompetenza.Stato == StatoEsercizioEnum.Chiuso)
                            {
                                var messageEsercizio = esercizioCompetenza == null ? "l'esercizio di competenza non è ancora stato aperto" : string.Format("l'esercizio '{0}' è chiuso", esercizioCompetenza.DisplayName);
                                message.Add(string.Format("{0} - Non è possibile registrare il movimento in data {1:d} perchè {2}.", condominio.DisplayName, dataRegistrazione, messageEsercizio));
                            }
                        }
                    }
                }
                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante il controllo di validità della data di registrazione - {0} - idCondomini:{1} - dataRegistrazione:{2}", ex, Utility.GetMethodDescription(), idCondomini.Aggregate(string.Empty, (current, id) => current + (id + " - ")), dataRegistrazione);
                throw;
            }
        }
        public static void SaveInstalledPluginsFile(IList<String> pluginSystemNames, string filePath)
        {
            string result = pluginSystemNames.Aggregate("",
                (current, sn) => current + string.Format("{0}{1}", sn, Environment.NewLine));

            File.WriteAllText(filePath, result);
        }
        private static IEnumerable<int> CheckAndAddProducts(IList<string> productSubNumbers, string productMainDescr, IList<string> productSubDescriptions)
        {
            var productIds = new List<int>();
            var productAttributes = new List<string>();

            if (productSubNumbers.Count > 1)
            {
                var attributes = "Rozmiar";

                var productNumberLength = productSubNumbers[0].Length - 2;
                string productNumber = productSubNumbers[0].Substring(0, productNumberLength);

                const string attributesRegex = "((rozm\\.)|(Rozmiar)|(rozmiar))\\s*\\w*";
                foreach (var productSubDescription in productSubDescriptions)
                {
                    var temp = new Regex(attributesRegex).Match(productSubDescription).Value;
                    try
                    {
                        productAttributes.Add(temp.Split(' ')[1]);
                    }
                    catch(Exception)
                    {
                        try
                        {
                            productAttributes.Add(temp.Split('.')[1]);
                        }
                        catch(Exception)
                        {
                            var tempSubDescr = productSubDescription.Split(' ');
                            productAttributes.Add(tempSubDescr[tempSubDescr.Length - 1]);
                        }
                    }
                }

                var productTemp = new Regex(attributesRegex).Match(productSubDescriptions[0]).Value;
                string productName = "";
                try
                {
                    productName = productSubDescriptions[0].Replace(productTemp, "");
                }
                catch(Exception)
                {
                    var tempProductNameAll = productSubDescriptions[0].Split(' ');
                    var tempProductName = "";
                    for (var i = 0; i < tempProductNameAll.Length - 1; i++)
                    {
                        tempProductName += tempProductNameAll[i] + " ";
                    }

                    productName = tempProductName;
                }

                for (var i = 0; i < productSubNumbers.Count; i++)
                {
                    attributes += String.Format(",({0}) {1}", productSubNumbers[i], productAttributes[i]);
                }

                var selectQuery = "select * from jos_vm_product where product_sku = " + productNumber;
                selectQuery = productSubNumbers.Aggregate(selectQuery, (current, productSubNumber) => current + (" or attribute like \"%" + productSubNumber + "%\""));

                var selectCommand = new MySqlCommand(selectQuery, _mySqlConnect).ExecuteReader();

                if (!selectCommand.Read())
                {
                    selectCommand.Close();

                    var insertQuery = String.Format("insert into jos_vm_product (vendor_id, product_parent_id, product_sku, product_s_desc, product_desc, product_thumb_image, product_full_image, product_publish, product_weight, product_weight_uom, product_length, product_width, product_height, product_lwh_uom, product_url, product_in_stock, product_available_date, product_availability, product_special, product_discount_id, ship_code_id, cdate, mdate, product_name, product_sales, attribute, custom_attribute, product_tax_id, product_unit, product_packaging, child_options, quantity_options, child_option_ids, product_order_levels) VALUES (1, 0, {0}, '', '{1}', '', '', 'Y', '0.0000', 'kg', '0.0000', '0.0000', '0.0000', 'cm', '', 0, 1279843200, '', 'N', 0, NULL, 1279922325, 1279922577, '{2}', 0, '{3}', '', 3, 'szt.', 0, 'N,N,N,N,N,Y,20%,10%,', 'none,0,0,1', '', '0,0')", productNumber, productMainDescr, productName, attributes);
                    var insertCommand = new MySqlCommand(insertQuery, _mySqlConnect);
                    insertCommand.ExecuteNonQuery();
                    productIds.Add((int)insertCommand.LastInsertedId);
                }
                else
                {
                    productIds.Add(selectCommand.GetInt32("product_id"));
                    selectCommand.Close();
                }
            }
            else
            {
                for (var j = 0; j < productSubNumbers.Count; j++)
                {
                    var selectQuery = "select * from jos_vm_product where product_sku = " + productSubNumbers[j];
                    selectQuery = productSubNumbers.Aggregate(selectQuery, (current, productSubNumber) => current + (" or attribute like \"%" + productSubNumber + "%\""));

                    var selectCommand = new MySqlCommand(selectQuery, _mySqlConnect).ExecuteReader();

                    if (!selectCommand.Read())
                    {
                        selectCommand.Close();

                        var insertQuery = String.Format("insert into jos_vm_product (vendor_id, product_parent_id, product_sku, product_s_desc, product_desc, product_thumb_image, product_full_image, product_publish, product_weight, product_weight_uom, product_length, product_width, product_height, product_lwh_uom, product_url, product_in_stock, product_available_date, product_availability, product_special, product_discount_id, ship_code_id, cdate, mdate, product_name, product_sales, attribute, custom_attribute, product_tax_id, product_unit, product_packaging, child_options, quantity_options, child_option_ids, product_order_levels) VALUES (1, 0, {0}, '', '{1}', '', '', 'Y', '0.0000', 'kg', '0.0000', '0.0000', '0.0000', 'cm', '', 0, 1279843200, '', 'N', 0, NULL, 1279922325, 1279922577, '{2}', 0, '', '', 3, 'szt.', 0, 'N,N,N,N,N,Y,20%,10%,', 'none,0,0,1', '', '0,0')", productSubNumbers[j], productMainDescr, productSubDescriptions[j]);
                        var insertCommand = new MySqlCommand(insertQuery, _mySqlConnect);
                        insertCommand.ExecuteNonQuery();
                        productIds.Add((int)insertCommand.LastInsertedId);
                    }
                    else
                    {
                        productIds.Add(selectCommand.GetInt32("product_id"));
                        selectCommand.Close();
                        continue;
                    }
                }
            }

            return productIds;
        }
Example #28
0
 public ModificationCombination(IList<Modification> modificationList)
 {
     Modifications = modificationList;
     Composition = modificationList.Aggregate(Data.Composition.Composition.Zero, (current, mod) => current + mod.Composition);
 }
Example #29
0
        public IList<RisultatoInvioMessaggio> InvioMessaggio(int idAzienda, PersonaMessaggioDTO personaMessaggioDTO, Condominio condominio, int? idUnitaImmobiliare, int? idFornitore, int? idResponsabile, int? idIncaricatoAttivita, MotivoMessaggio motivoMessaggio, string oggetto, string testo, IList<string> destinatari, string mittente, string emailRapportino, IList<DocumentInfo> allegati, ParametriInvioLettera parametriInvioLettera)
        {
            try
            {
                if (destinatari.Count > 0)
                {
                    var message = string.Empty;
                    var invioRiuscito = false;
                    var allegatiLista = new List<DocumentInfo>(allegati.Count);
                    Persona persona = null;
                    if (personaMessaggioDTO != null)
                        persona = _daoFactory.GetPersonaDao().Find(personaMessaggioDTO.ID, false);

                    var results = new List<RisultatoInvioMessaggio>();
                    var result = new eMessageResultSendFAX();

                    try
                    {
                        int? idCondominio = null;
                        if (condominio != null)
                            idCondominio = condominio.ID;

                        var destinatariSend = new List<string>();
                        foreach (var item in destinatari)
                        {
                            if (!item.Trim().StartsWith("+39"))
                                destinatariSend.Add("+39" + Conversione.ToPhoneNumber(item));
                            else
                                destinatariSend.Add(Conversione.ToPhoneNumber(item));
                        }

                        // =====================================
                        // Creo le pagine del FAX
                        // =====================================
                        var nomiFiles = new string[allegati.Count];
                        var contenutoAllegati = new byte[allegati.Count][];

                        // -------------------------------------
                        // Allegati
                        // -------------------------------------
                        var index = 0;
                        foreach (var documento in allegati)
                        {
                            nomiFiles[index] = documento.FileName + documento.FileExtension;
                            contenutoAllegati[index] = documento.Body;
                            allegatiLista.Add(documento);
                            index++;
                        }

                        // -------------------------------------
                        // Oggetto
                        // -------------------------------------
                        decimal? importo = null;
                        var tipoIndirizzo = TipoIndirizzo.Recapito;
                        if (personaMessaggioDTO != null)
                        {
                            importo = personaMessaggioDTO.Importo;
                            tipoIndirizzo = personaMessaggioDTO.TipoIndirizzo;
                        }
                        var parametri = new ParametriStampaUnione(persona != null ? (int?)persona.ID : null, idUnitaImmobiliare, idResponsabile, idIncaricatoAttivita, idFornitore, idCondominio, null, tipoIndirizzo, importo, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
                        oggetto = _messaggisticaService.ApplicaStampaUnione(oggetto, parametri, idAzienda);

                        // =====================================
                        // Invio Messaggio
                        // =====================================
                        // -------------------------------------
                        // Invio
                        // -------------------------------------
                        var service = new Fax { Timeout = 999999999 };
                        var userService = new Users();
                        var credenziali = _configurationService.GetLoginInfo(idAzienda);

                        if (credenziali != null && !string.IsNullOrEmpty(credenziali.Value.Utente) && !string.IsNullOrEmpty(credenziali.Value.Password))
                        {
                            var success = false;
                            try
                            {
                                var resultUsers = userService.Login(credenziali.Value.Utente, credenziali.Value.Password, null);
                                success = resultUsers.success;
                            }
                            catch (Exception ex)
                            {
                                _log.WarnFormat("Errore durante il controllo delle credenziali - {0} - username:{1} - password:{2}", ex, Utility.GetMethodDescription(), credenziali.Value.Utente, credenziali.Value.Password);
                            }
                            if (success)
                            {
                                var identificazioneMittente = _configurationService.GetIdentificazioneMittente(idAzienda, TipoMessaggio.Fax, TipoIndirizzo.Recapito);

                                // Controllo identificazione mittente
                                if (string.IsNullOrEmpty(identificazioneMittente.Numero))
                                    return new List<RisultatoInvioMessaggio> { new RisultatoInvioMessaggio("KO", null, false, "Il fax non può essere inviato perchè non è presente il numero di fax del mittente" + Environment.NewLine + "Inserire il numero nella anagrafica dello studio e riprovare.", new DocumentInfo()) };

                                if (!string.IsNullOrEmpty(identificazioneMittente.Email))
                                {
                                    if (!string.IsNullOrEmpty(emailRapportino))
                                        emailRapportino += ",";
                                    emailRapportino += identificazioneMittente.Email;
                                }

                                // Mittente
                                if (string.IsNullOrEmpty(mittente))
                                    mittente = identificazioneMittente.Nome;

                                if (ConfigurationManager.AppSettings["IsTest"] != null && bool.Parse(ConfigurationManager.AppSettings["IsTest"]))
                                    destinatariSend = new List<string> { "+390513371992" };

                                var parameters = new List<OptionalParameters>
                                {
                                    new OptionalParameters { ParameterName = "NotificationEmail", ParameterValue = emailRapportino },
                                    new OptionalParameters { ParameterName = "DeliveryTime", ParameterValue = DateTime.Now.ToString() },
                                    new OptionalParameters { ParameterName = "HeaderFax", ParameterValue = identificazioneMittente.Numero },
                                    new OptionalParameters { ParameterName = "HeaderName", ParameterValue = mittente }
                                };

                                if (!parametriInvioLettera.Asincrono)
                                    result = service.Send(credenziali.Value.Utente, credenziali.Value.Password, destinatariSend.ToArray(), contenutoAllegati, nomiFiles, parameters.ToArray());
                                else
                                {
                                    service.SendAsync(credenziali.Value.Utente, credenziali.Value.Password, destinatariSend.ToArray(), contenutoAllegati, nomiFiles, parameters.ToArray());
                                    invioRiuscito = true;
                                }

                                message += result;
                                _log.InfoFormat("Risultato invio fax:{0} - destinatario:{1}", result, destinatariSend.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")));

                                if (result.SpeditionResult.All(item => item.success))
                                    invioRiuscito = true;
                            }
                            else
                            {
                                _log.WarnFormat("Credenziali non valide - {0} - username:{1} - password:{2}", Utility.GetMethodDescription(), credenziali.Value.Utente, credenziali.Value.Password);
                            }
                        }
                        else
                        {
                            _log.FatalFormat("Errore inaspettato durante l'invio del fax. NON sono presenti le credenziali per l'invio del fax - {0} - oggetto:{1} - destinatario:{2}", Utility.GetMethodDescription(), oggetto, destinatari[0]);
                            message = "KO - Non sono definite le credenziali per l'invio dei fax";
                        }
                    }
                    catch (Exception ex)
                    {
                        invioRiuscito = false;

                        _log.FatalFormat("Errore inaspettato durante l'invio del fax - {0} - oggetto:{1} - destinatario:{2}", ex, Utility.GetMethodDescription(), oggetto, destinatari[0]);
                        message = "KO - Errore inaspettato durante l'invio del fax";
                    }

                    if (motivoMessaggio != MotivoMessaggio.ScadenzaContratto && invioRiuscito)
                    {
                        foreach (var singleResult in result.SpeditionResult)
                        {
                            try
                            {
                                string messaggioInvio;
                                if (singleResult.success)
                                {
                                    messaggioInvio = string.Format("Fax accodato per l'invio: {0}", singleResult.jobCode);
                                    _log.InfoFormat("Invio FAX RIUSCITO - {0} - messageCode: {1} - messaggio: {2} - jobcode: {3} - destinatario: {4}", Utility.GetMethodDescription(), singleResult.messageCode, singleResult.errorDescription, singleResult.jobCode, destinatari.Aggregate(string.Empty, (current, dest) => current + (dest + ";")));
                                }
                                else
                                {
                                    messaggioInvio = "Invio della lettera non riuscito:" + Environment.NewLine + singleResult.errorDescription;
                                    _log.WarnFormat("Invio FAX FALLITO - {0} - messageCode: {1} - messaggio: {2} - jobcode: {3} - destinatario: {4}", Utility.GetMethodDescription(), singleResult.messageCode, singleResult.errorDescription, singleResult.jobCode, destinatari.Aggregate(string.Empty, (current, dest) => current + (dest + ";")));
                                }

                                var resultInvio = new RisultatoInvioMessaggio(singleResult.jobCode, singleResult.messageCode, singleResult.success, messaggioInvio, new DocumentInfo());
                                var storicoMessaggio = _messaggisticaService.StoricizzaMessaggio(persona, condominio, resultInvio, motivoMessaggio, oggetto, testo, destinatari, mittente, emailRapportino, allegatiLista, TipoMessaggio.Fax);
                                if (storicoMessaggio != null)
                                    resultInvio.IdMessaggio = storicoMessaggio.ID;
                                results.Add(resultInvio);
                            }
                            catch (Exception ex)
                            {
                                _log.ErrorFormat("Errore inaspettato durante la storicizzazione del messaggio - {0} - oggetto:{1} - destinatario:{2}", ex, Utility.GetMethodDescription(), oggetto, destinatari[0]);
                                throw;
                            }
                        }
                    }
                    else
                    {
                        if (!invioRiuscito)
                            results.Add(new RisultatoInvioMessaggio("KO", null, false, message, new DocumentInfo()));
                    }

                    return results;
                }
            }
            catch (Exception ex)
            {
                var idPersona = "<NULL>";
                if (personaMessaggioDTO != null)
                    idPersona = personaMessaggioDTO.ID.ToString();

                var idCondominio = "<NULL>";
                if (condominio != null)
                    idCondominio = condominio.ID.ToString();

                _log.FatalFormat("Errore inaspettato nell'invio del fax - {0} - azienda:{1} - persona:{2} - condominio:{3} - motivoMessaggio:{4} - oggetto:{5} - testo:{6} - destinatari:{7} - mittente:{8} - emailRapportino:{9}", ex, Utility.GetMethodDescription(), idAzienda, idPersona, idCondominio, motivoMessaggio, oggetto, testo, destinatari.Aggregate(string.Empty, (current, dest) => current + (dest + ", ")), mittente, emailRapportino);
                throw;
            }

            return new List<RisultatoInvioMessaggio> { new RisultatoInvioMessaggio(null, null, false, "Non è definito nessun destinatario", new DocumentInfo())};
        }
Example #30
0
 /// <summary>
 /// http://vk.com/pages?oid=-1&p=messages.getDialogs#/pages?oid=-1&p=users.get
 /// </summary>
 public static async Task<string> GetUserListAsync(string token, IList<string> uids)
 {
     Debug.Assert(uids.Count <= 1000);
     Debug.Assert(uids.Count > 0);
     string allUids = uids.Aggregate("", (current, uid) => current + ("," + uid)).Remove(0, 1);
     string uri = BuildVkApiUri(
         "users.get",
         new[]
             {
                 "uids",
                 "fields"
             },
         new[]
             {
                 allUids,
                 "uid,first_name,last_name,photo,online"
             },
         token);
     return await DownloadStringTaskAsync(uri);
 }