Exemple #1
0
        public bool SaveFromStream(Image img, int width, int height, string filePath)
        {
            try
            {
                Size     size       = new Size(width, height);
                Image    oTargetImg = new Bitmap(width, height);
                Graphics oGraphic   = Graphics.FromImage(oTargetImg);
                oGraphic.CompositingQuality = CompositingQuality.HighQuality;
                oGraphic.SmoothingMode      = SmoothingMode.HighQuality;
                oGraphic.InterpolationMode  = InterpolationMode.HighQualityBicubic;

                Rectangle oRectangle = new Rectangle(0, 0, size.Width, size.Height);
                oGraphic.DrawImage(img, oRectangle);

                // Encoder parameter for image quality
                EncoderParameter qualityParam = new EncoderParameter(Encoder.Quality, JPG_QUALITY);
                ImageCodecInfo   jpegCodec    = GetEncoderInfo("image/jpeg");

                EncoderParameters encoderParams = new EncoderParameters(1);
                encoderParams.Param[0] = qualityParam;

                //Save File
                oTargetImg.Save(filePath, jpegCodec, encoderParams);

                oGraphic.Dispose();

                return(true);
            }
            catch (Exception e)
            {
                _logger.InsertLog(LogLevel.Error, string.Format("{0}, File path={{{1}}}", e.Message, filePath), e);
                return(false);
            }
        }
        public virtual async Task <(bool success, Dictionary <string, string> values)> VerifyIpn(string formString)
        {
            var formContent = new StringContent($"cmd=_notify-validate&{formString}",
                                                Encoding.UTF8, "application/x-www-form-urlencoded");
            var response = await _client.PostAsync(GetIpnPaypalUrl(), formContent);

            var content = string.Empty;

            try
            {
                response.EnsureSuccessStatusCode();
                content = await response.Content.ReadAsStringAsync();
            }
            catch (Exception ex)
            {
                await _logger.InsertLog(Grand.Domain.Logging.LogLevel.Error, "VerifyIpn", ex.Message);
            }


            var success = content.Trim().Equals("VERIFIED", StringComparison.OrdinalIgnoreCase);

            var values = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            foreach (var l in formString.Split('&'))
            {
                var line     = l.Trim();
                var equalPox = line.IndexOf('=');
                if (equalPox >= 0)
                {
                    values.Add(line.Substring(0, equalPox), line.Substring(equalPox + 1));
                }
            }
            return(success, values);
        }
Exemple #3
0
        /// <summary>
        /// Save a value indicating whether some file (thumb) already exists
        /// </summary>
        /// <param name="thumbFileName">Thumb file name</param>
        /// <param name="binary">Picture binary</param>
        protected virtual Task SaveThumb(string thumbFileName, byte[] binary)
        {
            try
            {
                var dirThumb = _mediaFileStore.GetDirectoryInfo(_thumbPath);
                if (dirThumb == null)
                {
                    var result = _mediaFileStore.TryCreateDirectory(_thumbPath);
                    if (result)
                    {
                        dirThumb = _mediaFileStore.GetDirectoryInfo(_thumbPath);
                    }
                }

                if (dirThumb != null)
                {
                    var file = _mediaFileStore.Combine(dirThumb.PhysicalPath, thumbFileName);
                    File.WriteAllBytes(file, binary ?? Array.Empty <byte>());
                }
                else
                {
                    _logger.InsertLog(Domain.Logging.LogLevel.Error, "Directory thumb not exist.");
                }
            }
            catch (Exception ex)
            {
                _logger.InsertLog(Domain.Logging.LogLevel.Error, ex.Message);
            }
            return(Task.CompletedTask);
        }
        private void ApplyApcCallback(string requestMessage)
        {
            var apcMessage = ParseApcMessage(requestMessage);

            if (apcMessage == null)
            {
                _logger.InsertLog(LogLevel.Warning, "Nochex APC Message is invalid", requestMessage);
                return;
            }

            var orderGuid     = apcMessage["custom"];
            var transactionId = apcMessage["transaction_id"];
            var status        = apcMessage["status"];

            if (orderGuid == null || transactionId == null || status == null)
            {
                _logger.InsertLog(LogLevel.Warning, "Nochex APC: Missing required data", requestMessage);
                return;
            }

            var order = _orderService.GetOrderByGuid(new Guid(orderGuid));

            if (order == null)
            {
                _logger.InsertLog(LogLevel.Warning, "Nochex APC: Order not found: " + orderGuid, requestMessage);
                return;
            }

            var orderNote = new OrderNote {
                Note = "Nochex APC Message Received: \r\n\r\n" + BuildFriendlyApcMessage(apcMessage),
                DisplayToCustomer = false,
                CreatedOnUtc      = DateTime.UtcNow
            };

            order.OrderNotes.Add(orderNote);
            _orderService.UpdateOrder(order);

            var currentStatus = _settings.UseTestMode ? "test" : "live";

            if (!string.Equals(status, currentStatus, StringComparison.InvariantCultureIgnoreCase))
            {
                _logger.InsertLog(LogLevel.Warning, "Nochex APC: Received wrong status " + status, requestMessage);
                return;
            }
            if (!_orderProcessingService.CanMarkOrderAsPaid(order))
            {
                _logger.InsertLog(LogLevel.Warning, "Nochex APC: Cannot mark order as paid: " + orderGuid, requestMessage);
                return;
            }

            order.AuthorizationTransactionId = transactionId;
            _orderService.UpdateOrder(order);
            _orderProcessingService.MarkOrderAsPaid(order);
        }
        public EditorData GetEditor(string title)
        {
            var editor = GetAllEditors().FirstOrDefault(x => x.Title == title);

            if (editor != null)
            {
                return(editor);
            }

            _logger.InsertLog(LogLevel.Error, string.Format("GetEditor: Editor file not found. Title: {0}", title));
            throw new Exception("Editor file not found");
        }
 protected virtual void LogError(Exception ex, LogLevel logLevel = LogLevel.Error, Customer customer = null)
 {
     try
     {
         _logger.InsertLog(logLevel, ex.Message, ex.StackTrace, customer ?? _baseService.WorkContext.CurrentCustomer);
         _baseService.Commit();
     }
     catch (Exception e)
     {
         string errorMsg = e.Message;
     }
 }
