예제 #1
0
        public BurnReport GetBurnDetails(string tfsUrlPath, string projectName, BurnRetrievalOptions filter, string Query)
        {
            this.Connect(tfsUrlPath, projectName);

            this.PopulateFilterData(filter);
            QueryResult result     = server.Execute(QueryStore.GetBurnQuery(filter, Query), filter.DateRange, true);
            BurnReport  burnReport = reportEngine.CompileBurnData(result, filter, tfsUrlPath, projectName);

            //Naresh Code
            ViewType currentViewType = ViewType.Resource;

            if (burnReport != null)
            {
                burnReport.SetView(currentViewType, filter.Team.Members);
            }

            foreach (Item item in burnReport.AllItems)
            {
                ResourceBurnDetails resBurnDetails = new DataModel.ResourceBurnDetails();
                item.GetResourceBDTString(resBurnDetails);
                burnReport.ResourceBurnDetails.Add(resBurnDetails);
            }

            return(burnReport);

            //End of Naresh Code
        }
예제 #2
0
 public void Setup()
 {
     _queryStore = new QueryStore();
     _executor   = SetupSqlQueryExecutor();
     _dialogMock = new Mock <IDialogService>();
     _dialogMock.Setup(x => x.ShowErrorMessage(It.IsAny <string>())).Callback(() => _askedToShow = true);
 }
예제 #3
0
        public async Task Should_Load_ABookingEntity()
        {
            // prepare
            var entityCode                 = string.Empty;
            var singleValue                = new RESERVAS1();
            var numberOfReservations       = 0;
            var simpleQuery                = string.Empty;
            IEnumerable <LIRESER> liresers = new List <LIRESER>();

            using (var dbConnection = SqlExecutor.OpenNewDbConnection())
            {
                var reservas1 = await dbConnection.GetPagedAsync <RESERVAS1>(5, 20);

                singleValue = reservas1.FirstOrDefault();
                if (singleValue != null)
                {
                    entityCode = singleValue.NUMERO_RES;

                    IQueryStore store = new QueryStore();
                    simpleQuery = store.GetCountItems("LIRESER", "NUMERO", singleValue.NUMERO_RES);
                    var intList = await dbConnection.QueryAsync <int>(simpleQuery);

                    numberOfReservations = intList.FirstOrDefault();
                }
            }
            Assert.IsNotEmpty(entityCode);
            Assert.IsNotEmpty(simpleQuery);
            var singleDto = await _loader.LoadValueAsync(entityCode);

            var itemReservation = singleDto.Items;

            Assert.AreEqual(singleDto.APELLIDO1, singleDto.APELLIDO1);
            Assert.AreEqual(itemReservation.Count(), numberOfReservations);
        }
예제 #4
0
        public async Task Should_Build_AMultiKeyQueryCorrectly()
        {
            // arrange
            var testBase    = new TestBase();
            var sqlExecutor = testBase.SetupSqlQueryExecutor();
            var resultQuery = new VEHICULO1();

            using (var connection = sqlExecutor.OpenNewDbConnection())
            {
                resultQuery = await connection.GetRandomEntityAsync <VEHICULO1>();
            }
            var auxQueryStore = new QueryStore();

            auxQueryStore.AddParam(QueryType.QueryVehicleModelWithCount, resultQuery.MAR, resultQuery.MO1, resultQuery.MO2);
            auxQueryStore.AddParamCount(QueryType.QueryBrandByVehicle, resultQuery.MAR, resultQuery.CODIINT);
            auxQueryStore.AddParam(QueryType.QueryVehiclePhoto, resultQuery.CODIINT);
            auxQueryStore.AddParamCount(QueryType.QueryVehicleActivity, resultQuery.ACTIVIDAD);
            auxQueryStore.AddParamCount(QueryType.QueryVehicleOwner, resultQuery.PROPIE);
            auxQueryStore.AddParamCount(QueryType.QueryAgentByVehicle, resultQuery.AGENTE);
            auxQueryStore.AddParam(QueryType.QueryVehicleMaintenance, resultQuery.CODIINT);
            auxQueryStore.AddParamCount(QueryType.QueryVehicleColor, resultQuery.COLOR);
            auxQueryStore.AddParamCount(QueryType.QueryVehicleGroup, resultQuery.GRUPO);
            auxQueryStore.AddParamCount(QueryType.QuerySupplierSummaryById, resultQuery.PROVEEDOR);
            auxQueryStore.AddParamCount(QueryType.QueryReseller, resultQuery.VENDEDOR_VTA);
            auxQueryStore.AddParamCount(QueryType.QuerySupplierSummaryById, resultQuery.CIALEAS);
            var outQuery = auxQueryStore.BuildQuery();
        }
