public static TransfertP2p AcceptTransfertA2A(TransfertP2p tA2A, KoloAndroidEntities db, out string error) { error = ""; if (TransfertVerification(tA2A)) { if (tA2A.TransfertStatusCode != KoloConstants.Operation.Status.RECEIVE_PENDING.ToString()) { TransfertP2p tmp = db.TransfertP2p.FirstOrDefault(t => t.IdTransfertP2p == tA2A.IdTransfertP2p); if (tA2A.Secret == tmp.Secret) { if (tA2A.NeedsConfirmation) { return(AskConfirmationOfTransfertA2A(tA2A, db, out error)); } if (!tA2A.NeedsConfirmation) { return(ConfirmTransfertA2A(tA2A, db, out error)); } } return(new TransfertP2p() { IdTransfertP2p = -30, TransfertStatusCode = "Code Secret Erroné Veuillez Ressaisir le demander a l'expediteur " }); } return(new TransfertP2p() { IdTransfertP2p = -20, TransfertStatusCode = "Le statut du transfert est inadequat pour une reception : " + tA2A.TransfertStatusCode }); } return(new TransfertP2p() { IdTransfertP2p = -10, TransfertStatusCode = "Parametres du transfert sont non conformes" }); }
public P2pTransferDetails(TransfertP2p transfer) { this.TransfertId = transfer.IdTransfertP2p; Customer sender = transfer.Sender; Customer receiver = transfer.Receiver; this.SenderFirstName = sender.Person.Firstname ?? ""; this.SenderLastName = sender.Person.Lastname ?? ""; this.SenderIdCustomer = sender.IdCustomer; this.SenderMiddleName = sender.Person.Middlename ?? ""; this.SenderTelephone = sender.MobileDevices[1]?.LineNumber ?? sender.Registration?.PhoneNumber ?? ""; this.ReceiverFirstName = receiver.Person.Firstname ?? ""; this.ReceiverLastName = receiver.Person.Lastname ?? ""; this.ReceiverIdCustomer = receiver.IdCustomer; this.ReceiverMiddleName = receiver.Person.Middlename ?? ""; this.ReceiverTelephone = receiver.MobileDevices[1]?.LineNumber ?? sender.Registration?.PhoneNumber ?? ""; this.Amount = transfer.Amount; this.TransferDate = transfer.TransfertDate; this.PassPhrase = transfer.Secret ?? ""; this.NeedsConfirmation = transfer.NeedsConfirmation == true; this.ScheduleDate = transfer.TransfertDate; this.Status = transfer.TransfertStatusCode ?? ""; this.Reference = transfer.Reference ?? ""; }
private static TransfertP2p GetTransfertP2p(TransfertP2p t, KoloAndroidEntities db) { return(db.TransfertP2p.FirstOrDefault(e => e.IdReceiverCustomer == t.IdReceiverCustomer && e.IdSendingCustomer == t.IdSendingCustomer && e.IdTransfertP2p == t.IdTransfertP2p && e.IdTransfertScheduled == t.IdTransfertScheduled && e.NeedsConfirmation == t.NeedsConfirmation && e.Reference == t.Reference && e.Secret == t.Secret && e.Transfert2Cash == t.Transfert2Cash && e.TransfertDate == t.TransfertDate && e.TransfertStatusCode == t.TransfertStatusCode)); }
private static bool TransfertVerification(TransfertP2p tA2A) { if (tA2A.Amount <= 0) { return(false); } if (tA2A.IdReceiverCustomer <= 0) { return(false); } if (tA2A.IdSendingCustomer <= 0) { return(false); } return(true); }
public static TransfertP2p ConfirmTransfertA2A(TransfertP2p tA2A, KoloAndroidEntities db, out string error) { error = ""; if (TransfertVerification(tA2A)) { if (tA2A.TransfertStatusCode != KoloConstants.Operation.Status.CONFIRM_PENDING.ToString()) { try { TransfertP2p t = db.TransfertP2p.FirstOrDefault(tP2P => tP2P.IdTransfertP2p == tA2A.IdTransfertP2p); t.TransfertStatusCode = tA2A.TransfertStatusCode; t.Sender = db.Customers.FirstOrDefault(c => c.IdCustomer == t.IdSendingCustomer); t.Receiver = db.Customers.FirstOrDefault(c => c.IdCustomer == t.IdSendingCustomer); t.TransfertStatusCode = KoloConstants.Operation.Status.COMPLETED.ToString(); Tuple <List <KoloNotification>, List <CustomerBalanceHistory> > tuple = OperationHelper.MakeOperation <TransfertP2p>(t, db, out error); db.KoloNotifications.AddRange(tuple.Item1); db.CustomerBalanceHistories.AddRange(tuple.Item2); db.SaveChanges(); return(t); } catch (Exception ex) { error = ExceptionHelper.GetExceptionMessage(ex); } return(new TransfertP2p() { IdTransfertP2p = -30, TransfertStatusCode = error }); } return(new TransfertP2p() { IdTransfertP2p = -20, TransfertStatusCode = "Le statut du transfert est inadequat pour une reception : " + tA2A.TransfertStatusCode }); } return(new TransfertP2p() { IdTransfertP2p = -10, TransfertStatusCode = "Parametres du transfert sont non conformes" }); }
public static TransfertP2p AskConfirmationOfTransfertA2A(TransfertP2p tA2A, KoloAndroidEntities db, out string error) { error = ""; try { TransfertP2p t = db.TransfertP2p.FirstOrDefault(tP2P => tP2P.IdTransfertP2p == tA2A.IdTransfertP2p); t.TransfertStatusCode = tA2A.TransfertStatusCode; Tuple <List <KoloNotification>, List <CustomerBalanceHistory> > tuple = OperationHelper.MakeOperation <TransfertP2p>(t, db, out error); db.KoloNotifications.AddRange(tuple.Item1); db.CustomerBalanceHistories.AddRange(tuple.Item2); db.SaveChanges(); return(t); } catch (Exception ex) { error = ExceptionHelper.GetExceptionMessage(ex); } return(new TransfertP2p() { IdTransfertP2p = -30, TransfertStatusCode = error }); }
public static TransfertP2p SendTransfertA2A(TransfertP2p tA2A, KoloAndroidEntities db, out string error) { error = ""; if (TransfertVerification(tA2A)) { try { tA2A.TransfertDate = DateTime.Now; tA2A.TransfertStatusCode = KoloConstants.Operation.Status.RECEIVE_PENDING.ToString(); tA2A.Reference = OfficeHelper.GenerateUniqueId(); Tuple <List <KoloNotification>, List <CustomerBalanceHistory> > tuple = OperationHelper.MakeOperation <TransfertP2p>(tA2A, db, out error); db.KoloNotifications.AddRange(tuple.Item1); db.CustomerBalanceHistories.AddRange(tuple.Item2); db.TransfertP2p.Add(tA2A); db.SaveChanges(); return(tA2A); } catch (Exception e) { error = ExceptionHelper.GetExceptionMessage(e); } } return(null); }