Exemple #7
0
        public string ProcessItemQuantityUpdate(int profileId, string shippingCountryCode, int cartItemId, int quantity)
        {
            var message = string.Empty;

            try
            {
                var cartItem = _cartItemRepository.Return(cartItemId);
                if (cartItem == null)
                {
                    throw new ApolloException(string.Format("Cart item could not be loaded. Cart Item ID={{{0}}}", cartItemId));
                }

                cartItem = _cartItemBuilder.Build(cartItem);

                // Validate cart item first
                message = _cartValidator.ValidateCartItem(
                    profileId,
                    cartItem.ProductId,
                    cartItem.Product.BrandId,
                    shippingCountryCode,
                    cartItem.Product.IsPharmaceutical,
                    cartItem.Product.Discontinued,
                    cartItem.ProductPrice.Stock,
                    cartItem.Product.Name,
                    cartItem.Product.EnforceStockCount,
                    cartItem.Product.Brand.EnforceStockCount,
                    cartItem.Product.Enabled,
                    cartItem.ProductPrice.Enabled,
                    cartItem.Quantity,
                    quantity,
                    cartItem.Product.StepQuantity,
                    cartItem.Product.IsPhoneOrder,
                    cartItem.ProductPrice.OfferPriceInclTax);

                // Empty message is ok status from cart item validation
                if (string.IsNullOrEmpty(message))
                {
                    cartItem.Quantity      = quantity;
                    cartItem.UpdatedOnDate = DateTime.Now;
                    _cartItemRepository.Update(cartItem);

                    ProcessCartOfferByProfileId(profileId, shippingCountryCode);
                }
            }
            catch (Exception ex)
            {
                message = "Failed to update quantity. Please try to delete and add the item again.";
                _logger.InsertLog(LogLevel.Error, "Error occurred while updating cart item quantity. " + ex.Message, ex);
            }

            return(message);
        }
        /// <summary>
        /// Upload image to S3
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="pictureBinary"></param>
        /// <param name="mimeType"></param>
        public void S3UploadImage(string fileName, byte[] pictureBinary, string mimeType)
        {
            try
            {
                var client     = GetS3Client();
                var putRequest = new PutObjectRequest
                {
                    BucketName  = GetS3ImagePath(),
                    Key         = fileName,
                    InputStream = new MemoryStream(pictureBinary),
                    ContentType = mimeType,
                };
                putRequest.CannedACL       = S3CannedACL.PublicRead;
                putRequest.Headers.Expires = DateTime.UtcNow.AddDays(_mediaSettings.ExpiresDays);

                PutObjectResponse response = client.PutObject(putRequest);
            }
            catch (AmazonS3Exception ex)
            {
                if (ex.ErrorCode != null && (ex.ErrorCode.Equals("InvalidAccessKeyId") || ex.ErrorCode.Equals("InvalidSecurity")))
                {
                    _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, ex.Message + " ## Check Crendentials", ex.StackTrace);
                }
                else
                {
                    _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, $"Error occurred. Message:{ex.Message} when writing an object", ex.StackTrace);
                }
            }
        }
        public IViewComponentResult Invoke(string widgetZone, object additionalData)
        {
            var script    = "";
            var routeData = Url.ActionContext.RouteData;

            try
            {
                var controller = routeData.Values["controller"];
                var action     = routeData.Values["action"];

                if (controller == null || action == null)
                {
                    return(Content(""));
                }

                //Special case, if we are in last step of checkout, we can use order total for conversion value
                var isOrderCompletedPage = controller.ToString().Equals("checkout", StringComparison.InvariantCultureIgnoreCase) &&
                                           action.ToString().Equals("completed", StringComparison.InvariantCultureIgnoreCase);
                if (isOrderCompletedPage && _googleAnalyticsSettings.UseJsToSendEcommerceInfo)
                {
                    var lastOrder = GetLastOrder();
                    script += GetEcommerceScript(lastOrder);
                }
                else
                {
                    script += GetEcommerceScript(null);
                }
            }
            catch (Exception ex)
            {
                _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, "Error creating scripts for Google eCommerce tracking", ex.ToString());
            }
            return(View("~/Plugins/Widgets.GoogleAnalytics/Views/PublicInfo.cshtml", script));
        }