예제 #5
0
        public Report GetBugsResolvedOrClosedDetails(BurnRetrievalOptions filter)
        {
            QueryResult resultResolvedBugs = server.Execute(QueryStore.GetBugsResolvedQuery(filter), filter.DateRange, false);
            QueryResult resultClosedBugs   = server.Execute(QueryStore.GetBugsClosedQuery(filter), filter.DateRange, false);

            return(reportEngine.CompileResolvedOrClosedBugs(resultResolvedBugs, resultClosedBugs, filter));
        }
예제 #6
0
        public async Task Should_Load_BrokerVisitCorrectly()
        {
            using (IDbConnection connection = _sqlExecutor.OpenNewDbConnection())
            {
                // arrange
                var brokers = await connection.GetAllAsync <COMISIO>();

                var contactsBroker = await connection.QueryAsync <CONTACTOS_COMI>("select * from contactos_comi");

                var        singleBroker = brokers.FirstOrDefault();
                QueryStore store        = QueryStore.GetInstance();
                store.Clear();
                store.AddParam(QueryType.QueryClientVisits, singleBroker.NUM_COMI);
                var query = store.BuildQuery();
                // act
                var visitasComi = await connection.QueryAsync <VisitasComiPoco>(query);

                // assert.
                Assert.NotNull(visitasComi);
                var count = visitasComi.Count();
                Assert.GreaterOrEqual(count, 0);
                if (count > 0)
                {
                    foreach (var v in visitasComi)
                    {
                        Assert.NotNull(v.VisitId);
                    }
                }
            }
        }
예제 #7
0
        /// <summary>
        ///  Get async client summary.
        /// </summary>
        /// <returns>A list containing the complete list of clients</returns>
        public async Task <IEnumerable <ClientSummaryExtended> > GetAsyncAllClientSummary()
        {
            QueryStore store = new QueryStore();

            store.AddParam(QueryType.QueryClientSummaryExt);
            var query = store.BuildQuery();
            IEnumerable <ClientSummaryExtended> summaryDtos = new List <ClientSummaryExtended>();

            using (IDbConnection connection = _sqlExecutor.OpenNewDbConnection())
            {
                summaryDtos = await connection.QueryAsync <ClientSummaryExtended>(query).ConfigureAwait(false);

                var value = summaryDtos.FirstOrDefault();
                if (value != null)
                {
                    // init the dapper buffer.
                    QueryStore clientPocoQueryStore = new QueryStore();
                    clientPocoQueryStore.AddParam(QueryType.QueryClient1, value.Code);
                    clientPocoQueryStore.AddParam(QueryType.QueryClient2, value.Code);
                    var q          = clientPocoQueryStore.BuildQuery();
                    var pocoReader = await connection.QueryMultipleAsync(q).ConfigureAwait(false);

                    var clients1 = pocoReader.Read <CLIENTES1>(true).FirstOrDefault();
                    var clients2 = pocoReader.Read <CLIENTES2>(true).FirstOrDefault();
                }
            }
            return(summaryDtos);
        }
예제 #8
0
        public CellEditForm(CellsListForm instance)
        {
            this.instance = instance;

            InitializeComponent();

            query = new QueryStore();

            this.Text = Properties.Resources.Cell;

            label1.Text = Properties.Resources.Storage;
            label2.Text = Properties.Resources.Description;

            List <ObjectComboBox> lObj = new List <ObjectComboBox>();

            foreach (var item in query.querySelectStorehouses())
            {
                lObj.Add(new ObjectComboBox(item.Id, item.Name));
            }

            comboBoxStorages.DataSource    = lObj;
            comboBoxStorages.ValueMember   = "Id";
            comboBoxStorages.DisplayMember = "Name";


            buttonCancel.Text = Properties.Resources.Cancel;
            buttonOK.Text     = Properties.Resources.OK;
        }
