Exemplo n.º 1
0
        public static void CombinaCompte(Compte compte)
        {
            // Get data from the bank
            List <RegistreSabadell> registresSabadell = ReadSabadellFile(compte.rutaExtractSabadell);

            // Merge - Per cada registre sabadell l'afegeix a la base de dades (Si no existeix)
            foreach (RegistreSabadell regSabadell in registresSabadell)
            {
                if (!Existeix(regSabadell, compte))
                {
                    var reg = new Moviment();
                    reg.Data     = regSabadell.Data;
                    reg.Concepte = regSabadell.Concepte;
                    reg.Import   = regSabadell.Import;
                    reg.Revisat  = false;

                    Dictionary <String, Int32> diccionari = compte.DonaCategoriesConcepte(reg.Concepte);
                    if (diccionari.Keys.Count == 1)
                    {
                        reg.Categoria = diccionari.Keys.First();
                    }

                    compte.moviments.Add(reg);
                }
            }
        }
Exemplo n.º 2
0
        private List <string> ValidateMoviment(Moviment obj)
        {
            var validationMsgs = new List <string>();

            if (obj.FundId == null || obj.FundId == Guid.Empty)
            {
                validationMsgs.Add("É necessário informar um fundo para aplicação/resgate");
            }
            if (string.IsNullOrWhiteSpace(obj.Cpf))
            {
                validationMsgs.Add("É necessário informar o CPF para aplicação/resgate");
            }
            if (obj.Date == DateTime.MinValue)
            {
                validationMsgs.Add("É necessário informar a data para aplicação/resgate");
            }
            if (obj.Amount <= default(decimal))
            {
                validationMsgs.Add("É necessário informar o valor para aplicação/resgate");
            }
            if (!string.IsNullOrWhiteSpace(obj.Cpf) && !Validators.CpfIsValid(obj.Cpf))
            {
                validationMsgs.Add("É necessário informar um CPF válido");
            }

            return(validationMsgs);
        }
Exemplo n.º 3
0
        private static void carregaDades(String fileAntic, string fileCalderilla)
        {
            Compte compte;

            compte           = new Compte();
            compte.moviments = new List <Moviment>();

            var parser = new TextFieldParser(fileAntic);

            parser.SetDelimiters("|");
            while (!parser.EndOfData)
            {
                var registre   = new Moviment();
                var currentRow = parser.ReadFields();
                {
                    //FECHA OPER  CONCEPTO FECHA VALOR IMPORTE SALDO REFERENCIA 1	REFERENCIA 2
                    registre.Data      = DateTime.ParseExact(currentRow[0], "dd/MM/yyyy", CultureInfo.InvariantCulture);
                    registre.Concepte  = currentRow[1];
                    registre.Import    = Convert.ToDecimal(currentRow[2], new CultureInfo("es-ES"));
                    registre.Categoria = currentRow[3];
                }
                compte.moviments.Add(registre);
            }

            // Serialitza
            string json = JsonConvert.SerializeObject(compte);

            System.IO.File.WriteAllText(fileCalderilla, json);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Validates and, if successful, saves a Moviment object.
        /// </summary>
        /// <param name="obj">Moviment object, representing a redemption or application moviment.</param>
        /// <returns></returns>
        public Response <Moviment> Save(Moviment obj)
        {
            Response <Moviment> response = new Response <Moviment>();

            try
            {
                var msgs = ValidateMoviment(obj);
                if (msgs.Count > 0)
                {
                    response.StatusCode = StatusCode.BadRequest;
                    response.Messages   = msgs;
                    return(response);
                }

                using (Uow)
                {
                    response.Entity = Repository.Save(obj);
                    int commit = Uow.Commit();
                }
            }
            catch (Exception ex)
            {
                response.ReponseException(ex);
            }
            return(response);
        }
Exemplo n.º 5
0
        //Panel dret
        private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (compte != null)
            {
                if (e.RowIndex < compte.moviments.Count)
                {
                    Moviment reg = compte.moviments[e.RowIndex];

                    //Info row
                    String str1 = "";
                    Dictionary <String, Int32> diccionariCategoriesConcepte = compte.DonaCategoriesConcepte(reg.Concepte);
                    foreach (var keyValue in diccionariCategoriesConcepte)
                    {
                        str1 = str1 + String.Format("{0} - {1}", keyValue.Key, keyValue.Value) + "\n";
                    }
                    label1.Text = reg.GetString() + "POSSIBLES CATEGORIES" + "\n" + str1;

                    //Llista categories
                    String str2 = "";
                    Dictionary <String, Int32> diccionariCategories = compte.DonaCategories();
                    foreach (var keyValue in diccionariCategories)
                    {
                        str2 = str2 + String.Format("{0} - {1}", keyValue.Key, keyValue.Value) + "\n";
                    }
                    label2.Text = "\n\nCATEGORIES:" + "\n\n" + str2;
                }
            }

            Int32 totalMoviments                 = compte.moviments.Count;
            Int32 totalMovimentsNoRevisats       = compte.moviments.Where(m => m.Revisat == false).Count();
            Int32 totalDeshabilitatsAmbCategoria = compte.moviments.Where(m => m.Categoria != null && m.Deshabilita == true).Count();

            label3.Text = "( " + totalMovimentsNoRevisats + " moviments no revisats de un total de " + totalMoviments +
                          ")         ( " + totalDeshabilitatsAmbCategoria + " moviments deshabilitats amb categoria )";
        }
