Ejemplo n.º 1
0
        /// <summary>
        /// Renders a sales receipt.
        /// </summary>
        /// <param name="view">
        /// The optional view.
        /// </param>
        /// <returns>
        /// The <see cref="ActionResult"/>.
        /// </returns>
        /// <exception cref="NullReferenceException">
        /// Throws a null reference exception if the "invoiceKey" is not stored in the CustomerContext
        /// </exception>
        public virtual ActionResult SalesReceipt(string view = "")
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("Controllers");

            var invoiceKey = CustomerContext.GetValue("invoiceKey");

            if (invoiceKey.IsNullOrWhiteSpace())
            {
                var nullRef = new NullReferenceException("The parameter invoiceKey was not found in the CustomerContext");
                MultiLogHelper.Error <CheckoutSummaryControllerBase <TSummary, TBillingAddress, TShippingAddress, TLineItem> >("The 'invoiceKey' parameter was not found in the CustomerContext", nullRef, logData);
                throw nullRef;
            }

            try
            {
                var key     = new Guid(invoiceKey);
                var invoice = MerchelloServices.InvoiceService.GetByKey(key);
                var model   = CheckoutSummaryFactory.Create(invoice);
                return(view.IsNullOrWhiteSpace() ? this.PartialView(model) : this.PartialView(view, model));
            }
            catch (Exception ex)
            {
                MultiLogHelper.Error <CheckoutSummaryControllerBase <TSummary, TBillingAddress, TShippingAddress, TLineItem> >("Could not render the receipt.", ex, logData);
                throw;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the base website url for constructing PayPal response URLs.
        /// </summary>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public static string GetBaseWebsiteUrl()
        {
            var websiteUrl = string.Empty;

            try
            {
                var url = HttpContext.Current.Request.Url;
                websiteUrl =
                    string.Format(
                        "{0}://{1}{2}",
                        url.Scheme,
                        url.Host,
                        url.IsDefaultPort ? string.Empty : ":" + url.Port).EnsureNotEndsWith('/');
            }
            catch (Exception ex)
            {
                var logData = MultiLogger.GetBaseLoggingData();
                logData.AddCategory("PayPal");

                MultiLogHelper.WarnWithException(
                    typeof(PayPalApiHelper),
                    "Failed to initialize factory setting for WebsiteUrl.  HttpContext.Current.Request is likely null.",
                    ex,
                    logData);
            }

            return(websiteUrl);
        }
Ejemplo n.º 3
0
        protected override void OnStart(string[] args)
        {
            // start the service
            ILogger svcLogger = new ServiceLogger(base.EventLog);

            try
            {
                // - set current directory to the install location
                // - get executable name for file logger
                Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
                ProcessModule pm         = Process.GetCurrentProcess().MainModule;
                string        moduleName = pm.ModuleName.Split('.')[0];
                ILogger       logger     = new MultiLogger(svcLogger,
                                                           new FileLogger(@"C:\_qrsc\ServiceLogs\" + moduleName + ".{dddd}.log"));

                _ClientRef = Reference <ICoreClient> .Create(new CoreClientFactory(logger).Create());

                _Server              = new GridManagerServer();
                _Server.Logger       = logger;
                _Server.Client       = _ClientRef;
                _Server.HostInstance = null;
                _Server.Start();
            }
            catch (Exception ex)
            {
                svcLogger.Log(ex);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets default <see cref="IExtendedLoggerData"/>.
        /// </summary>
        /// <returns>
        /// The <see cref="IExtendedLoggerData"/>.
        /// </returns>
        protected virtual IExtendedLoggerData GetExtendedLoggerData()
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("SurfaceController");
            return(logData);
        }
Ejemplo n.º 5
0
        public void TestExceptionThrown()
        {
            var multiLogger       = new MultiLogger();
            var mockConsoleLogger = new Mock <ILogger>();
            var mockFileLogger    = new Mock <ILogger>();

            Assert.Empty(multiLogger.Loggers);
            multiLogger.Loggers.Add(mockConsoleLogger.Object);
            Assert.Single(multiLogger.Loggers);
            multiLogger.Loggers.Add(mockFileLogger.Object);
            Assert.Equal(2, multiLogger.Loggers.Count);

            var id       = new Guid();
            var logLevel = LogLevel.Info;
            var message  = "Test message";
            var dict     = new Dictionary <string, string>();

            // Setup mocks
            mockConsoleLogger.Setup(mcl => mcl.Log(id, logLevel, message, dict)).Throws(new IOException());
            mockFileLogger.Setup(mfl => mfl.Log(id, logLevel, message, dict));

            // Exception should be caught and process continue
            multiLogger.Log(id, logLevel, message, dict);

            // Assert
            mockConsoleLogger.Verify(mc => mc.Log(id, logLevel, message, dict), Times.Once());
            mockFileLogger.Verify(mc => mc.Log(id, logLevel, message, dict), Times.Once());
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Builds the <see cref="AddressType"/>.
        /// </summary>
        /// <param name="address">
        /// The address.
        /// </param>
        /// <returns>
        /// The <see cref="AddressType"/>.
        /// </returns>
        public AddressType Build(IAddress address)
        {
            try
            {
                return(new AddressType
                {
                    Name = address.Name,
                    Street1 = address.Address1,
                    Street2 = address.Address2,
                    PostalCode = address.PostalCode,
                    CityName = address.Locality,
                    StateOrProvince = address.Region,
                    CountryName = address.Country().Name,
                    Country =
                        (CountryCodeType)
                        Enum.Parse(typeof(CountryCodeType), address.Country().CountryCode, true),
                    Phone = address.Phone
                });
            }
            catch (Exception ex)
            {
                var logData = MultiLogger.GetBaseLoggingData();
                logData.AddCategory("PayPal");

                MultiLogHelper.Error <PayPalBasicAmountTypeFactory>("Failed to build an AddressType", ex, logData);

                throw;
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Constructs an error response message from an exception.
        /// </summary>
        /// <param name="ex">
        /// The ex.
        /// </param>
        /// <returns>
        /// The <see cref="ExpressCheckoutResponse"/>.
        /// </returns>
        public ExpressCheckoutResponse Build(Exception ex)
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("GatewayProviders");
            logData.AddCategory("PayPal");

            // bubble up the error
            var errorType = new ErrorType()
            {
                SeverityCode = SeverityCodeType.CUSTOMCODE,
                ShortMessage = ex.Message,
                LongMessage  = ex.Message,
                ErrorCode    = "PPEService"
            };

            logData.SetValue("payPalErrorType", errorType);

            MultiLogHelper.Error <PayPalExpressCheckoutService>("Failed to get response from PayPalAPIInterfaceServiceService", ex, logData);

            return(new ExpressCheckoutResponse {
                Ack = AckCodeType.CUSTOMCODE, ErrorTypes = new List <ErrorType> {
                    errorType
                }
            });
        }
        /// <summary>
        /// Gets a <see cref="IPaymentGatewayMethod"/> by it's payment code
        /// </summary>
        /// <param name="paymentCode">The payment code of the <see cref="IPaymentGatewayMethod"/></param>
        /// <returns>A <see cref="IPaymentGatewayMethod"/></returns>
        public override IPaymentGatewayMethod GetPaymentGatewayMethodByPaymentCode(string paymentCode)
        {
            var paymentMethod = this.PaymentMethods.FirstOrDefault(x => x.PaymentCode == paymentCode);

            if (paymentMethod != null)
            {
                switch (paymentCode)
                {
                case Constants.PayPal.PaymentCodes.ExpressCheckout:
                    return(new PayPalExpressCheckoutPaymentGatewayMethod(
                               this.GatewayProviderService,
                               paymentMethod,
                               GetPayPalApiService()));
                    //// TODO add additional payment methods here
                }
            }

            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("GatewayProviders");
            logData.AddCategory("PayPal");

            var nullRef =
                new NullReferenceException(string.Format("PaymentMethod not found for payment code: {0}", paymentCode));

            MultiLogHelper.Error <PayPalPaymentGatewayProvider>(
                "Failed to find payment method for payment code",
                nullRef,
                logData);

            throw nullRef;
        }
Ejemplo n.º 9
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Initialisation des loggers
        /// </summary>
        /// <returns>un MultiLogger lié à une source fichier et console</returns>
        /// -----------------------------------------------------------------------------
        protected override BaseLogger CreateLoggers()
        {
            var xmlConfig = new XMLConfig(ConfigFile, 1);

            Configuration = new ConfigPackage();
            Configuration.AddSource(xmlConfig);

            // Map the path to the current Web Application
            const string key      = CfgFile + Shared.Configuration.BaseConfig.SourceItemAttribute + FileLogger.ConfigFilename;
            var          filename = xmlConfig.Value(key, null);

            if ((filename != null) && (!Path.IsPathRooted(filename)))
            {
                xmlConfig.SetValue(key, _server.MapPath("App_Data" + Path.DirectorySeparatorChar + filename));
            }

            var log = new MultiLogger();

            ConsoleLogger = new ConsoleLogger(CfgConsole, Configuration);
            FileLogger    = new FileLogger(CfgFile, Configuration);
            log.AddLogger(ConsoleLogger);
            log.AddLogger(FileLogger);

            return(log);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Creates a <see cref="ICheckoutSummaryModel{TBillingAddress, TShippingAddress, TLineItem}"/>.
        /// </summary>
        /// <param name="checkoutManager">
        /// The <see cref="ICheckoutManagerBase"/>.
        /// </param>
        /// <returns>
        /// The <see cref="ICheckoutSummaryModel{TBillingAddress, TShippingAddress, TLineItem}"/>.
        /// </returns>
        public TSummary Create(ICheckoutManagerBase checkoutManager)
        {
            if (!checkoutManager.Payment.IsReadyToInvoice())
            {
                var logData   = MultiLogger.GetBaseLoggingData();
                var invalidOp = new InvalidOperationException("CheckoutManager is not ready to invoice. Try calling the overloaded Create method passing the IBasket");
                MultiLogHelper.Error <CheckoutSummaryModelFactory <TSummary, TBillingAddress, TShippingAddress, TLineItem> >("Could not create checkout summary", invalidOp, logData);
                throw invalidOp;
            }

            var invoice = checkoutManager.Payment.PrepareInvoice();

            var billing  = invoice.GetBillingAddress();
            var shipping = invoice.GetShippingAddresses().FirstOrDefault();


            return(new TSummary
            {
                BillingAddress = Create <TBillingAddress>(billing ?? new Address {
                    AddressType = AddressType.Billing
                }),
                ShippingAddress = Create <TShippingAddress>(shipping ?? new Address {
                    AddressType = AddressType.Shipping
                }),
                Items = invoice.Items.Select(Create),
                Total = invoice.Total
            });
        }
Ejemplo n.º 11
0
        public static void Main()
        {
            var logger = new MultiLogger(new ILogger[]
            {
                new ConsoleLogger(entry => entry.Level < LogLevel.Error, null, Console.Out),
                new ConsoleLogger(entry => entry.Level >= LogLevel.Error, null, Console.Error),
                new DebugLogger(null, null),
            });

            var methodHandlers = new List <IWebDAVMethodHandler>();

            foreach (IWebDAVMethodHandler methodHandler in WebDAVMethodHandlers.BuiltIn)
            {
                methodHandlers.Add(new LitmusWebDAVMethodHandler(methodHandler));
            }

            using (var server = new WebDAVServer(new WebDAVMemoryStore(), logger, new HttpListenerAdapter(), methodHandlers))
            {
                server.Listener.Prefixes.Add("http://localhost:8888/");

                var ipv4Addresses =
                    from address in Dns.GetHostEntry(Environment.MachineName).AddressList
                    where !address.IsIPv6LinkLocal && !address.IsIPv6Multicast && !address.IsIPv6SiteLocal
                    select address.ToString();

                foreach (var address in ipv4Addresses)
                {
                    server.Listener.Prefixes.Add(string.Format(CultureInfo.InvariantCulture, "http://{0}:8888/", address));
                }
                server.Start();

                Console.In.ReadLine();
                server.Stop();
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Creates a new view.
        /// </summary>
        /// <param name="fileName">
        /// The file name.
        /// </param>
        /// <param name="viewType">
        /// The view type.
        /// </param>
        /// <param name="modelName">
        /// The model name.
        /// </param>
        /// <param name="viewBody">
        /// The view body.
        /// </param>
        /// <returns>
        /// A value indicating whether or not the create was successful.
        /// </returns>
        public override PluginViewEditorContent CreateNewView(string fileName, PluginViewType viewType, string modelName, string viewBody)
        {
            var virtualPath = GetVirtualPathByPlugViewType(viewType);

            var mapped = EnsureMappedPath(virtualPath);

            fileName = fileName.Replace(" ", string.Empty);

            var fullFileName = string.Format("{0}{1}", mapped, fileName);

            if (!File.Exists(fullFileName))
            {
                using (var sw = File.CreateText(fullFileName))
                {
                    sw.WriteLine("@inherits Merchello.Web.Mvc.MerchelloHelperViewPage<{0}>", modelName);
                    sw.WriteLine("@using Merchello.Core");
                    sw.WriteLine("@using Merchello.Core.Models");
                    sw.WriteLine("@*");
                    sw.WriteLine("     MerchelloHelperViewPage<T> inherits from UmbracoViewPage<t> and exposes the MerchelloHelper as 'Merchello'");
                    sw.WriteLine("     Example usage:  var product = Merchello.TypedProductContent(YOURPRODUCTKEY);");
                    sw.WriteLine("*@");
                    sw.Close();
                }

                return(GetView(virtualPath, fileName, viewType));
            }

            var logData = MultiLogger.GetBaseLoggingData();
            var ex      = new InvalidDataException("File already exists");

            MultiLogHelper.Error <PluginViewEditorProvider>("Cannot create a duplicate file", ex, logData);
            throw ex;
        }
Ejemplo n.º 13
0
 protected SessionHostConfigurationBase(VmConfiguration vmConfiguration, MultiLogger logger, ISystemOperations systemOperations, SessionHostsStartInfo sessionHostsStartInfo)
 {
     _logger                = logger;
     VmConfiguration        = vmConfiguration;
     _systemOperations      = systemOperations;
     _sessionHostsStartInfo = sessionHostsStartInfo;
 }
Ejemplo n.º 14
0
        /// <summary>
        /// Handles an add item operation exception.
        /// </summary>
        /// <param name="model">
        /// The <see cref="IAddItemModel"/>.
        /// </param>
        /// <param name="ex">
        /// The <see cref="Exception"/>.
        /// </param>
        /// <returns>
        /// The <see cref="ActionResult"/>.
        /// </returns>
        protected virtual ActionResult HandleAddItemException(TAddItem model, Exception ex)
        {
            var logData = MultiLogger.GetBaseLoggingData();

            MultiLogHelper.Error <BasketControllerBase <TBasketModel, TBasketItemModel, TAddItem> >("Failed to add item to the basket", ex, logData);
            throw ex;
        }
Ejemplo n.º 15
0
        public virtual void OnError(Exception error)
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("Monitors");
            MultiLogHelper.Error <MonitorBase <T> >("Monitor error: ", error, logData);
        }
Ejemplo n.º 16
0
        public virtual void OnCompleted()
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("Monitors");
            MultiLogHelper.Debug <MonitorBase <T> >(string.Format("Completed monitoring {0}", GetType()), logData);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Runs the specified action periodically (including amidst exceptions) until explicitly cancelled.
        /// </summary>
        /// <param name="action">The operation to perform periodically.</param>
        /// <param name="systemOperations"></param>
        /// <param name="intervalBetweenRuns">Delay between performing the operation (if the operation completes or if there is an exception).</param>
        /// <param name="cancellationToken">Mostly used for unit testing.</param>
        /// <returns></returns>
        public static async Task RunUntilCancelled(
            Func <Task> action,
            ISystemOperations systemOperations,
            TimeSpan intervalBetweenRuns,
            CancellationToken cancellationToken,
            MultiLogger logger)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                try
                {
                    await action();
                }
                catch (Exception e)
                {
                    logger.LogException(e);
                }

                try
                {
                    await systemOperations.Delay((int)intervalBetweenRuns.TotalMilliseconds, cancellationToken);
                }
                catch (TaskCanceledException ex)
                {
                    logger.LogInformation($"{nameof(RunUntilCancelled)} stopped with {nameof(TaskCanceledException)}: {ex}");
                }
            }
        }
Ejemplo n.º 18
0
        public void CanCreateInstance()
        {
            var loggers     = new ILogger[0];
            var multiLogger = new MultiLogger(loggers);

            Assert.NotNull(multiLogger);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Creates an instance of an Umbraco Surface controller from scratch
        /// when no existing ControllerContext is present
        /// </summary>
        /// <param name="routeData">
        /// The route Data.
        /// </param>
        /// <typeparam name="T">
        /// Type of the controller to create
        /// </typeparam>
        /// <returns>
        /// A surface controller of type T
        /// </returns>
        public static T CreateSurfaceController <T>(RouteData routeData = null)
            where T : SurfaceController
        {
            // Create an MVC Controller Context
            var umbracoContext = GetUmbracoContext();

            var umbracoHelper = new UmbracoHelper(umbracoContext);

            var attempt = ActivatorHelper.CreateInstance <T>(typeof(T), new object[] { umbracoContext, umbracoHelper });

            if (!attempt.Success)
            {
                var data = MultiLogger.GetBaseLoggingData();
                data.AddCategory("SurfaceController");
                MultiLogHelper.Error <SurfaceControllerActivationHelper>("Failed to create render controller", attempt.Exception, data);
                throw attempt.Exception;
            }

            var controller = attempt.Result;

            if (routeData == null)
            {
                routeData = new RouteData();
            }

            if (!routeData.Values.ContainsKey("controller") && !routeData.Values.ContainsKey("Controller"))
            {
                routeData.Values.Add(
                    "controller",
                    controller.GetType().Name.ToLower().Replace("controller", string.Empty));
            }

            controller.ControllerContext = new ControllerContext(umbracoContext.HttpContext, routeData, controller);
            return(controller);
        }
Ejemplo n.º 20
0
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            var logger = new MultiLogger();

            logger.AddLogger(new DebugConsoleLogger());

            containerRegistry.RegisterInstance <ILoggerFacade>(logger);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Handles a shipping address save exception.
        /// </summary>
        /// <param name="model">
        /// The <see cref="ICheckoutAddressModel"/>.
        /// </param>
        /// <param name="ex">
        /// The <see cref="Exception"/>.
        /// </param>
        /// <returns>
        /// The <see cref="ActionResult"/>.
        /// </returns>
        /// <exception cref="Exception">
        /// The <see cref="Exception"/> to be handled
        /// </exception>
        protected virtual ActionResult HandleShippingAddressSaveException(TShippingAddress model, Exception ex)
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("Controller");
            MultiLogHelper.Error <CheckoutAddressControllerBase <TBillingAddress, TShippingAddress> >("Failed to save shipping address", ex, logData);
            throw ex;
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Handles a payment exception.
        /// </summary>
        /// <param name="model">
        /// The <see cref="ICheckoutPaymentModel"/>.
        /// </param>
        /// <param name="ex">
        /// The <see cref="Exception"/>.
        /// </param>
        /// <returns>
        /// The <see cref="ActionResult"/>.
        /// </returns>
        /// <exception cref="Exception">
        /// The <see cref="Exception"/> to be handled
        /// </exception>
        protected virtual ActionResult HandlePaymentException(TPaymentModel model, Exception ex)
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("Controllers");
            MultiLogHelper.Error <CheckoutPaymentControllerBase <TPaymentModel> >("Failed payment operation.", ex, logData);
            throw ex;
        }
Ejemplo n.º 23
0
        /// <summary>
        /// Creates the application context for the tests.
        /// </summary>
        protected virtual void CreateApplicationContext()
        {
            var logger = new MultiLogger(LogggersToUse.ToArray());

            ApplicationContext.Setup(new StaticContextStorage(),
                                     logger,
                                     new AdjustableNetworkContext(o => o, new NumericallyIncrementingGuidProvider().SetSeedValue(1000)));
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Gets the extended logger data.
        /// </summary>
        /// <returns>
        /// The <see cref="IExtendedLoggerData"/>.
        /// </returns>
        protected IExtendedLoggerData GetLoggerData()
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("PayPal");

            return(logData);
        }
        /// <summary>
        /// Handles a wish list update exception
        /// </summary>
        /// <param name="model">
        /// The model.
        /// </param>
        /// <param name="ex">
        /// The ex.
        /// </param>
        /// <returns>
        /// The <see cref="ActionResult"/>.
        /// </returns>
        /// <remarks>
        /// Allows for customization of the redirection after a custom update basket operation
        /// </remarks>
        protected virtual ActionResult HandleUpdateWishListException(TItemCacheModel model, Exception ex)
        {
            var logData = MultiLogger.GetBaseLoggingData();

            MultiLogHelper.Error <WishListControllerBase <TItemCacheModel, TLineItemModel> >("Failed to update wish list", ex, logData);

            throw ex;
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Handles the exception in the remove discount operation.
        /// </summary>
        /// <param name="sku">
        /// The line item SKU for the discount line item.
        /// </param>
        /// <param name="contentRedirectId">
        /// The Umbraco content Id for redirection.
        /// </param>
        /// <param name="ex">
        /// The <see cref="Exception"/>
        /// </param>
        /// <returns>
        /// The <see cref="ActionResult"/>.
        /// </returns>
        protected virtual ActionResult HandleRemoveDiscountException(string sku, int contentRedirectId, Exception ex)
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("Controllers");
            MultiLogHelper.WarnWithException <CheckoutDiscountControllerBase <TDiscountModel, TLineItemModel> >("Failed to remove discount", ex, logData);
            return(RedirectToUmbracoPage(contentRedirectId));
        }
        /// <summary>
        /// Handle payment form exception.
        /// </summary>
        /// <param name="ex">
        /// The <see cref="Exception"/>.
        /// </param>
        /// <returns>
        /// The <see cref="ActionResult"/>.
        /// </returns>
        /// <exception cref="Exception">
        /// The <see cref="Exception"/> to be handled
        /// </exception>
        protected virtual ActionResult HandlePaymentFormException(Exception ex)
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("Controllers");
            MultiLogHelper.Error <CheckoutResolvePaymentController>("Could not render payment form.", ex, logData);
            throw ex;
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Creates the application context for the tests.
        /// </summary>
        protected override void CreateApplicationContext()
        {
            var logger = new MultiLogger(new ConsoleLogger(), new TraceLogger());

            NetworkContext = NewMock <INetworkContext>();

            ApplicationContext.Setup(new StaticContextStorage(), logger, NetworkContext);
        }
Ejemplo n.º 29
0
        /// <summary>
        /// Creates the <see cref="IExtendedLoggerData"/>.
        /// </summary>
        /// <param name="constructorArgs">
        /// The constructor args.
        /// </param>
        /// <typeparam name="TService">
        /// The type of the service attempting to be instantiated
        /// </typeparam>
        /// <returns>
        /// The <see cref="IExtendedLoggerData"/>.
        /// </returns>
        private IExtendedLoggerData GetLoggerData <TService>(object[] constructorArgs = null)
        {
            var loggerData = MultiLogger.GetBaseLoggingData();

            loggerData.AddCategory("Resolvers");
            loggerData.AddCategory("Services");

            return(loggerData);
        }
Ejemplo n.º 30
0
        /// <summary>
        /// Gets the default extended log data.
        /// </summary>
        /// <returns>
        /// The <see cref="IExtendedLoggerData"/>.
        /// </returns>
        protected override IExtendedLoggerData GetExtendedLoggerData()
        {
            var logData = MultiLogger.GetBaseLoggingData();

            logData.AddCategory("Controllers");
            logData.AddCategory("PayPal");

            return(logData);
        }
Ejemplo n.º 31
0
 /// <summary>
 /// Возвращает MultiLogger
 /// </summary>
 /// <param name="subloggers">масив логгеров для объединения</param>
 /// <returns>MultiLogger или null(если масив пуст или все элименты равны null)</returns>
 public static ILogger Get(ILogger[] subloggers)
 {
     if (subloggers == null) return null;
     if (subloggers.Length == 0) return null;
     MultiLogger log = new MultiLogger();
     log.subloggers = new ILogger[subloggers.Length];
     for (int i = 0; i < subloggers.Length; i++)
     {
         if (subloggers[i] == null) continue;
         log.subloggers[log.count] = subloggers[i];
         log.count++;
     }
     if (log.count < 1) return null;
     return log;
 }