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); } } }
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); }
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"] } }); }
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)); }
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"; }