Exemple #10
0
        public ActionResult PublicInfo(string widgetZone, object additionalData = null)
        {
            string globalScript = "";
            var    routeData    = ((System.Web.UI.Page)HttpContext.CurrentHandler).RouteData;

            try
            {
                var controller = routeData.Values["controller"];
                var action     = routeData.Values["action"];

                if (controller == null || action == null)
                {
                    return(Content(""));
                }

                //Special case, if we are in last step of checkout, we can use order total for conversion value
                if (controller.ToString().Equals("checkout", StringComparison.InvariantCultureIgnoreCase) &&
                    action.ToString().Equals("completed", StringComparison.InvariantCultureIgnoreCase))
                {
                    var lastOrder = GetLastOrder();
                    globalScript += GetEcommerceScript(lastOrder);
                }
                else
                {
                    globalScript += GetTrackingScript();
                }
            }
            catch (Exception ex)
            {
                _logger.InsertLog(LogLevel.Error, "Error creating scripts for Google Analytics tracking", ex.ToString());
            }
            return(Content(globalScript));
        }
 private void TestLogger()
 {
     _logger.InsertLog(LogLevel.Information, "index visit");
     _userActivityService.InsertActivity(ActivityLogTypeEnum.AddUser, "添加用户{0},{1}", new string[2] {
         "aaaa", "bbb"
     });
 }
Exemple #12
0
        private bool Call(string entity)
        {
            string storeFrontRefreshCacheLink = _cacheSettings.StoreFrontRefreshCacheLink;

            if (string.IsNullOrEmpty(storeFrontRefreshCacheLink))
            {
                throw new ApolloException("Setting for storeFrontRefreshCacheURL is empty.");
            }
            string storeFrontToken = _cacheSettings.StoreFrontToken;

            if (string.IsNullOrEmpty(storeFrontToken))
            {
                throw new ApolloException("Setting StoreFrontToken is empty.");
            }

            try
            {
                string         requestUriString = string.Format(storeFrontRefreshCacheLink + "/{0}/{1}", entity, storeFrontToken);
                HttpWebRequest request          = (HttpWebRequest)WebRequest.Create(requestUriString);
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

                request.Method = WebRequestMethods.Http.Get;
                //request.Timeout = 30000;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                return(true);
            }
            catch (Exception ex)
            {
                _logger.InsertLog(LogLevel.Error, string.Format("Failed to call store front refresh cache URL. Store Front Refresh Cache URL={{{0}}}, Entity={{{1}}}, Token={{{2}}}", storeFrontRefreshCacheLink, entity, storeFrontToken), ex);
                return(false);
            }
        }
        /// <summary>
        /// Error handling
        /// </summary>
        /// <param name="statusCode"></param>
        /// <param name="propertyKey"></param>
        /// <param name="errorMessage"></param>
        /// <returns></returns>
        protected IActionResult Error(HttpStatusCode statusCode = (HttpStatusCode)422, string propertyKey = "", string errorMessage = "")
        {
            _logger.InsertLog(LogLevel.Error, errorMessage);

            //Return the view.
            return(View());
        }
