Exemple #1
0
        public ActionResult AddAccount(ContModel cont)
        {
            if (ModelState.IsValid)
            {
                var newAccount = new ContDTO()
                {
                    Id             = Guid.NewGuid(),
                    AccountNumber  = cont.AccountNumber,
                    Currency       = cont.Currency,
                    MoneyDeposited = cont.MoneyDeposited,
                    User           = Session["Username"].ToString()
                };
                _writeRepo.adaugaCont(newAccount, Session["Username"].ToString());
                var userAccounts = _readRepo.CitesteConturi(Session["Username"].ToString());

                ModelState.Clear();
                if (userAccounts != null)
                {
                    List <ContModel> contModelList = new List <ContModel>();
                    foreach (ContDTO UserCont in userAccounts)
                    {
                        contModelList.Add(GenereazaContModelView(UserCont));
                    }
                    return(View("ShowAccounts", contModelList));
                }
            }
            return(View());
        }
Exemple #2
0
        public static String Proceseaza(double sum, ContDTO source)
        {
            AG_ROOT_Cont sursa  = new AG_ROOT_Cont(new Modele.Generic.IBAN(source.iban), new Client(new PlainText(source.client), new PlainText("nu conteaza")), new Suma(source.Sold));
            AG_ROOT_Cont result = sursa.DepuneBani(new Suma(sum));


            //Pregateste rezultatul tranzactiei ca raspuns inapoi catre MVC

            //obtine tranzactia sursei
            TranzactieDTO tranzDTO = new TranzactieDTO();

            tranzDTO.partenerTranzactie = result.IstoricTranzactii.getTranzactii.First().PartenerTranzactie.getIBAN;
            tranzDTO.suma = result.IstoricTranzactii.getTranzactii.First().Suma.getSuma;
            tranzDTO.data = DateTime.Today.ToString();
            if (result.IstoricTranzactii.getTranzactii.First().Tip.Equals(TipTranzactie.Depunere))
            {
                tranzDTO.tipTranz = "depunere";
            }

            //obtine datele contului modificat
            ContDTO updatedAccount = new ContDTO();

            updatedAccount.client = result.DateClient.Nume.Text;
            updatedAccount.iban   = result.IBAN.getIBAN;
            updatedAccount.Sold   = result.Sold.getSuma;
            return(new SerializedResultDTO(updatedAccount, tranzDTO).Serialize());
        }
Exemple #3
0
        public void ActualizareContInLista(ContDTO cont, double soldNou)
        {
            var lista       = IncarcaListaDeConturi(cont.iban);
            var contInLista = lista.Where(m => m.iban == cont.iban).First();

            contInLista.Sold = soldNou;
            SalvareListaConturi(lista);
        }
Exemple #4
0
 private static DateCont GenereazaModelView(ContDTO c)
 {
     return(new DateCont()
     {
         iban = c.iban,
         client = c.client,
         Sold = c.Sold
     });
 }
Exemple #5
0
 public ActionResult Transfera(Model_Index model)
 {
     if (!String.IsNullOrEmpty(model.IBANdest) &&
         model.SumaTransf != 0)
     {
         //toate datele au fost completate
         ContDTO cont = _readRepo.CautaCont(model.IBAN);
         if (cont != null)
         {
             //iban-ul userului e corect
             ContDTO contDest = _readRepo.CautaCont(model.IBANdest);
             if (contDest != null)
             {
                 //iban-ul destinatie e corect
                 double        sum      = Convert.ToDouble(model.SumaTransf.ToString());
                 TranzactieDTO tranzDTO = new TranzactieDTO()
                 {
                     data = DateTime.Now.ToString(),
                     partenerTranzactie = model.IBANdest,
                     suma     = sum,
                     tipTranz = "transfer"
                 };
                 //Tranzactie t = _writeRepo.AdaugaTranzactie(tranzDTO, model.IBAN);
                 bool res = EfectueazaTranzactie(model.SumaTransf, cont, contDest);
                 if (res == true)
                 {
                     return(View("Confirmare", GenereazaModelView(tranzDTO)));
                 }
                 else
                 {
                     return(View("Esec", GenereazaModelView("Tranzactia nu se poate efectua")));
                 }
             }
             else
             {
                 //iban-ul destinatie nu exista
                 return(View("Esec", GenereazaModelView("IBAN-ul destinatie nu exista")));
             }
         }
         else
         {
             //iban-ul userului nu exista
             return(View("Esec", GenereazaModelView("IBAN-ul dumneavoastra nu exista")));
         }
     }
     else
     {
         if (model.SumaTransf == 0)
         {
             return(View("Esec", GenereazaModelView("Nu ati introdus suma")));
         }
         else
         {
             return(View("Esec", GenereazaModelView("Nu ati introdus IBAN-ul destinatarului")));
         }
     }
 }
Exemple #6
0
        private void SalvareContInLista(ContDTO cont, string username)
        {
            List <Client> allClients = new List <Client>();

            allClients = IncarcaListaDeClienti();

            var thisClient = allClients.Find(x => x.Username == username);

            thisClient.adaugaCont(cont);
            SalvareClientInListaClienti(allClients);
        }