Exemplo n.º 6
0
        private void button2_Click(object sender, EventArgs e)
        {
            Moviment mov = (Moviment)binding.AddNew();

            mov.Categoria   = categoriaTextBox.Text;
            mov.Comentari   = comentariTextBox.Text;
            mov.Concepte    = concepteTextBox.Text;
            mov.Data        = dataDateTimePicker.Value.Date;
            mov.Deshabilita = deshabilitaCheckBox.Checked;
            mov.Import      = decimal.Parse(importTextBox.Text);
            mov.Revisat     = revisatCheckBox.Checked;
            this.Close();
        }
Exemplo n.º 7
0
        public ActionResult Index(HttpPostedFileBase file)
        {
            if (file?.ContentLength > 0)
            {
                try {
                    List <Moviment> Lmoviment   = new List <Moviment>();
                    CultureInfo     cultureInfo = new CultureInfo("fr-FR");

                    using (StreamReader str = new StreamReader(file.InputStream))
                    {
                        string line;

                        while ((line = str.ReadLine()) != null)
                        {
                            string[] data = line.Split(',');
                            if (data[0] != "Date" && data[1] != "Price")
                            {
                                Moviment moviment = new Moviment
                                {
                                    Date  = DateTime.Parse(data[0], cultureInfo),
                                    Price = double.Parse(data[1]),
                                };
                                Lmoviment.Add(moviment);
                            }
                        }
                    }



                    foreach (var item in Lmoviment)
                    {
                        ctx.Moviments.Add(item);
                        ctx.SaveChanges();
                    }
                    ViewBag.SUCCESS = "Success";

                    return(View());
                }
                catch (Exception message)
                {
                    ViewBag.ERROR = "failed to import the file";
                    return(View());
                }
            }
            else
            {
                return(View());
            }
        }
Exemplo n.º 8
0
        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            // Pijama per mes
            if (compte != null)
            {
                if (e.RowIndex < compte.moviments.Count)
                {
                    Moviment reg = compte.moviments[e.RowIndex];

                    Dictionary <String, Int32> diccionari = compte.DonaCategoriesConcepte(reg.Concepte);
                    if (diccionari.Count == 1)
                    {
                        reg.Categoria = diccionari.Keys.First();
                    }
                }
            }
        }
Exemplo n.º 9
0
        //Elimina
        private void button4_Click(object sender, EventArgs e)
        {
            var selectedCells = this.dataGridView1.SelectedCells;

            if (selectedCells.Count == 1)
            {
                var      cell = selectedCells[0];
                Moviment reg  = compte.moviments[cell.RowIndex];

                DialogResult dialogResult = MessageBox.Show("Segur que vols eliminar aquest moviment?\n\n" + reg.GetString(), "Elimina moviment", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    compte.moviments.Remove(reg);
                    this.dataGridView1.Refresh();
                }
            }
        }
Exemplo n.º 10
0
 private void FixedUpdate()
 {
     playerGO = GameObject.FindWithTag("Player") ? GameObject.FindWithTag("Player").GetComponent <Moviment>() : null;
     if (playerGO == null)
     {
         return;
     }
     if (isDead())
     {
         if (playerGO.cant_move)
         {
             playerGO.jump();
             playerGO.gameObject.GetComponent <CapsuleCollider2D>().isTrigger = true;
             playerGO.gameObject.tag = "Dead";
             CoreController.Instance().gameController.justDied();
             playerGO.cant_move = false;
         }
     }
 }