Exemple #14
0
        private void ErrorNotifierOnErrorOccured(object sender, NoodleEventArgs <Exception> errorEventArgs)
        {
            if (errorEventArgs.Item == null)
            {
                return;
            }
            if (!LogStore.IsErrorLoggable(errorEventArgs.Item))
            {
                return;
            }

            try
            {
                if (errorEventArgs.Item is LogException)
                {
                    _logger.InsertLog((errorEventArgs.Item as LogException).LogLevel,
                                      (errorEventArgs.Item as LogException).ShortMessage,
                                      (errorEventArgs.Item as LogException).FullMessage,
                                      errorEventArgs.Item);
                }
                else
                {
                    _logger.Error("IErrorNotifier", errorEventArgs.Item);
                }
            }catch (Exception ex)
            {
                new Logger <ErrorNotifierLogger>().Error("There was a problem logging an exception from IErrorNotifier. " + ex.Message);
            }
        }
Exemple #15
0
        public ActionResult PublicInfo(string widgetZone, object additionalData = null)
        {
            string globalScript = "";
            var    routeData    = ((Page)this.HttpContext.CurrentHandler).RouteData;

            try
            {
                var controller = routeData.Values["controller"];
                var action     = routeData.Values["action"];

                if (controller == null || action == null)
                {
                    return(Content(""));
                }

                //Special case, if we are in last step of checkout, we can use order total for conversion value
                if (controller.ToString().Equals("checkout", StringComparison.InvariantCultureIgnoreCase) &&
                    action.ToString().Equals("completed", StringComparison.InvariantCultureIgnoreCase))
                {
                    var lastOrderTotal = _orderService.CalculateLastValidOrderTotalByProfileId(_workContext.CurrentProfile.Id, useDefaultCurrency: true);
                    globalScript += GetTrackingScript(lastOrderTotal);
                }
            }
            catch (Exception ex)
            {
                _logger.InsertLog(LogLevel.Error, "Error creating scripts for Google Adwords tracking", ex.ToString());
            }
            return(Content(globalScript));
        }
        public string ProcessSubmitButton(IList <ShoppingCartItem> cart, TempDataDictionary tempData)
        {
            using (var payPalApiaaInterface = _payPalInterfaceService.GetAAService())
            {
                var customSecurityHeaderType = _payPalSecurityService.GetRequesterCredentials();

                var setExpressCheckoutResponse = payPalApiaaInterface.SetExpressCheckout(
                    ref customSecurityHeaderType, _payPalRequestService.GetSetExpressCheckoutRequest(cart));

                var result      = new ProcessPaymentResult();
                var redirectUrl = string.Empty;
                setExpressCheckoutResponse.HandleResponse(result,
                                                          (paymentResult, type) =>
                {
                    var token   = setExpressCheckoutResponse.Token;
                    redirectUrl = _payPalUrlService.GetExpressCheckoutRedirectUrl(token);
                },
                                                          (paymentResult, type) =>
                {
                    _logger.InsertLog(LogLevel.Error, "Error passing cart to PayPal",
                                      string.Join(", ", setExpressCheckoutResponse.Errors.Select(
                                                      errorType => errorType.ErrorCode + ": " + errorType.LongMessage)));
                    tempData["paypal-ec-error"] = "An error occurred setting up your cart for PayPal.";
                    redirectUrl = _webHelper.GetUrlReferrer();
                }, Guid.Empty);

                return(redirectUrl);
            }
        }
        private async Task <AnalyticsReportingService> _analyticsReportingService()
        {
            try
            {
                var scopes = new[] { AnalyticsReportingService.Scope.Analytics };
                var temp   = new ServiceAccountCredential.Initializer(_googleAnalyticsSettings.gaserviceAccountEmail)
                {
                    Scopes = scopes
                };
                string privateKey = _googleAnalyticsSettings.gaprivateKey.Replace("\\n", "\n");
                var    credential = new ServiceAccountCredential(temp.FromPrivateKey(privateKey));

                return(new AnalyticsReportingService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "GrandNode",
                }));
            }
            catch (Exception ex)
            {
                await _logger.InsertLog(Domain.Logging.LogLevel.Error, "GoogleAnalytics", ex.Message);

                return(await Task.FromResult <AnalyticsReportingService>(null));
            }
        }
        /// <summary>
        /// Executes a task
        /// </summary>
        public void Execute()
        {
            lock (_lock)
            {
                var auctionsToEnd = _auctionService.GetAuctionsToEnd();
                foreach (var auctionToEnd in auctionsToEnd)
                {
                    var bid = _auctionService.GetBidsByProductId(auctionToEnd.Id).OrderByDescending(x => x.Amount).FirstOrDefault();
                    if (bid == null)
                    {
                        throw new ArgumentNullException("bid");
                    }

                    var warnings = _shoppingCartService.AddToCart(_customerService.GetCustomerById(bid.CustomerId), bid.ProductId, Core.Domain.Orders.ShoppingCartType.Auctions,
                                                                  bid.StoreId, customerEnteredPrice: bid.Amount);

                    if (!warnings.Any())
                    {
                        bid.Win = true;
                        _auctionService.UpdateBid(bid);
                        _workflowMessageService.SendAuctionEndedStoreOwnerNotification(auctionToEnd, _localizationSettings.DefaultAdminLanguageId, bid);
                        _workflowMessageService.SendAuctionEndedCustomerNotificationWin(auctionToEnd, null, bid);
                        _workflowMessageService.SendAuctionEndedCustomerNotificationLost(auctionToEnd, null, bid);
                        _auctionService.UpdateAuctionEnded(auctionToEnd, true);
                    }
                    else
                    {
                        _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, $"EndAuctionTask - Product {auctionToEnd.Name}", string.Join(",", warnings.ToArray()));
                        throw new ArgumentNullException($"EndAuctionTask - Product: {auctionToEnd.Name} - {string.Join(", ", warnings.ToArray())}");
                    }
                }
            }
        }