예제 #9
0
        /// <summary>
        /// Get a paged version of the summary.
        /// </summary>
        /// <param name="pageSize">Page dimension.</param>
        /// <param name="offset">Offset</param>
        /// <returns></returns>
        public async Task <IEnumerable <VehicleSummaryDto> > GetVehiclesAgentSummary(int pageSize, int offset)
        {
            // TODO: Fix the usage of the query store.
            QueryStore store = new QueryStore();


            new QueryStore();
            IEnumerable <VehicleSummaryDto> vehicles = null;
            string value = "";

            if (pageSize == 0)
            {
                store.AddParam(QueryType.QueryVehicleSummary);
                value = store.BuildQuery();
            }
            else
            {
                store.Clear();
                store.AddParamRange(QueryType.QueryVehicleSummaryPaged, pageSize, offset);
                var query = store.BuildQuery();
            }
            using (IDbConnection connection = _sqlExecutor.OpenNewDbConnection())
            {
                /*
                 *  Move to query store.
                 */
                vehicles = await connection.QueryAsync <VehicleSummaryDto>(GenericSql.VehiclesSummaryQuery);
            }
            return(vehicles);
        }
예제 #10
0
        public CellsListForm()
        {
            InitializeComponent();

            query = new QueryStore();

            this.Text = Properties.Resources.Cells;

            labelSearch.Text  = Properties.Resources.Search;
            labelStorage.Text = Properties.Resources.Storage;


            searchCellIdBox.Text      = Properties.Resources.ID;
            searchDescriptionBox.Text = Properties.Resources.Description;
            buttonSearch.Text         = Properties.Resources.Search;

            buttonCreate.Text = Properties.Resources.Create;
            buttonEdit.Text   = Properties.Resources.Edit;
            button1.Text      = Properties.Resources.Delete;
            button2.Text      = Properties.Resources.Refresh;

            dataGridView1.SelectionMode       = DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.ReadOnly            = true;
            dataGridView1.AllowUserToAddRows  = false;
            dataGridView1.RowHeadersVisible   = false;
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            dataGridView1.AutoSizeRowsMode    = DataGridViewAutoSizeRowsMode.AllCells;
            dataGridView1.ScrollBars          = ScrollBars.Both;

            DataGridViewTextBoxColumn col2 = new DataGridViewTextBoxColumn();

            col2.HeaderText = Properties.Resources.Storage;

            DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();

            col1.HeaderText = Properties.Resources.Description;

            DataGridViewTextBoxColumn col0 = new DataGridViewTextBoxColumn();

            col0.HeaderText = Properties.Resources.ID;

            dataGridView1.Columns.Add(col0);
            dataGridView1.Columns.Add(col1);
            dataGridView1.Columns.Add(col2);

            addGridView(query.querySelectStoreCells(0));

            List <ObjectComboBox> lObj = new List <ObjectComboBox>();

            lObj.Add(new ObjectComboBox(0, Properties.Resources.All));
            foreach (var item in query.querySelectStorehouses())
            {
                lObj.Add(new ObjectComboBox(item.Id, item.Name));
            }

            comboBoxStorages.DataSource    = lObj;
            comboBoxStorages.ValueMember   = "Id";
            comboBoxStorages.DisplayMember = "Name";
        }
예제 #11
0
        public ChildItemCollection GetListOfWorkItems(string tfsUrlPath, string projectName, string[] workItemIds)
        {
            this.Connect(tfsUrlPath, projectName);
            QueryResult         result = server.Execute(QueryStore.GetListOfWorkItemsQuery(workItemIds), null, false);
            ChildItemCollection ChildItemCollection = reportEngine.CompileListOfWorkItems(tfsUrlPath, projectName, result);

            return(ChildItemCollection);
        }