Exemplo n.º 11
0
        public void ShouldValidateFields()
        {
            var uowMock        = new Mock <IUnitOfWork>();
            var repositoryMock = new Mock <IMovimentRepository>();

            var obj = new Moviment();

            repositoryMock.Setup(i => i.Save(obj)).Verifiable();

            var business = new MovimentBusiness(uowMock.Object, repositoryMock.Object);
            var response = business.Save(obj);

            Assert.True(StatusCode.BadRequest == response.StatusCode &&
                        response.Messages.Any(i => i == "É necessário informar um fundo para aplicação/resgate") &&
                        response.Messages.Any(i => i == "É necessário informar o CPF para aplicação/resgate") &&
                        response.Messages.Any(i => i == "É necessário informar a data para aplicação/resgate") &&
                        response.Messages.Any(i => i == "É necessário informar o valor para aplicação/resgate"));

            repositoryMock.Verify(i => i.Save(obj), Times.Never);
        }
Exemplo n.º 12
0
        public void ShouldReturnResponse()
        {
            var uowMock        = new Mock <IUnitOfWork>();
            var repositoryMock = new Mock <IMovimentRepository>();

            var obj = new Moviment()
            {
                Amount       = 50,
                Cpf          = "59732481005",
                Date         = DateTime.Today,
                FundId       = Guid.NewGuid(),
                MovimentType = MovimentType.Application
            };

            repositoryMock.Setup(i => i.Save(obj)).Verifiable();

            var business = new MovimentBusiness(uowMock.Object, repositoryMock.Object);
            var response = business.Save(obj);

            Assert.True(200 == (int)response.StatusCode &&
                        response.Messages.Count == 0);
        }
Exemplo n.º 13
0
        public void ShouldCallRepository()
        {
            var uowMock        = new Mock <IUnitOfWork>();
            var repositoryMock = new Mock <IMovimentRepository>();

            var obj = new Moviment()
            {
                Amount       = 50,
                Cpf          = "59732481005",
                Date         = DateTime.Today,
                FundId       = Guid.NewGuid(),
                MovimentType = MovimentType.Application
            };

            repositoryMock.Setup(i => i.Save(obj)).Verifiable();

            var business = new MovimentBusiness(uowMock.Object, repositoryMock.Object);

            business.Save(obj);

            repositoryMock.Verify(i => i.Save(obj), Times.Once);
        }
Exemplo n.º 14
0
        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            //Imports Red or Green
            Object obj = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;

            if (obj is Decimal)
            {
                Decimal dec = (Decimal)obj;
                if (dec < 0)
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style = new DataGridViewCellStyle {
                        ForeColor = Color.Red
                    };
                }
                else
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style = new DataGridViewCellStyle {
                        ForeColor = Color.Green
                    };
                }
            }

            // Pijama per mes
            if (compte != null)
            {
                if (e.RowIndex < compte.moviments.Count)
                {
                    Moviment reg = compte.moviments[e.RowIndex];
                    if (reg.Data.Month % 2 == 1)
                    {
                        e.CellStyle.BackColor = Color.FromArgb(184, 204, 228);
                    }
                    else
                    {
                        e.CellStyle.BackColor = Color.FromArgb(220, 230, 241);
                    }
                }
            }
        }
Exemplo n.º 15
0
        public void ShouldValidateCpf()
        {
            var uowMock        = new Mock <IUnitOfWork>();
            var repositoryMock = new Mock <IMovimentRepository>();

            var obj = new Moviment()
            {
                Amount       = 50,
                Cpf          = "59712481005",
                Date         = DateTime.Today,
                FundId       = Guid.NewGuid(),
                MovimentType = MovimentType.Redemption
            };

            repositoryMock.Setup(i => i.Save(obj)).Verifiable();

            var business = new MovimentBusiness(uowMock.Object, repositoryMock.Object);
            var response = business.Save(obj);

            Assert.True(StatusCode.BadRequest == response.StatusCode &&
                        response.Messages.Any(i => i == "É necessário informar um CPF válido"));

            repositoryMock.Verify(i => i.Save(obj), Times.Never);
        }
Exemplo n.º 16
0
 void Awake()
 {
     instance = this;
 }