Exemple #19
0
        public async Task <IActionResult> PublicInfo(string widgetZone, object additionalData = null)
        {
            string globalScript = "";
            var    routeData    = Url.ActionContext.RouteData;

            try
            {
                var controller = routeData.Values["controller"];
                var action     = routeData.Values["action"];

                if (controller == null || action == null)
                {
                    return(Content(""));
                }

                //Special case, if we are in last step of checkout, we can use order total for conversion value
                if (controller.ToString().Equals("checkout", StringComparison.OrdinalIgnoreCase) &&
                    action.ToString().Equals("completed", StringComparison.OrdinalIgnoreCase))
                {
                    var lastOrder = await GetLastOrder();

                    globalScript += await GetEcommerceScript(lastOrder);
                }
                else
                {
                    globalScript += GetTrackingScript();
                }
            }
            catch (Exception ex)
            {
                await _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, "Error creating scripts for google ecommerce tracking", ex.ToString());
            }
            return(Content(globalScript));
        }
Exemple #20
0
        public ActionResult PublicInfo(string widgetZone)
        {
            string globalScript = "";
            var    routeData    = ((System.Web.UI.Page) this.HttpContext.CurrentHandler).RouteData;

            try
            {
                //Special case, if we are in last step of checkout, we can use order total for conversion value
                if (routeData.Values["controller"].ToString().Equals("checkout", StringComparison.InvariantCultureIgnoreCase) &&
                    routeData.Values["action"].ToString().Equals("completed", StringComparison.InvariantCultureIgnoreCase))
                {
                    var lastOrder = GetLastOrder();
                    globalScript += GetEcommerceScript(lastOrder);
                }
                else
                {
                    globalScript += GetTrackingScript();
                }
            }
            catch (Exception ex)
            {
                _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, "Error creating scripts for google ecommerce tracking", ex.ToString());
            }
            return(Content(globalScript));
            //return View("Nop.Plugin.Widgets.GoogleAnalytics.Views.WidgetsGoogleAnalytics.PublicInfo", model);
        }