예제 #12
0
        public WorkItemCollection GetAssignedWorkItems(string tfsUrlPath, string projectName, BurnRetrievalOptions filter, string Query)
        {
            this.Connect(tfsUrlPath, projectName);

            this.PopulateFilterData(filter);
            QueryResult result = server.Execute(QueryStore.GetAssignedWorkItemsQuery(Query), filter.DateRange, true);

            return(reportEngine.CompileAssignedWorkItems(result, tfsUrlPath, projectName));
        }
예제 #13
0
        public ChildItemCollection GetChildTasksDetails(string tfsUrlPath, string projectName, string parentId)
        {
            this.Connect(tfsUrlPath, projectName);
            QueryResult result = server.Execute(QueryStore.GetChildTasksQuery(parentId), null, false);

            Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem workItem = server.GetWorkItem(Convert.ToInt32(parentId));
            ChildItemCollection ChildItemCollection = reportEngine.CompileChildTasks(result, tfsUrlPath, projectName, workItem);

            return(ChildItemCollection);
        }
예제 #14
0
        public MovementEditForm(MovementsListForm instance)
        {
            this.instance = instance;
            InitializeComponent();

            query      = new QueryContractMove();
            queryStore = new QueryStore();
            queryProd  = new QueryProducts();

            this.Text         = Properties.Resources.Movement;
            label1.Text       = Properties.Resources.Good;
            label7.Text       = Properties.Resources.Amount;
            label2.Text       = Properties.Resources.Date;
            label3.Text       = Properties.Resources.FromStorage;
            label4.Text       = Properties.Resources.FromCell;
            label6.Text       = Properties.Resources.ToStorage;
            label5.Text       = Properties.Resources.ToCell;
            buttonCancel.Text = Properties.Resources.Cancel;
            buttonOK.Text     = Properties.Resources.OK;

            List <ObjectComboBox> lObj1 = new List <ObjectComboBox>();

            foreach (var item in queryStore.querySelectStorehouses())
            {
                lObj1.Add(new ObjectComboBox(item.Id, item.Name));
            }

            comboBoxStorehouseFrom.DataSource    = lObj1;
            comboBoxStorehouseFrom.ValueMember   = "Id";
            comboBoxStorehouseFrom.DisplayMember = "Name";

            List <ObjectComboBox> lObj3 = new List <ObjectComboBox>();

            foreach (var item in queryStore.querySelectStorehouses())
            {
                lObj3.Add(new ObjectComboBox(item.Id, item.Name));
            }

            comboBoxStorehouseTo.DataSource    = lObj3;
            comboBoxStorehouseTo.ValueMember   = "Id";
            comboBoxStorehouseTo.DisplayMember = "Name";

            List <ObjectComboBox> lObjPr = new List <ObjectComboBox>();

            foreach (var item in queryProd.querySelectProducts())
            {
                lObjPr.Add(new ObjectComboBox(item.Id, item.Name));
            }

            comboBoxProducts.DataSource = lObjPr;

            comboBoxProducts.ValueMember   = "Id";
            comboBoxProducts.DisplayMember = "Name";
        }
        /* Controller Method for populating Query Store List.
         * Retrives data based on the query and result
         * populated to the Model Class created */

        // GET: QuertStore
        public async Task <ActionResult> Index()
        {
            List <QueryStore> groups = new List <QueryStore>();

            var conn = _context.Database.GetDbConnection();

            try
            {
                await conn.OpenAsync();

                using (var command = conn.CreateCommand())
                {
                    string query = "SELECT TOP 25 rs.avg_physical_io_reads, rs.avg_duration, qt.query_sql_text, q.query_id, qt.query_text_id, p.plan_id, rs.runtime_stats_id, rs.avg_rowcount, rs.count_executions " +
                                   "FROM sys.query_store_query_text AS qt " +
                                   "JOIN sys.query_store_query AS q " +
                                   "ON qt.query_text_id = q.query_text_id " +
                                   "JOIN sys.query_store_plan AS p " +
                                   "ON q.query_id = p.query_id " +
                                   "JOIN sys.query_store_runtime_stats AS rs " +
                                   "ON p.plan_id = rs.plan_id " +
                                   "ORDER BY rs.avg_duration DESC";
                    command.CommandText = query;
                    DbDataReader reader = await command.ExecuteReaderAsync();

                    if (reader.HasRows)
                    {
                        while (await reader.ReadAsync())
                        {
                            var row = new QueryStore {
                                avg_physical_io_reads = reader.GetDouble(0),
                                avg_duration          = reader.GetDouble(1),
                                query_sql_text        = reader.GetString(2),
                                query_id         = reader.GetInt64(3),
                                query_text_id    = reader.GetInt64(4),
                                plan_id          = reader.GetInt64(5),
                                runtime_stats_id = reader.GetInt64(6),
                                avg_rowcount     = reader.GetDouble(7),
                                count_executions = reader.GetInt64(8)
                            };
                            groups.Add(row);
                        }
                    }
                    reader.Dispose();
                }
            }
            finally
            {
                conn.Close();
            }

            return(View(groups));
        }
