Esempio n. 1
0
        private COMISIO ConvertBack(ComisioDto comisio)
        {
            var c = new COMISIO();

            if (_mapper != null)
            {
                c = _mapper.Map <ComisioDto, COMISIO>(comisio);
            }
            return(c);
        }
Esempio n. 2
0
        private ComisioDto Convert(COMISIO comisio)
        {
            var dto = new ComisioDto();

            if (_mapper != null)
            {
                dto = _mapper.Map <COMISIO, ComisioDto>(comisio);
            }
            return(dto);
        }
Esempio n. 3
0
 public CommissionAgent()
 {
     _currentComisio      = new COMISIO();
     _commissionAgents    = new List <COMISIO>();
     _nacioPer            = new List <Country>();
     _tipoComis           = new List <TIPOCOMI>();
     _provinces           = new List <PROVINCIA>();
     _commissionAgentType = new CommissionAgentTypeData();
     _mapper = MapperField.GetMapper();
 }
Esempio n. 4
0
        private ComisioViewObject Convert(COMISIO comisio)
        {
            var dto = new ComisioViewObject();

            if (_mapper != null)
            {
                dto = _mapper.Map <COMISIO, ComisioViewObject>(comisio);
            }
            return(dto);
        }
Esempio n. 5
0
 public CommissionAgent(ISqlExecutor executor, string commissionId)
 {
     _executor                = executor;
     _currentComisio          = new COMISIO();
     _currentComisio.NUM_COMI = commissionId;
     _commissionAgents        = new List <COMISIO>();
     _nacioPer                = new List <Country>();
     _tipoComis               = new List <TIPOCOMI>();
     _provinces               = new List <PROVINCIA>();
     _commissionAgentType     = new CommissionAgentTypeData();
     _mapper = MapperField.GetMapper();
 }
Esempio n. 6
0
        private ICommissionAgentTypeData GetCommissionAgentType(COMISIO data, IEnumerable <TIPOCOMI> tipocomis)
        {
            ICommissionAgentTypeData dataCommission = new CommissionAgentTypeData();

            dataCommission.Code = data.TIPOCOMI;
            // there is a na errro we return a null AgentTypeData
            if (!tipocomis.Any())

            {
                return(new NullCommissionAgentTypeData());
            }
            var name = from countryvalue in tipocomis
                       where countryvalue.NUM_TICOMI == data.TIPOCOMI
                       select countryvalue.NOMBRE;

            dataCommission.Name = name.Distinct().First();
            return(dataCommission);
        }
        /// <summary>
        /// This is the generation of an unique identifier.
        /// </summary>
        /// <returns>Identifier of the commission agents</returns>
        public string GetNewId()
        {
            string id = string.Empty;

            using (IDbConnection conn = _sqlExecutor.OpenNewDbConnection())
            {
                try
                {
                    COMISIO comisio = new COMISIO();
                    id = conn.UniqueId <COMISIO>(comisio);
                }
                catch (System.Exception ex)
                {
                    throw new DataLayerException("CommissionAgentNewId", ex);
                }
                finally
                {
                    conn.Close();
                }
            }
            return(id);
        }