Exemple #7
0
 private static ContModel GenereazaContModelView(ContDTO cont)
 {
     return(new ContModel()
     {
         Id = cont.Id,
         AccountNumber = cont.AccountNumber,
         Currency = cont.Currency,
         MoneyDeposited = cont.MoneyDeposited,
         User = cont.User,
         myAction = cont.ActionList
     });
 }
Exemple #8
0
 private void adaugaCont(ContDTO cont)
 {
     if (cont != null)
     {
         Id             = cont.Id;
         AccountNumber  = cont.AccountNumber;
         Currency       = cont.Currency;
         MoneyDeposited = cont.MoneyDeposited;
         User           = cont.User;
         ActionList     = new List <Action>();
     }
 }
Exemple #9
0
        //depunere
        public bool EfectueazaTranzactie(double sum, ContDTO source)
        {
            //compune o comanda si serializeaz-o
            String serializedCommand = new SerializedCommandDTO(sum, source).Serialize();

            //trimite comanda pe coada de comenzi. Procesatorul de comenzi va pune un rezultatt pe coada de rezultate
            CmdSender.Send(serializedCommand);
            //cere rezultatul
            SerializedResultDTO res = ResultReceiver.Receive(); //astepta raspunsul de pe coada de raspunsuri

            //modifica fisierele conform rezultatului comenzii
            _writeRepo.AdaugaTranzactie(res.tranzactii[0], res.conturi[0].iban);
            _writeRepo.ActualizareContInLista(source, res.conturi[0].Sold);
            return(true);
        }
Exemple #10
0
        public static String Proceseaza(double sum, ContDTO source, ContDTO destination)
        {
            AG_ROOT_Cont sursa   = new AG_ROOT_Cont(new Modele.Generic.IBAN(source.iban), new Client(new PlainText(source.client), new PlainText("nu conteaza")), new Suma(source.Sold));
            AG_ROOT_Cont dest    = new AG_ROOT_Cont(new Modele.Generic.IBAN(destination.iban), new Client(new PlainText(destination.client), new PlainText("nu conteaza")), new Suma(destination.Sold));
            AG_ROOT_Cont vehicle = new AG_ROOT_Cont();
            //cere modelului sa efectueze tranzactia
            List <AG_ROOT_Cont> result = vehicle.TransferBaniIntreDouaConturi(new Suma(sum), sursa, dest);



            //Pregateste rezultatul tranzactiei ca raspuns inapoi catre MVC

            //obtine tranzactia efectuata de sursa
            TranzactieDTO tranzDTOScr = new TranzactieDTO();

            tranzDTOScr.partenerTranzactie = result.First().IstoricTranzactii.getTranzactii.First().PartenerTranzactie.getIBAN;
            tranzDTOScr.suma = result.First().IstoricTranzactii.getTranzactii.First().Suma.getSuma;
            tranzDTOScr.data = DateTime.Today.ToString();
            if (result.First().IstoricTranzactii.getTranzactii.First().Tip.Equals(TipTranzactie.Transfer))
            {
                tranzDTOScr.tipTranz = "transfer";
            }

            //obtine tranzactia efectuata la destinatar
            TranzactieDTO tranzDTODest = new TranzactieDTO();

            tranzDTODest.partenerTranzactie = result[1].IstoricTranzactii.getTranzactii.First().PartenerTranzactie.getIBAN;
            tranzDTODest.suma = result[1].IstoricTranzactii.getTranzactii.First().Suma.getSuma;
            tranzDTODest.data = DateTime.Today.ToString();
            if (result[1].IstoricTranzactii.getTranzactii.First().Tip == TipTranzactie.Transfer)
            {
                tranzDTODest.tipTranz = "transfer";
            }

            //obtine datele conturilor modifcate
            ContDTO updatedAccountSrc = new ContDTO();

            updatedAccountSrc.client = result[0].DateClient.Nume.Text;
            updatedAccountSrc.iban   = result[0].IBAN.getIBAN;
            updatedAccountSrc.Sold   = result[0].Sold.getSuma;

            ContDTO updatedAccountDest = new ContDTO();

            updatedAccountDest.client = result[1].DateClient.Nume.Text;
            updatedAccountDest.iban   = result[1].IBAN.getIBAN;
            updatedAccountDest.Sold   = result[1].Sold.getSuma;
            return(new SerializedResultDTO(updatedAccountSrc, updatedAccountDest, tranzDTOScr, tranzDTODest).Serialize());
        }
Exemple #11
0
        public IEnumerable <ContDTO> ObtineConturi()
        {
            List <ContDTO> toateConturile = new List <ContDTO>();

            if (ExistaFisier("account.json"))
            {
                //toateConturile = JsonConvert.DeserializeObject<List<ContDTO>>(CitesteContinutFisier("account.json"));
                toateConturile = JsonConvert.DeserializeObject <List <ContDTO> >(CitesteContinutFisier("account.json"));
            }
            else
            {
                ContDTO c = new ContDTO();
                toateConturile.Add(c); //adaugat !!
            }
            return(toateConturile.AsEnumerable());
        }
