public BraintreeResponse MakePayment(string nonce)
        {
            BraintreeGateway   braintreeGateway = GetGateway();
            TransactionRequest request          = new TransactionRequest
            {
                Amount             = _cartModel.TotalToPay,
                PaymentMethodNonce = nonce,
                BillingAddress     = GetBillingAddress(),
                Options            = new TransactionOptionsRequest
                {
                    ThreeDSecure = new TransactionOptionsThreeDSecureRequest
                    {
                        Required = _braintreeSettings.ThreeDSecureRequired
                    }
                }
            };

            Result <Transaction> result = braintreeGateway.Transaction.Sale(request); // send transction request

            if (result.IsSuccess())
            {
                Order order = _orderPlacementService.PlaceOrder(_cartModel,
                                                                o =>
                {
                    o.PaymentStatus        = PaymentStatus.Paid;
                    o.CaptureTransactionId = result.Target.Id;
                });

                // Success
                return(new BraintreeResponse {
                    Success = true, Order = order
                });
            }

            // error return
            List <string> errorList =
                result.Errors.DeepAll()
                .Select(
                    error =>
                    string.Format("Code: {0}, Message: {1}, Attribute: {2}", error.Code, error.Message,
                                  error.Attribute))
                .ToList();

            _logAdminService.Insert(new Log
            {
                Error   = new Error(),
                Message = "Braintree Error Details",
                Detail  = string.Join("<br/>", errorList)
            });

            return(new BraintreeResponse
            {
                Success = false,
                Errors = new List <string> {
                    result.Message
                }
            });
        }
        public ActionResult WriteDownloadToResponse(HttpResponseBase response, Order order, OrderLine orderLine)
        {
            if (order == null || orderLine == null)
            {
                return new ContentResult {
                           Content = "Error", ContentType = "text/plain"
                }
            }
            ;

            var errors = _rules.SelectMany(rule => rule.GetErrors(order, orderLine));

            if (errors.Any())
            {
                return new ContentResult {
                           Content = "Sorry the file you requested to be downloaded is unavailable. Either the order is not paid or the file has been downloaded a maximum amount of times. Contact the store owner if you believe this to be incorrect.", ContentType = "text/plain"
                }
            }
            ;

            if (!_fileSystem.Exists(orderLine.DownloadFileUrl))
            {
                return new ContentResult {
                           Content = "File no longer exists.", ContentType = "text/plain"
                }
            }
            ;

            EcommerceDownloadResult writeDownloadToResponse;

            try
            {
                writeDownloadToResponse = new EcommerceDownloadResult(_fileSystem, orderLine);
            }
            catch (Exception exception)
            {
                _logService.Insert(new Log
                {
                    Error   = new Error(exception),
                    Message = "Error downloading file"
                });
                return(new ContentResult {
                    Content = "An error occoured, please contact the store owner.", ContentType = "text/plain"
                });
            }

            orderLine.NumberOfDownloads++;
            _session.Transact(session => session.Update(orderLine));
            return(writeDownloadToResponse);
        }
    }
}
Exemplo n.º 3
0
        public bool Log(LogEntryType type, Error error, string message, string detail)
        {
            //create new log

            Log log = new Log()
            {
                Type    = type,
                Error   = error,
                Message = message,
                Detail  = detail
            };

            _logger.Insert(log);
            return(true);
        }
Exemplo n.º 4
0
        public CharityClearResponse HandleNotification(FormCollection form)
        {
            _logService.Insert(new Log
            {
                Detail  = JsonConvert.SerializeObject(form),
                Message = "Callback from Charity Clear",
                Error   = new Error()
            });

            if (form["responseCode"] == "0")
            {
                Guid   cartGuid;
                string orderId = form["orderRef"];
                Guid.TryParse(orderId, out cartGuid);

                var existingOrder =
                    _session.QueryOver <Order>().Where(o => o.Guid == cartGuid).Take(1).SingleOrDefault();
                if (existingOrder != null)
                {
                    return(new CharityClearResponse
                    {
                        Order = existingOrder,
                        Success = true
                    });
                }

                string captureTransactionId = form["transactionID"];
                var    amountCharged        = form["amountReceived"];
                string hash = form["merchantData"];
                var    cart = GetCart(orderId);

                try
                {
                    if (!CheckHash(hash, orderId))
                    {
                        throw new Exception(string.Format("We could not validate this payment. Please contact us quoting reference {0}", captureTransactionId));
                    }
                    if (cart == null)
                    {
                        throw new Exception(string.Format("The order ID {0} doesn't exist", orderId));
                    }
                }
                catch (Exception exception)
                {
                    CurrentRequestData.ErrorSignal.Raise(exception);
                    return(new CharityClearResponse
                    {
                        ErrorMessages =
                            new List <string>
                        {
                            string.Format("Sorry, something went wrong. Please contact us quoting reference {0}", captureTransactionId)
                        }
                    });
                }

                if (amountCharged != ((int)(cart.TotalToPay * 100)).ToString())
                {
                    string message = string.Format("Something went wrong with the amount we charged you. Please contact us quoting transaction {0}", captureTransactionId);
                    _logService.Insert(new Log
                    {
                        Detail  = JsonConvert.SerializeObject(form),
                        Message = message,
                        Error   = new Error()
                    });
                    return(new CharityClearResponse
                    {
                        ErrorMessages =
                            new List <string>
                        {
                            message
                        }
                    });
                }

                Order order = _orderPlacementService.PlaceOrder(cart, o =>
                {
                    o.PaymentStatus        = PaymentStatus.Paid;
                    o.ShippingStatus       = ShippingStatus.Unshipped;
                    o.CaptureTransactionId = captureTransactionId;
                });

                return(new CharityClearResponse
                {
                    Order = order,
                    Success = true
                });
            }

            return(new CharityClearResponse
            {
                ErrorMessages =
                    new List <string>
                {
                    "Your transaction was not authorised. Please check your details and try again.", form["responseMessage"]
                }
            });
        }