Esempio n. 8
0
        /// <summary>
        ///  Load single value. It loads a commission agent.
        /// </summary>
        /// <param name="commissionDictionary">Dictionary of the selected fields</param>
        /// <param name="commissionId"></param>
        /// <returns></returns>
        public async Task <bool> LoadValue(IDictionary <string, string> commissionDictionary, string commissionId)
        {
            // in the commission query already i have a commission id.
            bool preCondition = commissionDictionary.ContainsKey(Comisio);

            Contract.Requires(preCondition, "The dictionary used is not correct");
            Contract.Requires(!string.IsNullOrEmpty(commissionId), "The commission is is not ok");
            logger.Info("Load Agent for ID" + commissionId);

            string commisionQueryFields = commissionDictionary[Comisio];
            string tipoComiFields       = GetFields(Tipocomi, commissionDictionary, DefaultTicomiFields);
            string branchesField        = GetFields(Branches, commissionDictionary, DefaultDelegation);
            // this collect all kind of objects as result of the query.
            bool isOpen = false;

            if (_dbConnection == null)
            {
                logger.Debug("Opening Connection to DB");
                isOpen = _executor.Open();
            }
            // now between the two

            // TODO: all this is pretty slow. Just use query store and load it.
            IQueryStore store = _queryStoreFactory.GetQueryStore();

            if (isOpen)
            {
                try
                {
                    _dbConnection = _executor.Connection;
                    string commisionQuery = string.Format(_queryComi, commisionQueryFields, commissionId);
                    logger.Debug("Executing query " + commisionQuery);

                    _commissionAgents = await _dbConnection.QueryAsync <COMISIO>(commisionQuery);

                    _currentComisio = _commissionAgents.FirstOrDefault();

                    if (_currentComisio != null)
                    {
                        if (!string.IsNullOrEmpty(_currentComisio.PROVINCIA))
                        {
                            string provinceQuery = string.Format(_queryProvincia, _currentComisio.PROVINCIA);
                            _provinces = await _dbConnection.QueryAsync <PROVINCIA>(provinceQuery).ConfigureAwait(false);

                            ProvinceDto = _mapper.Map <IEnumerable <PROVINCIA>, IEnumerable <ProvinciaDto> >(_provinces);
                        }
                        store.AddParam(QueryType.QueryBrokerContacts, _currentComisio.NUM_COMI);
                        var queryContactos = store.BuildQuery();
                        _contactos = await _dbConnection
                                     .QueryAsync <ContactsComiPoco>(queryContactos);

                        ContactsDto = _mapper.Map <IEnumerable <ContactsComiPoco>, IEnumerable <ContactsDto> >(_contactos);

                        string queryTipoComi = string.Format(_queryTipoComi, tipoComiFields, _currentComisio.TIPOCOMI);
                        logger.Debug("Query commission agent kind: " + queryTipoComi);

                        _tipoComis = await _dbConnection.QueryAsync <TIPOCOMI>(queryTipoComi).ConfigureAwait(false);

                        if (!string.IsNullOrEmpty(_currentComisio.NACIOPER))
                        {
                            string queryPais = string.Format(_queryPais, _currentComisio.NACIOPER);
                            logger.Debug("Query commission agent kind: " + queryPais);
                            _nacioPer = await _dbConnection.QueryAsync <Country>(queryPais);

                            CountryDto = _mapper.Map <IEnumerable <Country>, IEnumerable <CountryDto> >(_nacioPer);
                        }

                        string delega = string.Format(_queryComiDelega, branchesField, _currentComisio.NUM_COMI);
                        _delegations = await _dbConnection.QueryAsync <ComiDelegaPoco, PROVINCIA, ComiDelegaPoco>(delega,
                                                                                                                  (branch, prov) =>
                        {
                            branch.PROV = prov;
                            return(branch);
                        }, splitOn : "SIGLAS");

                        BranchesDto = _mapper.Map <IEnumerable <ComiDelegaPoco>, IEnumerable <BranchesDto> >(_delegations);
                        store.Clear();
                        store.AddParam(QueryType.QueryBrokerVisit, _currentComisio.NUM_COMI);
                        var visitas = store.BuildQuery();
                        _visitasComis = await _dbConnection.QueryAsync <VisitasComiPoco>(visitas);

                        VisitsDto = _mapper.Map <IEnumerable <VisitasComiPoco>, IEnumerable <VisitsDto> >(_visitasComis);
                        var visitType = await _dbConnection.GetAsyncAll <TIPOVISITAS>();

                        VisitTypeDto = _mapper.Map <IEnumerable <TIPOVISITAS>, IEnumerable <VisitTypeDto> >(visitType);

                        logger.Debug("Executing AuxQueries.");
                        await BuildAuxQueryMultiple(_currentComisio, _dbConnection);
                    }
                }
                catch (System.Exception e)
                {
                    logger.Info("Cannot open value" + e.Message);

                    return(false);
                }
                finally
                {
                    _executor.Close();
                    logger.Debug("Connection close with success.");
                }
            }
            else
            {
                logger.Debug("Current commisionist is null.");
                return(false);
            }
            _valid = true;
            return(true);
        }