Exemple #12
0
        public ContDTO GasesteCont(string iban)
        {
            var cont = IncarcaListaDeConturi(iban)
                       .Where(e => e.iban == iban);

            if (cont == null)
            {
                List <ContDTO> conturi = new List <ContDTO>();
                ContDTO        c       = new ContDTO();
                conturi.Add(c);
                var ret = conturi.First();
                return(ret);
            }
            else
            {
                ContDTO gasit = cont.First();
                return(gasit);
            }
        }
Exemple #13
0
        public ActionResult Vizualizeaza(Model_Index model)
        {
            ContDTO cont = _readRepo.CautaCont(model.IBAN);

            if (cont == null)
            {
                ContDTO date = new ContDTO()
                {
                    iban   = model.IBAN,
                    client = "Nu exista un client cu acest IBAN",
                    Sold   = 0
                };
                return(View("Vizualizare", GenereazaModelView(date)));
            }
            else
            {
            }

            return(View("Vizualizare", GenereazaModelView(cont)));
        }
Exemple #14
0
 public ActionResult Depunere(Model_Index model)
 {
     if (model.SumaDep != 0)
     {
         //toate datele au fost completate
         ContDTO cont = _readRepo.CautaCont(model.IBAN);
         if (cont != null)
         {
             double        sum      = Convert.ToDouble(model.SumaDep.ToString());
             TranzactieDTO tranzDTO = new TranzactieDTO()
             {
                 data = DateTime.Now.ToString(),
                 partenerTranzactie = model.IBAN,//depune catre el insusi
                 suma     = sum,
                 tipTranz = "depunere"
             };
             //return View();
             //_writeRepo.AdaugaTranzactie(tranzDTO, model.IBAN);
             bool res = EfectueazaTranzactie(model.SumaDep, cont);
             if (res == true)
             {
                 return(View("Confirmare", GenereazaModelView(tranzDTO)));
             }
             else
             {
                 return(View("Esec", GenereazaModelView("Tranzactia nu s-a putut efectua")));
             }
         }
         else
         {
             //iban-ul userului nu exista
             return(View("Esec", GenereazaModelView("IBAN-ul dumneavoastra nu exista")));
         }
     }
     else
     {
         return(View("Esec", GenereazaModelView("Nu ati introdus suma")));
     }
 }
Exemple #15
0
 public Cont(ContDTO cont)
 {
     adaugaCont(cont);
 }
Exemple #16
0
        public void adaugaCont(ContDTO cont)
        {
            Cont account = new Cont(cont);

            myAccounts.Add(account);
        }
        public static void Receive()
        {
            String serializedResult = "";
            var    factory          = new ConnectionFactory()
            {
                HostName = "localhost"
            };

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel()) //deschide un canal de comunicare
                {
                    //creare coada, daca nu exist a deja
                    channel.QueueDeclare(queue: "command", //numele cozii, acelasi cu coada care pe care se transmite in sender
                                         durable: false,
                                         exclusive: false,
                                         autoDelete: false,
                                         arguments: null);

                    //creare obiect consumer care va primi mesajul de pe canalul de comunicare
                    var    consumer = new EventingBasicConsumer(channel);
                    String message  = ""; //declare string in care se va prelua mesajul
                                          // dupa ca va fi decodat

                    //ce sa se intample cand s-a primit mesajul
                    consumer.Received += (model, ea) =>
                    {
                        var body = ea.Body;
                        message = Encoding.UTF8.GetString(body);
                        SerializedCommandDTO cmd = JsonConvert.DeserializeObject <SerializedCommandDTO>(message);
                        if (cmd.TipTranzactie.Equals("transfera"))
                        {
                            //preia datele din comanda (deserializate)
                            double  sum         = cmd.suma;
                            ContDTO source      = cmd.conturi[0];
                            ContDTO destination = cmd.conturi[1];

                            //proceseaza comanda si obtine prin asta un raspuns serializat (rezultatul)
                            String res = ProcesatorComanda.Proceseaza(sum, source, destination);

                            serializedResult = res;
                        }
                        else if (cmd.TipTranzactie.Equals("depunere"))
                        {
                            double  sum    = cmd.suma;
                            ContDTO source = cmd.conturi[0];

                            String res = ProcesatorComanda.Proceseaza(sum, source);

                            serializedResult = res;
                        }
                    };

                    //Asteapta sa se primeasca mesajul
                    channel.BasicConsume(queue: "command",
                                         autoAck: true,
                                         consumer: consumer);

                    do
                    {
                        //asteapta sa se proceseze comanda apoi trimite raspunsul
                        if (!serializedResult.Equals(""))
                        {
                            //trimite rezultatul pe coada de raspuns
                            ResultSender.Send(serializedResult);
                        }
                    } while (serializedResult.Equals(""));
                }
        }
Exemple #18
0
        public void adaugaCont(ContDTO account, string username)
        {
            var cont = new Cont(account);

            SalvareContInLista(account, username);
        }