Exemple #21
0
        /// <summary>
        /// Post process payment (used by payment gateways that require redirecting to a third-party URL)
        /// </summary>
        /// <param name="postProcessPaymentRequest">Payment info required for an order processing</param>
        public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)
        {
            //create common query parameters for the request
            var queryParameters = CreateOxipayRequestPost(postProcessPaymentRequest);

            AddOrderTotalParameters(queryParameters, postProcessPaymentRequest);
            var hmacSignature = GenerateHMAC(queryParameters);

            var order      = postProcessPaymentRequest.Order;
            var gatewayUrl = new Uri(GetOxipayUrl());

            var remotePostHelper = new RemotePost
            {
                Url      = gatewayUrl.ToString(),
                Method   = "POST",
                FormName = "OxipayForm"
            };

            //queryParameters
            foreach (KeyValuePair <string, string> record in queryParameters)
            {
                remotePostHelper.Add(record.Key, record.Value);
            }
            ;
            // Add HMAC Signature to the request
            remotePostHelper.Add("x_signature", hmacSignature);
            _logger.InsertLog(LogLevel.Warning, remotePostHelper.Url, remotePostHelper.Method);
            remotePostHelper.Post();
        }
Exemple #22
0
        public IViewComponentResult Invoke(string widgetZone, object additionalData)
        {
            string script    = "";
            var    routeData = Url.ActionContext.RouteData;

            try
            {
                var controller = routeData.Values["controller"];
                var action     = routeData.Values["action"];

                if (controller == null || action == null)
                {
                    return(Content(""));
                }

                if (_sendInBlueSettings.UseMarketingAutomation)
                {
                    script += GetEcommerceScript();
                }
            }
            catch (Exception ex)
            {
                _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, "Error creating scripts for SendinBlue tracking", ex.ToString());
            }
            return(View("~/Plugins/Misc.SendinBlue/Views/PublicInfo.cshtml", script));
        }
        private static void WriteLog(ILogger logger, LogLevel level,
                                     string source,
                                     string message,
                                     Exception ex     = null,
                                     string reference = null)
        {
            if (ex is ThreadAbortException)
            {
                return;
            }

            var fullMessage = string.Empty;

            if (ex != null)
            {
                fullMessage = ex.ToString();
            }

            logger.InsertLog(new Log {
                Message      = message,
                FullMessage  = fullMessage,
                Reference    = reference,
                Source       = source,
                LogLevel     = level,
                CreatedOnUtd = DateTime.UtcNow
            });
        }
        /// <summary>
        /// Process a payment
        /// </summary>
        /// <param name="processPaymentRequest">Payment info required for an order processing</param>
        /// <returns>Process payment result</returns>
        public ProcessPaymentResult ProcessPayment(ProcessPaymentRequest processPaymentRequest)
        {
            var result = new ProcessPaymentResult();

            try
            {
                result.AllowStoringCreditCardNumber = false;
                var          customer = _customerService.GetCustomerById(processPaymentRequest.CustomerId);
                var          order    = _orderService.GetOrderByGuid(processPaymentRequest.OrderGuid);
                string       currency = _currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId).CurrencyCode;
                PaymentModel pm       = new PaymentModel();
                pm = getPayment("?token=" + processPaymentRequest.CustomValues["paymenttoken"]);
                string paymentid = pm.id;
                string amount    = processPaymentRequest.OrderTotal.ToString();
                amount = Regex.Replace(amount, @"[^\d]", "");

                //string urlappend = "?payment=" + payment + "&amount=" + amount + "&currency=" + currency + "&description=" + description;
                string           urlbuilder = "?payment=" + paymentid + "&amount=" + amount + "&currency=" + currency + "&description=Order from Store ID: " + processPaymentRequest.StoreId.ToString() + " PaymentID: " + pm.id;
                TransactionModel trans      = new TransactionModel();
                //_logger.InsertLog(Core.Domain.Logging.LogLevel.Information, "url for transaction", urlbuilder);
                trans = getTransaction(urlbuilder, pm);
                string responsecode  = trans.response_code;
                string transactionid = trans.id;
                //set the transaction variables
                if (responsecode == "20000")
                {
                    //successful response
                    result.AuthorizationTransactionCode   = transactionid;
                    result.AuthorizationTransactionResult = responsecode;
                    result.NewPaymentStatus = PaymentStatus.Paid;
                    //_logger.InsertLog(Core.Domain.Logging.LogLevel.Information, "success at paymill proceessorder" + responsecode + urlbuilder + paymentid, trans.status + urlbuilder + paymentid, null);
                }
                else
                {
                    //failed transaction
                    _logger.InsertLog(Core.Domain.Logging.LogLevel.Information, "failure at paymill proceessorder" + responsecode, trans.status, null);
                    result.AddError(getErrorcodes(responsecode, trans.status));
                }
            }
            catch (Exception ex)
            {
                _logger.InsertLog(Core.Domain.Logging.LogLevel.Error, ex.Message, ex.ToString());
                result.AddError(ex.ToString());
            }
            return(result);
        }
 private static void FilteredLog(ILogger logger, LogLevel level, string message, Exception exception = null, Customer customer = null)
 {
     if (logger.IsEnabled(level))
     {
         string fullMessage = exception == null ? string.Empty : exception.ToString();
         logger.InsertLog(level, message, fullMessage, customer);
     }
 }
 /// <summary>
 /// Returns boolean indicating whether payment has been accepted by zarinpal
 /// </summary>
 /// <param name="authority">36digit long code</param>
 /// <param name="status">status code</param>
 /// <returns>true - accepted; false - not accepted.</returns>
 public bool VerifyPayment(string authority, string status)
 {
     try
     {
         var query = from or in _orderRepository.Table
                     where or.AuthorizationTransactionCode == authority
                     select or;
         _logger.InsertLog(LogLevel.Debug, "in verify1 :" + query.Count());
         ZarinPalService.PaymentGatewayImplementationService zps = new ZarinPalService.PaymentGatewayImplementationService();
         _logger.InsertLog(LogLevel.Debug, "in verify2 : merch code: " + _zarinPalPaymentSettings.MerchantCode + " %% authority code: " + authority + " %% order total: " + query.FirstOrDefault().OrderTotal);
         if (zps.PaymentVerification(_zarinPalPaymentSettings.MerchantCode, authority, Convert.ToInt32(query.FirstOrDefault().OrderTotal / 10), out long RefID).Equals(100))
         {
             _logger.InsertLog(LogLevel.Debug, "in verify3");
             query.FirstOrDefault().AuthorizationTransactionResult = RefID.ToString();
             _logger.InsertLog(LogLevel.Debug, "in verify4");
             _orderRepository.Update(query.FirstOrDefault());
             _logger.InsertLog(LogLevel.Debug, "in verify5");
             return(true);
         }
         else
         {
             _logger.InsertLog(LogLevel.Debug, "in verify: verification failed");
             return(false);
         }
     }
     catch (Exception ex)
     {
         _logger.InsertLog(LogLevel.Debug, "in verify: " + ex.Message);
         return(false);
     }
 }
