/// <summary>
        /// Actualizacion base de datos con los cambios de la asignación de máquinas a usuarios
        /// </summary>
        /// <param name="arrayofvalues"></param>
        public void SaveChangeMachineAssign(string[] arrayofvalues)
        {
            int userId    = 0;
            int machineID = 0;

            for (int i = 3; i < arrayofvalues.Length; i++)
            {
                switch (i % 3)
                {
                //user id
                case 0:
                    machineID = Convert.ToInt32(arrayofvalues[i]);
                    break;

                //direccion de maquinaria, no se cambia
                case 1:
                    break;

                //nombre producto
                case 2:
                    userId = Convert.ToInt32(arrayofvalues[i]);

                    //una vez recorrida la primera la primera fila agregamos el cambio en el contexto sobre la máquina
                    Vending_Machine vending = context.Vending_Machine.Find(machineID);
                    vending.UserAdministrator = userId;

                    context.Vending_Machine.Update(vending);

                    //confirmar cambios en base de datos
                    context.SaveChanges();
                    break;
                }
            }
        }
Example #2
0
        public void DepositWrongCoinTest()
        {
            //Arrange
            Vending_Machine vM   = new Vending_Machine(); //instance of the class
            int             coin = 6;

            //Act
            bool result = vM.DepositCoin(coin);

            //Assert
            Assert.False(result);
        }
Example #3
0
        public void DepositAnAmountToPot()
        {
            //Arrange
            Vending_Machine vM       = new Vending_Machine();
            int             expected = 5;

            //Act

            vM.DepositACoin(5);

            //Assert
            Assert.Equal(expected, vM.MoneyPoolPot);
        }
        /// <summary>
        /// Guardado de los datos de las máquinas en la base de datos
        /// </summary>
        /// <param name="vendingMachine"></param>
        /// <param name="operationType"></param>
        public void ChangeVendingContext(Object vendingMachine, OperationType operationType)
        {
            Vending_Machine vending_Machine = vendingMachine as Vending_Machine;

            if (vendingMachine != null)
            {
                if (vending_Machine.Id_Machine >= 0 &&
                    vending_Machine.Machine_Model != null &&
                    vending_Machine.City != null &&
                    vending_Machine.Address != null &&
                    vending_Machine.Poblation != null)
                {
                    var vendingMachineOperation = context.Vending_Machine.Find(vending_Machine.Id_Machine);

                    if (operationType == OperationType.Update)
                    {
                        vendingMachineOperation.Address       = vending_Machine.Address;
                        vendingMachineOperation.City          = vending_Machine.City;
                        vendingMachineOperation.Machine_Model = vending_Machine.Machine_Model;
                        vendingMachineOperation.Poblation     = vending_Machine.Poblation;

                        context.Vending_Machine.Update(vendingMachineOperation);
                    }


                    if (operationType == OperationType.Delete)
                    {
                        //eliminamos todos los datos de las tablas que tengan relaciones con clave foranea
                        try
                        {
                            var changeElementToDelete = context.Change.Find(context.Change.Where(x => x.Id_Machine == vending_Machine.Id_Machine)
                                                                            .FirstOrDefault().Id_Change); //Para eliminar vending machine hay que eliminar antes change

                            foreach (var item in context.Slots.ToList().Where(x => x.Id_Machine == vending_Machine.Id_Machine))
                            {
                                context.Slots.Remove(item);
                            }

                            context.Change.Remove(changeElementToDelete);
                        }
                        catch { }
                        finally
                        {
                            context.Vending_Machine.Remove(vendingMachineOperation);
                        }
                    }
                    context.SaveChanges();
                }
            }
        }
Example #5
0
        public void PurchaseItemTest()
        {
            //Arrange
            Vending_Machine vM          = new Vending_Machine(); //instance of the class
            string          productCode = "A1";
            string          enteredCode = "A1";
            bool            expected    = true;

            //Act
            var result = vM.PurchaseItem(productCode, enteredCode);

            //Assert
            Assert.Equal(expected, result);
        }
Example #6
0
        public void DepositCoinTest()
        {
            //Arrange
            Vending_Machine vM   = new Vending_Machine(); //instance of the class
            int             coin = 5;

            //Act
            bool result = vM.DepositCoin(coin);

            vM.DepositCoin(5); //Add 5 to pot

            //Assert
            Assert.True(result);
        }
        /// <summary>
        /// Actualizacion base de datos con los cambios de la tabla de las maquinas disponibles
        /// </summary>
        /// <param name="arrayofvalues"></param>
        public void SaveChangeData(string[] arrayofvalues)
        {
            int    id        = 0;
            string modelo    = string.Empty;
            string ciudad    = string.Empty;
            string direccion = string.Empty;
            string poblacion = string.Empty;

            for (int i = 6; i < arrayofvalues.Length; i++)
            {
                switch (i % 6)
                {
                //Ide de la máquina
                case 0:
                    id = Convert.ToInt32(arrayofvalues[i]);
                    break;

                //Modelo Máquina
                case 1:
                    modelo = arrayofvalues[i];
                    break;

                //Ciudad
                case 2:
                    ciudad = arrayofvalues[i];
                    break;

                //Poblacion
                case 3:
                    poblacion = arrayofvalues[i];
                    break;

                //Direccion
                case 4:
                    direccion = arrayofvalues[i];
                    break;

                //proceso de eliminado y modificado
                case 5:

                    //una vez recorrida la primera la primera fila agregamos el cambio en el contexto
                    Vending_Machine vending_Machine = context.Vending_Machine.Find(id);

                    vending_Machine.Machine_Model = modelo;
                    vending_Machine.City          = ciudad;
                    vending_Machine.Address       = direccion;
                    vending_Machine.Poblation     = poblacion;

                    if (Convert.ToInt32(arrayofvalues[0]) == -1 && arrayofvalues[1] == "eliminar" &&
                        arrayofvalues[2] == "eliminar" && arrayofvalues[3] == "eliminar" && arrayofvalues[4] == "eliminar")
                    {
                        ChangeVendingContext(vending_Machine, OperationType.Delete);
                    }
                    else
                    {
                        ChangeVendingContext(vending_Machine, OperationType.Update);
                    }

                    break;
                }
            }
        }