Esempio n. 9
0
        /// TODO: This function is too big. it shall be extracted to an object.
        /// It is sloppy as well. Too much resposabilities.
        /// <summary>
        /// Execute multiple queries.
        /// </summary>
        /// <param name="comisio">Comisio.</param>
        /// <param name="connection">DbConnection.</param>
        /// <returns></returns>
        private async Task BuildAuxQueryMultiple(COMISIO comisio, IDbConnection connection)
        {
            string tmpQuery = "";


            if (!string.IsNullOrEmpty(comisio.TIPOCOMI))
            {
                //tmpQuery = string.Format(_queryTipoComi, comisio.TIPOCOMI);
                _tipocomisions = await _dbConnection.GetAsyncAll <TIPOCOMI>();

                CommisionTypeDto = _mapper.Map <IEnumerable <TIPOCOMI>, IEnumerable <CommissionTypeDto> >(_tipocomisions);
            }
            if (!string.IsNullOrEmpty(comisio.CP))
            {
                tmpQuery     = string.Format(_queryCity, comisio.CP);
                _poblaciones = await _dbConnection.QueryAsync <POBLACIONES>(tmpQuery);

                CityDtos = _mapper.Map <IEnumerable <POBLACIONES>, IEnumerable <CityDto> >(_poblaciones);
            }
            if (comisio.PRODUCT_COMI != null)
            {
                tmpQuery  = string.Format(_queryComiDapper, Products, DefaultProductsFields, "CODIGO_PRD", comisio.PRODUCT_COMI);
                _products = await _dbConnection.QueryAsync <PRODUCTS>(tmpQuery);

                ProductsDto = _mapper.Map <IEnumerable <PRODUCTS>, IEnumerable <ProductsDto> >(_products);
            }
            if ((!string.IsNullOrEmpty(comisio.VENDE_COMI)))
            {
                tmpQuery   = string.Format(_queryComiDapper, Vendedor, DefaultVendedorFields, "NUM_VENDE", comisio.VENDE_COMI);
                _vendedors = await _dbConnection.QueryAsync <VENDEDOR>(tmpQuery);

                VendedorDto = _mapper.Map <IEnumerable <VENDEDOR>, IEnumerable <ResellerDto> >(_vendedors);
            }
            if (!string.IsNullOrEmpty(comisio.MERCADO))
            {
                tmpQuery  = string.Format(_queryComiDapper, Mercado, DefaultMercadoFields, "CODIGO", comisio.MERCADO);
                _mercados = await _dbConnection.QueryAsync <MERCADO>(tmpQuery);

                MercadoDto = _mapper.Map <IEnumerable <MERCADO>, IEnumerable <MercadoDto> >(_mercados);
            }
            if ((!string.IsNullOrEmpty(comisio.CLIENTE)))
            {
                tmpQuery = string.Format(_queryComiDapper, Client1, DefaultClientes1Fields, "NUMERO_CLI", comisio.CLIENTE);
                // FIXME: this shall be a client poco.
                _clientes = await _dbConnection.QueryAsync <CLIENTES1>(tmpQuery);

                ClientsDto = _mapper.Map <IEnumerable <CLIENTES1>, IEnumerable <ClientDto> >(_clientes);
            }
            if ((!string.IsNullOrEmpty(comisio.NEGOCIO)))
            {
                tmpQuery  = string.Format(_queryComiDapper, Negocio, DefaultNegocioFields, "CODIGO", comisio.NEGOCIO);
                _negocios = await _dbConnection.QueryAsync <NEGOCIO>(tmpQuery);

                NegocioDto = _mapper.Map <IEnumerable <NEGOCIO>, IEnumerable <BusinessDto> >(_negocios);
            }
            if (!string.IsNullOrEmpty(comisio.CANAL))
            {
                tmpQuery = string.Format(_queryComiDapper, Canal, DefaultCanalFields, "CODIGO", comisio.CANAL);
                _canals  = await _dbConnection.QueryAsync <CANAL>(tmpQuery);

                CanalDto = _mapper.Map <IEnumerable <CANAL>, IEnumerable <ChannelDto> >(_canals);
            }
            if ((!string.IsNullOrEmpty(comisio.CLAVEPPTO)))
            {
                tmpQuery   = string.Format(_queryComiDapper, ClavePpto, DefaultClavePpto, "COD_CLAVE", comisio.CLAVEPPTO);
                _clavePpto = await _dbConnection.QueryAsync <CLAVEPTO>(tmpQuery);

                ClavePptoDto = _mapper.Map <IEnumerable <CLAVEPTO>, IEnumerable <BudgetKeyDto> >(_clavePpto);
            }
            if (comisio.ORIGEN_COMI != null)
            {
                tmpQuery = string.Format(_queryComiDapper, Origen, DefaultOriginField, "NUM_ORIGEN", comisio.ORIGEN_COMI);
                _origen  = await _dbConnection.QueryAsync <ORIGEN>(tmpQuery);

                OrigenDto = _mapper.Map <IEnumerable <ORIGEN>, IEnumerable <OrigenDto> >(_origen);
            }
            if (!string.IsNullOrEmpty(comisio.ZONAOFI))
            {
                tmpQuery  = string.Format(_queryComiDapper, ZonaOfi, DefaultZonaOfi, "COD_ZONAOFI", comisio.ZONAOFI);
                _zonaofis = await _dbConnection.QueryAsync <ZONAOFI>(tmpQuery);

                ZonaOfiDto = _mapper.Map <IEnumerable <ZONAOFI>, IEnumerable <ZonaOfiDto> >(_zonaofis);
            }
            if (comisio.IDIOMA != null)
            {
                tmpQuery = string.Format(_queryComiDapper, Idiomas, DefaultIdiomas, "CODIGO", comisio.IDIOMA);
                _idiomas = await _dbConnection.QueryAsync <IDIOMAS>(tmpQuery);

                LanguageDto = _mapper.Map <IEnumerable <IDIOMAS>, IEnumerable <LanguageDto> >(_idiomas);
            }
        }