예제 #16
0
        public StorageEditForm(StoragesListForm instance)
        {
            this.instance = instance;
            InitializeComponent();

            query = new QueryStore();

            this.Text         = Properties.Resources.Storage;
            label1.Text       = Properties.Resources.Title;
            label2.Text       = Properties.Resources.Address;
            buttonCancel.Text = Properties.Resources.Cancel;
            buttonOK.Text     = Properties.Resources.OK;
        }
예제 #17
0
        public StoragesListForm()
        {
            InitializeComponent();

            query = new QueryStore();

            this.Text         = Properties.Resources.Storages;
            labelSearch.Text  = Properties.Resources.Search;
            buttonCreate.Text = Properties.Resources.Create;
            buttonEdit.Text   = Properties.Resources.Edit;
            button1.Text      = Properties.Resources.Delete;
            button2.Text      = Properties.Resources.Refresh;

            dataGridView1.SelectionMode       = DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.ReadOnly            = true;
            dataGridView1.AllowUserToAddRows  = false;
            dataGridView1.RowHeadersVisible   = false;
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            dataGridView1.AutoSizeRowsMode    = DataGridViewAutoSizeRowsMode.AllCells;
            dataGridView1.ScrollBars          = ScrollBars.Both;

            searchAddressBox.Text    = Properties.Resources.Address;
            searchStorehouseBox.Text = Properties.Resources.Title;
            buttonSearch.Text        = Properties.Resources.Search;

            DataGridViewTextBoxColumn col00 = new DataGridViewTextBoxColumn();

            col00.HeaderText = Properties.Resources.ID;

            DataGridViewTextBoxColumn col0 = new DataGridViewTextBoxColumn();

            col0.HeaderText = Properties.Resources.Title;

            DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();

            col1.HeaderText = Properties.Resources.Address;

            dataGridView1.Columns.Add(col00);
            dataGridView1.Columns.Add(col0);
            dataGridView1.Columns.Add(col1);

            addGridView(query.querySelectStorehouses());
        }
예제 #18
0
        public async Task Should_Load_BrokerContactsCorrectly()
        {
            using (IDbConnection connection = _sqlExecutor.OpenNewDbConnection())
            {
                // arrange
                var brokers = await connection.GetAllAsync <COMISIO>();

                var contactsBroker = await connection.QueryAsync <CONTACTOS_COMI>("select * from contactos_comi");

                var        singleBroker = brokers.FirstOrDefault();
                QueryStore store        = QueryStore.GetInstance();
                store.AddParam(QueryType.QueryBrokerContacts, singleBroker.NUM_COMI);
                var currentQuery     = store.BuildQuery();
                var expectedContacts = contactsBroker.Where(x => x.COMISIO == singleBroker.NUM_COMI);
                // act
                var contactList = await connection.QueryAsync <ContactsComiPoco>(currentQuery);

                // assert
                foreach (var exp in expectedContacts)
                {
                    var l = contactList.Where(x => x.CONTACTO == exp.CONTACTO).ToList();
                    Assert.AreEqual(l.Count, 1);
                    var value = l.FirstOrDefault();
                    Assert.NotNull(value);
                    Assert.AreEqual(exp.CARGO, value.CARGO);
                    Assert.AreEqual(exp.COMISIO, value.COMISIO);
                    Assert.AreEqual(exp.CONTACTO, value.CONTACTO);
                    Assert.AreEqual(exp.DELEGA_CC, value.DELEGA_CC);
                    Assert.AreEqual(exp.EMAIL, value.EMAIL);
                    Assert.AreEqual(exp.ESVENDE, value.ESVENDE);
                    Assert.AreEqual(exp.FAX, value.FAX);
                    Assert.AreEqual(exp.MOVIL, value.MOVIL);
                    Assert.AreEqual(exp.NIF, value.NIF);
                    Assert.AreEqual(exp.NOM_CARGO, value.NOM_CARGO);
                    Assert.AreEqual(exp.NOM_CONTACTO, value.NOM_CONTACTO);
                    Assert.AreEqual(exp.OBSERVA, value.OBSERVA);
                    Assert.AreEqual(exp.TELEFONO, value.TELEFONO);
                    Assert.AreEqual(exp.ULTMODI, value.ULTMODI);
                    Assert.AreEqual(exp.USUARIO, value.USUARIO);
                }
            }
        }
