Ejemplo n.º 1
0
        public async Task <bool> SaveChanges()
        {
            FillCities(ref _supplierValue);

            PROVEE1 provee1 = _supplierMapper.Map <SupplierPoco, PROVEE1>(_supplierValue);
            PROVEE2 provee2 = _supplierMapper.Map <SupplierPoco, PROVEE2>(_supplierValue);

            bool retValue = false;

            try
            {
                // TODO: Reverse.
                using (IDbConnection connection = _sqlExecutor.OpenNewDbConnection())
                {
                    using (TransactionScope transactionScope =
                               new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        string value = string.Format(TipoProveSelect, provee1.NUM_PROVEE);
                        IEnumerable <TIPOPROVE> prove = await connection.QueryAsync <TIPOPROVE>(value).ConfigureAwait(false);

                        var tipoProve = prove.FirstOrDefault <TIPOPROVE>();

                        // here we shall already have the correct change in the VehiclePoco. It shall already validated.
                        // now we have to add the new connection.
                        try
                        {
                            retValue = await connection.UpdateAsync(provee1).ConfigureAwait(false);

                            retValue = retValue && await connection.UpdateAsync(provee2).ConfigureAwait(false);

                            retValue = retValue && await SaveContacts(connection).ConfigureAwait(false);

                            retValue = await SaveBranches(connection).ConfigureAwait(false) && retValue;

                            transactionScope.Complete();
                        }
                        catch (TransactionException ex)
                        {
                            transactionScope.Dispose();
                            string message = "Transaction Scope Exception in Vehicle Update. Reason: " + ex.Message;
                            logger.Error(message);
                            DataLayerExecutionException dataLayer = new DataLayerExecutionException(message);
                            throw dataLayer;
                        }
                        catch (System.Exception other)
                        {
                            logger.Error(other);
                            return(retValue);
                        }
                    }
                }
            }

            catch (System.Exception e)
            {
                logger.Error(e);
            }

            return(retValue);
        }
Ejemplo n.º 2
0
        public async Task <bool> DeleteAsyncData()
        {
            bool value = false;
            // in deleting things there is no need to remap every field.
            var code = _supplierValue.NUM_PROVEE;
            // theeris no need of this is slow.

            PROVEE1 proveedor1 = new PROVEE1 {
                NUM_PROVEE = code
            };
            PROVEE2 proveedor2 = new PROVEE2 {
                NUM_PROVEE = code
            };



            using (IDbConnection connection = _sqlExecutor.OpenNewDbConnection())
            {
                if (connection == null)
                {
                    return(false);
                }
                using (TransactionScope transactionScope =
                           new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    try
                    {
                        value = await connection.DeleteAsync(proveedor1);

                        value = value && await connection.DeleteAsync(proveedor2);

                        // delete branches
                        var queryString = string.Format(DeleteDelegaciones, proveedor1.NUM_PROVEE);
                        var tmpValue    = await connection.ExecuteAsync(queryString) > 0;

                        value       = value && tmpValue;
                        queryString = string.Format(DeleteContactos, proveedor1.NUM_PROVEE);
                        value       = await connection.ExecuteAsync(queryString) > 0;

                        // delete
                        transactionScope.Complete();
                    }
                    catch (System.Exception e)
                    {
                        transactionScope.Dispose();
                        throw new DataLayerException(e.Message, e);
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
            }
            return(value);
        }
Ejemplo n.º 3
0
        public async Task <bool> Save()
        {
            // set reference to city dto.
            FillCities(ref _supplierValue);

            PROVEE1 provee1 = _supplierMapper.Map <SupplierPoco, PROVEE1>(_supplierValue);
            PROVEE2 provee2 = _supplierMapper.Map <SupplierPoco, PROVEE2>(_supplierValue);

            provee1.NUM_PROVEE = provee2.NUM_PROVEE;
            logger.Debug("Saving supplier " + provee2.NUM_PROVEE);

            bool retValue = false;

            using (IDbConnection connection = _sqlExecutor.OpenNewDbConnection())
            {
                using (TransactionScope transactionScope =
                           new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    try
                    {
                        int ret = await connection.InsertAsync(provee1);

                        retValue = ret == 0;
                        ret      = await connection.InsertAsync(provee2);

                        retValue = retValue && await SaveBranches(connection);

                        retValue = retValue && await SaveContacts(connection);

                        transactionScope.Complete();
                        retValue = retValue && (ret == 0);
                    }
                    catch (TransactionException ex)
                    {
                        string message = "Transaction Scope Exception in Supplier Insertion. Reason: " + ex.Message;
                        DataLayerExecutionException dataLayer = new DataLayerExecutionException(message);
                        logger.Error(ex, "Exception while saving a supplier. Transaction Scope saving.");
                        throw dataLayer;
                    }
                    catch (System.Exception other)
                    {
                        string message = "Error in a Supplier. Reason: " + other.Message;
                        logger.Error(other, "Exception while saving a supplier..");
                        DataLayerExecutionException dataLayer = new DataLayerExecutionException(message);
                        throw dataLayer;
                    }
                }
            }
            return(retValue);
        }
Ejemplo n.º 4
0
        /// <inheritdoc />
        /// <summary>
        ///  This function simply generates a new identifier.
        /// </summary>
        /// <returns></returns>
        public string GetNewId()
        {
            var id     = string.Empty;
            var provee = new PROVEE1();

            using (var dbConnection = SqlExecutor.OpenNewDbConnection())
            {
                if (dbConnection != null)
                {
                    id = dbConnection.UniqueId(provee);
                }
            }
            return(id);
        }
Ejemplo n.º 5
0
        public void Should_Enforce_ChangeRuleBehaviour()
        {
            var dataObject = new PROVEE1();

            dataObject.CP   = "082788";
            dataObject.PROV = "39";
            var changeRule = new ChangeRuleBehavior {
                DataObject = dataObject
            };
            //changeRule.Execute();
            var result = changeRule.DataObject as PROVEE1;

            Assert.AreEqual("08", result.PROV);
        }
Ejemplo n.º 6
0
        public async Task <bool> DeleteAsyncData()
        {
            bool    value      = false;
            PROVEE1 proveedor1 = _supplierMapper.Map <SupplierPoco, PROVEE1>(_supplierValue);
            PROVEE2 proveedor2 = _supplierMapper.Map <SupplierPoco, PROVEE2>(_supplierValue);

            using (IDbConnection connection = _sqlExecutor.OpenNewDbConnection())
            {
                using (TransactionScope transactionScope =
                           new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    try
                    {
                        value = await connection.DeleteAsync(proveedor1);

                        value = value && await connection.DeleteAsync(proveedor2);

                        // delete branches
                        var queryString = string.Format(DeleteDelegaciones, proveedor1.NUM_PROVEE);
                        var tmpValue    = await connection.ExecuteAsync(queryString) > 0;

                        value       = value && tmpValue;
                        queryString = string.Format(DeleteContactos, proveedor1.NUM_PROVEE);
                        value       = await connection.ExecuteAsync(queryString) > 0;

                        // delete
                        transactionScope.Complete();
                    }
                    catch (System.Exception e)
                    {
                        transactionScope.Dispose();
                        throw new DataLayerException(e.Message, e);
                    }
                    finally
                    {
                        connection.Close();
                    }
                }
            }
            return(value);
        }