private async Task <bool> UpdateOrderStatus(WompiWebhook webhook) { var spec = new OrderByReferenceSpecification(webhook.data.transaction.reference); Order order = await _unitOfWork.Repository <Order>().GetEntityWithSpec(spec); switch (webhook.data.transaction.status) { case "APPROVED": order.Status = OrderStatus.Approved; break; case "DECLINED": order.Status = OrderStatus.Declined; break; case "VOIDED": order.Status = OrderStatus.Voided; break; case "ERROR": order.Status = OrderStatus.Error; break; } _unitOfWork.Repository <Order>().Update(order); var result = await _unitOfWork.Complete(); return(order == null); }
public async Task <string> GenerateReferenceOrderAsync() { Random random = new Random(); const string validCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; const int lengthReference = 30; string randomReference; Order orderByReference = null; do { randomReference = new string(Enumerable.Repeat(validCharacters, lengthReference) .Select(s => s[random.Next(s.Length)]).ToArray()); var spec = new OrderByReferenceSpecification(randomReference); orderByReference = await _unitOfWork.Repository <Order>() .GetEntityWithSpec(spec); } while (orderByReference != null); return(randomReference); }