예제 #19
0
        /// <summary>
        ///  Get async client summary.
        /// </summary>
        /// <returns>A list containing the complete list of clients</returns>
        public async Task <IEnumerable <ClientSummaryExtended> > GetSummaryAllAsync()
        {
            var store = new QueryStore();

            store.AddParam(QueryType.QueryClientSummaryExt);
            var query = store.BuildQuery();

            IEnumerable <ClientSummaryExtended> summaryDtos = new List <ClientSummaryExtended>();

            using (var connection = _sqlExecutor.OpenNewDbConnection())
            {
                if (connection == null)
                {
                    return(summaryDtos);
                }
                var startStopwatch = new Stopwatch();
                startStopwatch.Start();
                summaryDtos = await connection.QueryAsync <ClientSummaryExtended>(query).ConfigureAwait(false);

                startStopwatch.Stop();
            }
            return(summaryDtos);
        }
예제 #20
0
        public static void InitializeApplication(string databaseConnectionString)
        {
            // Register query store and search services.

            QueryStore  = new QueryStore(databaseConnectionString);
            QuerySearch = new QuerySearch(databaseConnectionString);

            // Register subscribers for application commands and domain events.

            _ = new AccountCommandSubscriber(CommandQueue, EventQueue, SnapshotRepository);
            _ = new AccountEventSubscriber(EventQueue, QueryStore, QuerySearch);

            _ = new PersonCommandSubscriber(CommandQueue, EventQueue, SnapshotRepository);
            _ = new PersonEventSubscriber(EventQueue, QueryStore);

            _ = new TransferCommandSubscriber(CommandQueue, EventQueue, SnapshotRepository);
            _ = new TransferEventSubscriber(EventQueue, QueryStore, QuerySearch);
            _ = new TransferProcessManager(CommandQueue, EventQueue, SnapshotRepository);

            _ = new UserCommandSubscriber(CommandQueue, EventQueue, SnapshotRepository);
            _ = new UserEventSubscriber(EventQueue, QueryStore);
            _ = new UserRegistrationProcessManager(CommandQueue, EventQueue, QuerySearch);
        }
예제 #21
0
        /// <summary>
        ///  Delete an office
        /// </summary>
        /// <param name="data">Data transfer object to be used for deleting an object</param>
        /// <returns></returns>
        public async Task <bool> DeleteAsync(OfficeViewObject data)
        {
            Contract.Assert(data != null, "Invalid data transfer object");
            var currentPoco = _mapper.Map <OfficeViewObject, OFICINAS>(data);
            var retValue    = false;

            using (var connection = _executor.OpenNewDbConnection())
            {
                try
                {
                    using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        retValue = await connection.DeleteAsync <OFICINAS>(currentPoco);

                        if ((retValue) && (data.HolidayDates.Any()))
                        {
                            QueryStore store = QueryStore.GetInstance();
                            store.AddParam(QueryType.HolidaysOfficeDelete, currentPoco.CODIGO);
                            var q         = store.BuildQuery();
                            var execQuery = await connection.ExecuteAsync(q);

                            //var connection = await connection.DeleteAsync();
                            // now we can delete the associated holidays.
                            //var holidays=_mapper.Map<IEnumerable<HolidayViewObject>, IEnumerable<FESTIVOS_OFICINA>>(data.HolidayDates);
                            // retValue = await connection.DeleteAsync(holidays);
                        }
                        scope.Complete();
                    }
                }
                finally
                {
                    connection.Close();
                }
            }
            return(retValue);
        }