Exemple #27
0
 private static void FilteredLog(ILogger logger, LogLevel level, string message, Exception exception = null, UserProfile customer = null)
 {
     //don't log thread abort exception
     if ((exception != null) && (exception is System.Threading.ThreadAbortException))
         return;         
         string fullMessage = exception == null ? string.Empty : exception.ToString();
         logger.InsertLog(level, message, fullMessage, customer);
     
 }
Exemple #28
0
 public override void OnException(HttpActionExecutedContext actionExecutedContext)
 {
     if (actionExecutedContext.Exception != null)
     {
         var exception = actionExecutedContext.Exception;
         logger.InsertLog(LogLevel.Error, exception.Message, exception.StackTrace, Thread.CurrentPrincipal.Identity.Name);
         actionExecutedContext.Response = actionExecutedContext.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exception.Message, exception);
     }
 }
Exemple #29
0
        public void Can_insert_log()
        {
            // setup
            _ipAddress   = "ipaddress";
            _referrerUrl = "referrer";
            _currentUrl  = "http://domain.com/?query=something";

            // act
            _testLog = _logger.InsertLog(LogLevel.Information, "short", "full", null, "user");

            // assert
            var logs = _logger.GetAllLogs();

            logs.Count.ShouldEqual(1);
            logs[0].LogLevel.ShouldEqual(LogLevel.Information);
            logs[0].ShortMessage.ShouldEqual("short");
            logs[0].FullMessage.ShouldEqual("full");
        }
        /// <summary>
        /// Post process payment (used by payment gateways that require redirecting to a third-party URL)
        /// </summary>
        /// <param name="postProcessPaymentRequest">Payment info required for an order processing</param>
        //[HttpPost]
        //public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)
        //{
        //    //create common query parameters for the request
        //    var queryParameters = CreateQueryParameters(postProcessPaymentRequest);
        //    //remove null values from parameters
        //    queryParameters = queryParameters.Where(parameter => !string.IsNullOrEmpty(parameter.Value))
        //        .ToDictionary(parameter => parameter.Key, parameter => parameter.Value);

        //    var url = QueryHelpers.AddQueryString(GetGTPayUrl(), queryParameters);
        //    if (_GTPayPaymentSettings.UseSandbox) { _logger.Information(url.Trim()); }
        //    _httpContextAccessor.HttpContext.Response.Redirect(url.Trim());
        //}
        public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)
        {
            string customorderid = postProcessPaymentRequest.Order.CustomOrderNumber;
            //_logger.InsertLog(LogLevel.Information, customorderid);
            string url = $"{_webHelper.GetStoreLocation()}Plugins/PaymentGTPay/SubmitPaymentInfo?customorderid={customorderid}";

            _logger.InsertLog(LogLevel.Information, url);
            _httpContextAccessor.HttpContext.Response.Redirect(url);
        }
        /// <summary>
        /// Executes a task
        /// </summary>
        public virtual void Execute()
        {
            try
            {
                var products = _productService.SearchProducts();
                _logger.InsertLog(Core.Domain.Logging.LogLevel.Information, "Fetch products start");
                //_logger.ClearLog();
                var filePath = _fileProvider.Combine(_fileProvider.MapPath("~/wwwroot/files/"), "GMCFetch.txt");
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    string domain = "https://arrowwarehousing.co.nz/";

                    Core.Domain.Media.Picture picture;
                    string        pictureUrl;
                    string        seName;
                    string        availability;
                    string        price;
                    StringBuilder sb  = new StringBuilder();
                    string        row = "ID" + "\t" + "title" + "\t" + "description" + "\t" + "link" + "\t" + "image_link" + "\t" + "availability" + "\t" + "price" + "\t" + "google_​​product_category" + "\t" + "identifier_exists";
                    sb.AppendLine(row);
                    for (int i = 0; i < products.Count; i++)
                    {
                        availability = products[i].StockQuantity > 0 ? "in stock" : "out of stock";
                        seName       = string.Format("{0}{1}", domain, _urlRecordService.GetSeName(products[i]));
                        picture      = _pictureService.GetPicturesByProductId(products[i].Id).FirstOrDefault();
                        pictureUrl   = _pictureService.GetPictureUrl(picture.Id);
                        price        = string.Format("{0:0.00} NZD", products[i].Price);
                        row          = string.Format("{0}" + "\t" + "{1}" + "\t" + "{2}" + "\t" + "{3}" + "\t" + "{4}" + "\t" + "{5}" + "\t" + "{6}" + "\t" + "{7}" + "\t" + "false",
                                                     products[i].Id, products[i].Name, products[i].ShortDescription, seName, pictureUrl,
                                                     availability, price, products[i].ProductCategories.FirstOrDefault().Category.Name);
                        sb.AppendLine(row);
                    }
                    byte[] bdata = Encoding.Default.GetBytes(sb.ToString());
                    fileStream.Write(bdata, 0, bdata.Length);
                    fileStream.Close();
                }
                _logger.InsertLog(Core.Domain.Logging.LogLevel.Information, "Fetch products end");
            }
            catch (Exception ex)
            {
                _logger.Error("Fetch products exception: ", ex);
            }
        }
        private static void FilteredLog(ILogger logger, LogLevel level, string message, Exception exception = null, Customer customer = null)
        {
            //don't log thread abort exception
            if (exception is System.Threading.ThreadAbortException)
                return;

            if (logger.IsEnabled(level))
            {
                string fullMessage = exception == null ? string.Empty : exception.ToString();
                logger.InsertLog(level, message, fullMessage, customer);
            }
        }
        private static void FilteredLog(ILogger logger, LogLevel level, string message, Exception exception = null,
            User user = null)
        {
            //No se guarda el registro cuando es de un hilo de una excepcion de abort
            if (exception is ThreadAbortException)
                return;

            if (logger.IsEnabled(level))
            {
                var fullMessage = exception == null ? string.Empty : exception.ToString();
                logger.InsertLog(level, message, fullMessage, user);
            }
        }
 private static void FilteredLog(ILogger logger, LogLevel level, string message,
     Exception exception = null, Customer customer = null, bool stopException = true)
 {
     // không log thông điệp khi ngoại lệ là ThreadAbortException
     if (exception is ThreadAbortException) return;
     try
     {
         if (logger.IsEnabled(level)) // nếu cho phép ghi log với kiểu level
         {
             string fullMessage = exception == null ? string.Empty : exception.ToString();
             logger.InsertLog(level, message, fullMessage, customer);
         }
     }
     catch (Exception)
     {
         if (!stopException) throw;
     }
 }
 private static void FilteredLog(ILogger logger, LogLevel level, string message, Exception exception = null, string user = null)
 {
     logger.InsertLog(level, message, string.Empty, exception, user);
 }