Exemple #1
0
 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"
     });
 }
Exemple #2
0
        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 ?? "";
        }
Exemple #3
0
 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));
 }
Exemple #4
0
 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);
 }
Exemple #5
0
 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"
     });
 }
Exemple #6
0
 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
     });
 }
Exemple #7
0
 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);
 }