예제 #22
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.
            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);
                        }
                        QueryStore store = QueryStore.GetInstance();



                        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");

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

                        VisitDto = _mapper.Map <IEnumerable <VisitasComiPoco>, IEnumerable <VisitsDto> >(_visitasComis);
                        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);
        }
예제 #23
0
        public Report GetTaskUpdateDetails(BurnRetrievalOptions filter)
        {
            QueryResult result = server.Execute(QueryStore.GetTaskUpdatesDataQuery(filter), filter.DateRange, false);

            return(reportEngine.CompileTaskUpdateIssues(result, filter));
        }
예제 #24
0
        //public QueryResult GetWIFeatureGroup()
        //{
        //    QueryResult result = server.GetWIFeatureGroup();

        //    return result;
        //}

        public Report GetCauseAndResolutionIssueDetails(BurnRetrievalOptions filter)
        {
            QueryResult result = server.Execute(QueryStore.GetBugResolutionDataQuery(filter), filter.DateRange, false);

            return(reportEngine.CompileCauseAndResolutionIssues(result, filter));
        }
예제 #25
0
        public BurnReport GetBurnDetails(BurnRetrievalOptions filter)
        {
            QueryResult result = server.Execute(QueryStore.GetBurnQueryOLD(filter), filter.DateRange, true);

            return(reportEngine.CompileBurnData(result, filter, "", ""));
        }
예제 #26
0
        /// <inheritdoc />
        /// <summary>
        /// Retrieve an invoice from the code in asynchronous way.
        /// </summary>
        /// <param name="code">Code of the invoice</param>
        /// <returns>The invoice.</returns>
        public async Task <IInvoiceData> GetDoAsync(string code)
        {
            var invoice = new Invoice(code, new InvoiceViewObject())
            {
                Valid = false
            };

            //  check if the code is a valid integer.

            using (var connection = SqlExecutor.OpenNewDbConnection())
            {
                var store = QueryStoreFactory.GetQueryStore();
                store.AddParam(QueryType.QueryInvoiceSingle, code);
                store.AddParam(QueryType.QueryInvoiceItem, code);
                var sql = store.BuildQuery();
                try
                {
                    var multi = await connection.QueryMultipleAsync(sql);

                    var invoices = multi.Read <FACTURAS>().FirstOrDefault();
                    if ((invoices == null) || (multi.IsConsumed))
                    {
                        if (invoices == null)
                        {
                            return(new NullInvoice());
                        }

                        return(invoice);
                    }

                    var invoiceItems = multi.Read <LIFAC>().ToList();

                    var dto = _mapper.Map <FACTURAS, InvoiceViewObject>(invoices);
                    if (dto == null)
                    {
                        return(new NullInvoice());
                    }

                    // move this to sql store.
                    IEnumerable <ClientSummaryExtended> clientDto = new List <ClientSummaryExtended>();
                    if (!string.IsNullOrEmpty(invoices.CLIENTE_FAC))
                    {
                        var storeClient = new QueryStore();
                        storeClient.AddParam(QueryType.QueryClientSummaryExtById, invoices.CLIENTE_FAC);
                        var query = storeClient.BuildQuery();
                        clientDto = await connection.QueryAsync <ClientSummaryExtended>(query);
                    }

                    invoice = new Invoice(code, dto)
                    {
                        InvoiceItems  = _mapper.Map <IEnumerable <LIFAC>, IEnumerable <InvoiceSummaryViewObject> >(invoiceItems),
                        Valid         = true,
                        Value         = dto,
                        ClientSummary = clientDto,
                        Code          = dto.NUMERO_FAC
                    };
                    var pageCount = await connection.GetPageCount <CLIENTES1>(1000);

                    invoice.NumberOfClients = pageCount.Item1;
                }
                catch (System.Exception ex)
                {
                    throw new DataLayerException("Cannot retrieve an invoice", ex);
                }
            }
            return(invoice);
        }