Exemplo n.º 5
0
        private bool SendBithdayMessageTask(TaskShit Task)
        {
            TaskShit task = _helperSvc.getTask(Task.Id);

            task.status = true;
            _helperSvc.updateTask(task);
            IList <Enrollee> enrolleewithbirthday = _enrolleeService.GetEnrolleeCelebratingBirthday();

            List <string> phonenumbersent = new List <string>();
            DateTime      today           = CurrentRequestData.Now;

            foreach (Enrollee enrollee in enrolleewithbirthday.Where(x => x.Mobilenumber.Length > 10))
            {
                if (enrollee.LastyearBirthdaymsgsent < today.Year)
                {
                    string fullname = enrollee.Surname + " " + enrollee.Othernames;

                    if (!string.IsNullOrEmpty(fullname) && !phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        string messageFormated = _smsservice.GetConfig().BdaySmsTemplate.Replace("%name%", fullname);


                        Sms sms = new Sms();
                        sms.FromId       = "NovoHealth";
                        sms.DeliveryDate = CurrentRequestData.Now;
                        sms.Message      =
                            string.Format(messageFormated);
                        sms.DateDelivered = CurrentRequestData.Now;
                        sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                        sms.Msisdn        = enrollee.Mobilenumber;
                        sms.Status        = SmsStatus.Pending;
                        sms.Type          = SmsType.Birthday;

                        bool resp = _smsservice.SendSms(sms);

                        phonenumbersent.Add(enrollee.Mobilenumber);

                        //update enrollee last birthdaysent

                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                    //not sent for years

                    if (phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        //duplicate enrollee
                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                }
            }
            Log log = new Log();

            log.Message = string.Format("Birthday Message was sent to  {0} Enrollee's {1}", phonenumbersent.Count(), CurrentRequestData.Now.ToLongTimeString());
            log.Type    = LogEntryType.Audit;
            log.Detail  = "Birthday Message Sent";

            _logger.Insert(log);



            //Do PostVerification EVS

            IList <EnrolleeVerificationCode> verificationlis = _enrolleeService.GetPreviousDayAuthenticatedCodes();

            int smscount = 0;

            foreach (EnrolleeVerificationCode item in verificationlis)
            {
                Enrollee enrollee = _enrolleeService.GetEnrollee(item.EnrolleeId);
                Provider provider = _providerservice.GetProvider(item.ProviderId);

                if (enrollee != null && provider != null & enrollee.Mobilenumber.Length > 9)
                {
                    string msg = string.Format("Dear {0} ,Novo Health Africa Cares. How were you served at {1} yesterday ,Call or text.08180287867.", (enrollee.Surname + " " + enrollee.Othernames).ToUpper(), provider.Name.ToUpper());


                    Sms sms = new Sms();
                    sms.FromId       = "NovoHealth";
                    sms.DeliveryDate = CurrentRequestData.Now;
                    sms.Message      = msg;

                    sms.DateDelivered = CurrentRequestData.Now;
                    sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                    sms.Msisdn        = enrollee.Mobilenumber;
                    sms.Status        = SmsStatus.Pending;
                    sms.Type          = SmsType.Others;

                    bool resp = _smsservice.SendSms(sms);


                    smscount++;
                }
                item.PostSMSSent = true;
                _helperSvc.Updateverification(item);
            }
            Log logit = new Log();

            logit.Message = string.Format("PostEVS Message was sent to  {0} Enrollee's {1}", smscount, CurrentRequestData.Now.ToLongTimeString());
            logit.Type    = LogEntryType.Audit;
            logit.Detail  = "Post EVS Message Sent";



            //send delivery
            IList <AuthorizationCode> thedeliveries = _claimservice.getBirthAuthorization();

            foreach (AuthorizationCode item in thedeliveries)
            {
                Enrollee enrollee = _enrolleeService.GetEnrollee(item.enrolleeID);

                if (enrollee != null && enrollee.Mobilenumber.Length > 9)
                {
                    Sms sms = new Sms();
                    sms.FromId       = "NovoHealth";
                    sms.DeliveryDate = CurrentRequestData.Now;
                    sms.Message      = "Dear esteemed enrollee, Novo Health Africa wishes to use this medium to congratulate you on the arrival of your bundle of Joy. It is with great joy we share this period and experience of Joy with you and your family. Please accept our heartfelt wishes. With love from NHA.";

                    sms.DateDelivered = CurrentRequestData.Now;
                    sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                    sms.Msisdn        = enrollee.Mobilenumber;
                    sms.Status        = SmsStatus.Pending;
                    sms.Type          = SmsType.Others;

                    bool resp = _smsservice.SendSms(sms);
                    item.deliverysmssent = true;

                    _claimservice.updateAuthorization(item);
                }
            }


            //update task

            task.status  = false;
            task.LastRun = CurrentRequestData.Now;



            return(_helperSvc.updateTask(task));
        }
Exemplo n.º 6
0
        protected override void OnExecute()
        {
            IList <Enrollee> enrolleewithbirthday = _enrolleeService.GetEnrolleeCelebratingBirthday();

            List <string> phonenumbersent = new List <string>();
            DateTime      today           = CurrentRequestData.Now;

            foreach (Enrollee enrollee in enrolleewithbirthday.Where(x => x.Mobilenumber.Length > 10))
            {
                if (enrollee.LastyearBirthdaymsgsent < today.Year)
                {
                    string fullname = enrollee.Surname + " " + enrollee.Othernames;

                    if (!string.IsNullOrEmpty(fullname) && !phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        string messageFormated = _smsservice.GetConfig().BdaySmsTemplate.Replace("%name%", fullname);


                        Sms sms = new Sms();
                        sms.FromId       = "NovoHealth";
                        sms.DeliveryDate = CurrentRequestData.Now;
                        sms.Message      =
                            string.Format(messageFormated);
                        sms.DateDelivered = CurrentRequestData.Now;
                        sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                        sms.Msisdn        = enrollee.Mobilenumber;
                        sms.Status        = SmsStatus.Pending;
                        sms.Type          = SmsType.Birthday;

                        bool resp = _smsservice.SendSms(sms);

                        phonenumbersent.Add(enrollee.Mobilenumber);

                        //update enrollee last birthdaysent

                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                    //not sent for years

                    if (phonenumbersent.Contains(enrollee.Mobilenumber))
                    {
                        //duplicate enrollee
                        enrollee.LastyearBirthdaymsgsent = today.Year;
                        _enrolleeService.UpdateEnrollee(enrollee);
                    }
                }
            }
            Log log = new Log();

            log.Message = string.Format("Birthday Message was sent to  {0} Enrollee's {1}", phonenumbersent.Count(), CurrentRequestData.Now.ToLongTimeString());
            log.Type    = LogEntryType.Audit;
            log.Detail  = "Birthday Message Sent";

            _logger.Insert(log);



            //Do PostVerification EVS

            IList <EnrolleeVerificationCode> verificationlis = _enrolleeService.GetPreviousDayAuthenticatedCodes();

            int smscount = 0;

            foreach (EnrolleeVerificationCode item in verificationlis)
            {
                Enrollee enrollee = _enrolleeService.GetEnrollee(item.EnrolleeId);
                Provider provider = _providerservice.GetProvider(item.ProviderId);

                if (enrollee != null && provider != null & enrollee.Mobilenumber.Length > 9)
                {
                    string msg = string.Format("Dear {0} ,We noticed from our E-VS platform that you recently assessed care at {1}.We hope you enjoyed their services.If you have any complaints,kindly call or text any of these numbers.08179709298,07053173582,07053173582,08179711606.", (enrollee.Surname + " " + enrollee.Othernames).ToUpper(), provider.Name.ToUpper());


                    Sms sms = new Sms();
                    sms.FromId       = "NovoHealth";
                    sms.DeliveryDate = CurrentRequestData.Now;
                    sms.Message      = msg;

                    sms.DateDelivered = CurrentRequestData.Now;
                    sms.CreatedBy     = CurrentRequestData.CurrentUser != null ? CurrentRequestData.CurrentUser.Id : 1;
                    sms.Msisdn        = enrollee.Mobilenumber;
                    sms.Status        = SmsStatus.Pending;
                    sms.Type          = SmsType.Others;

                    bool resp = _smsservice.SendSms(sms);


                    smscount++;
                }
                item.PostSMSSent = true;
                _helperSvc.Updateverification(item);
            }
            Log logit = new Log();

            logit.Message = string.Format("PostEVS Message was sent to  {0} Enrollee's {1}", smscount, CurrentRequestData.Now.ToLongTimeString());
            logit.Type    = LogEntryType.Audit;
            logit.Detail  = "Post EVS Message Sent";
        }