public virtual ExtensionMessageCollection GetExtensionMessageListByTitle(string title, string customerID ,ExtensionMessageColumns orderBy, string orderDirection, int page, int pageSize, out int totalRecords)
        {
            try
            {
                Database database = DatabaseFactory.CreateDatabase("CustommerServiceConnection");
                DbCommand dbCommand = database.GetStoredProcCommand("spExtensionMessageGetListByTitle");
                database.AddInParameter(dbCommand, "@Title", DbType.AnsiString, title.ToString());
                database.AddInParameter(dbCommand, "@CustomerID", DbType.AnsiString, customerID.ToString());
                 database.AddInParameter(dbCommand, "@OrderBy", DbType.AnsiString, orderBy.ToString());
                database.AddInParameter(dbCommand, "@OrderDirection", DbType.AnsiString, orderDirection.ToString());
                database.AddInParameter(dbCommand, "@Page", DbType.Int32, page);
                database.AddInParameter(dbCommand, "@PageSize", DbType.Int32, pageSize);
                database.AddOutParameter(dbCommand, "@TotalRecords", DbType.Int32, 4);

                ExtensionMessageCollection extensionMessageCollection = new ExtensionMessageCollection();
                using (IDataReader reader = database.ExecuteReader(dbCommand))
                {
                    while (reader.Read())
                    {
                        ExtensionMessage extensionMessage = CreateExtensionMessageFromReader(reader);
                        extensionMessageCollection.Add(extensionMessage);
                    }
                    reader.Close();
                }
                totalRecords = (int)database.GetParameterValue(dbCommand, "@TotalRecords");
                return extensionMessageCollection;
            }
            catch (Exception ex)
            {
                // log this exception
                log4net.Util.LogLog.Error(ex.Message, ex);
                // wrap it and rethrow
                throw new ApplicationException(SR.DataAccessGetExtensionMessageListException, ex);
            }
        }
        public void SendPorfolioSmsMessage(VfsCustomerService.Entities.Customer customer)
        {
            var service = new SBSGatewaySoapClient();

            if(customer.CustomerId == "094P848586") return;

            service.Endpoint.Address = new System.ServiceModel.EndpointAddress(endPointAddress);
            PorscheCustomer porscheCustomer = new PorscheCustomer();
            porscheCustomer.CustomerId = customer.CustomerId;
            ClientParam clientParam = new ClientParam();            

            CustomerInquiryData customerData = service.CustomerInquiry
                                                           (porscheCredentials,
                                                           porscheCustomer,                                                            
                                                           GetCustomerType.None.ToString(),
                                                           CustomerStockInquiryType.Normal.ToString(),
                                                           CustomerAmountInquiryType.Full.ToString());
            if (customerData.ErrorCode != SbsErrorCode.None)
            {
                //throw new Exception(customerData.Message);
                Ultility.Info(customer.CustomerId + ": " + customerData.Message);
            }
            else
            {
                Ultility.Info(customer.CustomerId + ": " + customer.CustomerId);
                //dataGridView1.DataSource = customerData.StockItems;
                CustomerStockInquiryObject[] customerInquiryData;
                if (customerData != null)
                {
					ExtensionMessageCollection extensionMessageCollection = new ExtensionMessageCollection();
                    ExtensionMessageLog relatedMessagelog;
					ExtensionMessageLogCollection relatedMessagelogColl = new ExtensionMessageLogCollection();
                    customerInquiryData = customerData.StockItems;
                    StringBuilder content = new StringBuilder();
                    string contentSms = string.Empty;
                   
                    int smsCount = 0;
                    int total;
                    Boolean sentYn = false;
                    smsCount = 0;
                   
                    foreach (CustomerStockInquiryObject obj in customerInquiryData)
                    {
                        Ultility.Info(customer.CustomerId + ": " + obj.StockCode);
						extensionMessageCollection = ExtensionMessageService.GetExtensionMessageListByTitle(obj.StockCode, customer.CustomerId, ExtensionMessageColumns.ExtensionMessageID, "DESC", 1, 5, out total);
						if (extensionMessageCollection.Count > 0) sentYn = true;

						foreach (ExtensionMessage extMessage in extensionMessageCollection)
                        {                           
                            if (smsCount == 0)
                            {
                                if (contentSms == string.Empty)
									contentSms +=  Ultility.RemoveSound(extMessage.Content.Normalize()) ;
                                else
									contentSms += ";" + Ultility.RemoveSound(extMessage.Content.Normalize()) + "";
                            }
                            smsCount++;
                            relatedMessagelog = new ExtensionMessageLog();
							relatedMessagelog.ExtensionMessageID = extMessage.ExtensionMessageID;
                            relatedMessagelog.CustomerId = customer.CustomerId;
							
                            relatedMessagelogColl.Add(relatedMessagelog);
                        }                       
                    }
                  
                    //create messsages to be sent
                    if (sentYn)
                    {
                        //ContentTemplate contentTemplate = ContentTemplateService.GetContentTemplate(templateID);
						ContentTemplate contentTemplateSms = ContentTemplateService.GetContentTemplate(porfolioSmsMessageTemplateID);                        
                        VfsCustomerService.Business.ImportService.CreateMessage(customer,  contentSms, contentTemplateSms);

						foreach (ExtensionMessageLog relatedMsglog in relatedMessagelogColl)
                        {
							ExtensionMessageLogService.CreateExtensionMessageLog(relatedMsglog);
                        }
                    }
                }
            }
        }