public async Task GetTransactionsPage_ServiceFailed_Returns500()
        {
            // Arrange
            var mediator = new Mock <IMediator>();
            var transactionPageQueryResult = new OperationDataResult <TransactionPageQueryResult>(false, new List <string> {
                "Error"
            });

            mediator.Setup(m => m.Send(It.IsAny <TransactionPageQuery>(),
                                       It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(transactionPageQueryResult));

            var controller = new TransactionsController(mediator.Object);

            // Act
            var result = await controller.GetTransactionsPage(new TransactionPageQuery());

            var objectResult        = result as ObjectResult;
            var operationDataResult = objectResult.Value as OperationDataResult <TransactionPageQueryResult>;

            // Assert
            Assert.AreEqual(500, objectResult.StatusCode);
            Assert.AreEqual(false, operationDataResult.Succeeded);
            Assert.AreNotEqual(0, operationDataResult.Messages);
        }
示例#2
0
        private void GetResult()
        {
            OperationDataResult result = DataHandler.BinaryOperationResult();

            if (result.Success)
            {
                InfoLabel.Text = result.Data;
            }
            DataHandler.ExpressionContinuation = false;
        }
示例#3
0
        public void ChangeOperationUnary(Operations operation)
        {
            DataHandler.OperationData = operation;
            OperationDataResult result = DataHandler.UnaryOperationResult();

            if (result.Success)
            {
                InfoLabel.Text = result.Data;
            }
            DataHandler.ExpressionContinuation = false;
        }
示例#4
0
        public async Task GenerateSingleListResults(ItemListCasesPnRequestModel requestModel)
        {
            OperationDataResult <FileStreamModel> result = await _listService.GenerateSingleListResults(requestModel);

            const int bufferSize = 4086;

            byte[] buffer = new byte[bufferSize];
            Response.OnStarting(async() =>
            {
                try
                {
                    if (!result.Success)
                    {
                        Response.ContentLength = result.Message.Length;
                        Response.ContentType   = "text/plain";
                        Response.StatusCode    = 400;
                        byte[] bytes           = Encoding.UTF8.GetBytes(result.Message);
                        await Response.Body.WriteAsync(bytes, 0, result.Message.Length);
                        await Response.Body.FlushAsync();
                    }
                    else
                    {
                        using (FileStream excelStream = result.Model.FileStream)
                        {
                            int bytesRead;
                            Response.ContentLength = excelStream.Length;
                            Response.ContentType   = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                            while ((bytesRead = excelStream.Read(buffer, 0, buffer.Length)) > 0 &&
                                   !HttpContext.RequestAborted.IsCancellationRequested)
                            {
                                await Response.Body.WriteAsync(buffer, 0, bytesRead);
                                await Response.Body.FlushAsync();
                            }
                        }
                    }
                }
                finally
                {
                    if (!string.IsNullOrEmpty(result?.Model?.FilePath) &&
                        System.IO.File.Exists(result.Model.FilePath))
                    {
                        System.IO.File.Delete(result.Model.FilePath);
                    }
                }
            });

//            return await _listService.GenerateSingleListResults(requestModel);
        }
        public async Task <OperationDataResult <FileStreamModel> > GenerateReportFile(GenerateReportModel model)
        {
            string excelFile = null;

            try
            {
                OperationDataResult <ReportModel> reportDataResult = await GenerateReport(model);

                if (!reportDataResult.Success)
                {
                    return(new OperationDataResult <FileStreamModel>(false, reportDataResult.Message));
                }

                excelFile = _excelService.CopyTemplateForNewAccount("report_template");
                bool writeResult = _excelService.WriteRecordsExportModelsToExcelFile(
                    reportDataResult.Model,
                    model,
                    excelFile);

                if (!writeResult)
                {
                    throw new Exception($"Error while writing excel file {excelFile}");
                }

                FileStreamModel result = new FileStreamModel()
                {
                    FilePath   = excelFile,
                    FileStream = new FileStream(excelFile, FileMode.Open),
                };

                return(new OperationDataResult <FileStreamModel>(true, result));
            }
            catch (Exception e)
            {
                if (!string.IsNullOrEmpty(excelFile) && File.Exists(excelFile))
                {
                    File.Delete(excelFile);
                }

                Trace.TraceError(e.Message);
                _logger.LogError(e.Message);
                return(new OperationDataResult <FileStreamModel>(
                           false,
                           _itemsPlanningLocalizationService.GetString("ErrorWhileGeneratingReportFile")));
            }
        }
示例#6
0
        public async Task <OperationDataResult <CloseRouletteResult> > CloseRouletteAsync(string rouletteCode)
        {
            var result = new OperationDataResult <CloseRouletteResult> {
                Data = new CloseRouletteResult()
            };
            var rouletteStorage = _rouletteRepositories.First(x => x.StorageProvider == _rouletteSettings.StorageProvider);
            var roulette        = await rouletteStorage.FindByCodeAsync(rouletteCode);

            if (roulette != null)
            {
                if (roulette.RouletteStatus != RouletteStatus.Open)
                {
                    throw new RouletteException("La ruleta ya se encuentra cerrada");
                }
                roulette.RouletteStatus = RouletteStatus.Closed;
                await rouletteStorage.UpdateAsync(roulette);

                result.Data.NumberWinner = new Random().Next(_rouletteSettings.MinNumberBet, _rouletteSettings.MaxNumberBet);
                result.Data.ColorWinner  = new Random().Next(1, 3) == 1 ? Color.Black.ToString() : Color.Red.ToString();
                var betStorage        = _betRepositories.First(x => x.StorageProvider == _rouletteSettings.StorageProvider);
                var betsNumberWinners = await betStorage.FindByStringsFiltersAsync(new Dictionary <string, string>
                {
                    { "RouletteCode", rouletteCode },
                    { "Number", result.Data.NumberWinner.ToString() }
                });

                var betsColorWinners = await betStorage.FindByStringsFiltersAsync(new Dictionary <string, string>
                {
                    { "RouletteCode", rouletteCode },
                    { "Color", result.Data.ColorWinner }
                });

                result.Data.Winners = GetWinnersAndgetMoney(betsNumberWinners, betsColorWinners);
            }
            else
            {
                result.Success = false;
            }
            return(result);
        }
        public static OperationDataResult UnaryOperationResult()
        {
            var result = new OperationDataResult
            {
                Success = false
            };

            ParseData();
            if (TryExecuteUnary().Success)
            {
                if (float.IsInfinity(FirstData))
                {
                    result.Data = "Ошибка";
                }
                else
                {
                    result.Data = FirstData.ToString();
                }
                result.Success = true;
            }
            return(result);
        }
        public async Task GetTransactionsPage_ServiceSucceeded_Returns200()
        {
            // Arrange
            var mediator = new Mock <IMediator>();
            var transactionPageQueryResult = new OperationDataResult <TransactionPageQueryResult>(true, new TransactionPageQueryResult(1, new List <TransactionModel>()));

            mediator.Setup(m => m.Send(It.IsAny <TransactionPageQuery>(),
                                       It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(transactionPageQueryResult));

            var controller = new TransactionsController(mediator.Object);

            // Act
            var result = await controller.GetTransactionsPage(new TransactionPageQuery());

            var objectResult        = result as ObjectResult;
            var operationDataResult = objectResult.Value as OperationDataResult <TransactionPageQueryResult>;

            // Assert
            Assert.AreEqual(200, objectResult.StatusCode);
            Assert.AreEqual(true, operationDataResult.Succeeded);
            Assert.IsNotNull(operationDataResult.Model.Transactions);
            Assert.AreEqual(transactionPageQueryResult.Model.TotalTransactionsCount, operationDataResult.Model.TotalTransactionsCount);
        }
示例#9
0
        public async Task <OperationDataResult <FileStreamModel> > GenerateReportFile(GenerateReportModel model)
        {
            string excelFile = null;

            try
            {
                OperationDataResult <ReportModel> reportDataResult = await GenerateReport(model);

                if (!reportDataResult.Success)
                {
                    return(new OperationDataResult <FileStreamModel>(false, reportDataResult.Message));
                }

                string outerResourceName = "";
                string innerResourceName = "";
                try
                {
                    outerResourceName = _dbContext.PluginConfigurationValues.SingleOrDefault(x => x.Name == "OuterInnerResourceSettings:OuterResourceName")?.Value;
                    innerResourceName = _dbContext.PluginConfigurationValues.SingleOrDefault(x => x.Name == "OuterInnerResourceSettings:InnerResourceName")?.Value;
                }
                catch
                {
                }

                switch (reportDataResult.Model.Relationship)
                {
                case ReportRelationshipType.Employee:
                    reportDataResult.Model.HumanReadableName =
                        _outerInnerResourceLocalizationService.GetString("Employee");
                    break;

                case ReportRelationshipType.InnerResource:
                    reportDataResult.Model.HumanReadableName = innerResourceName;
                    break;

                case ReportRelationshipType.OuterResource:
                    reportDataResult.Model.HumanReadableName = outerResourceName;
                    break;

                case ReportRelationshipType.EmployeeInnerResource:
                    reportDataResult.Model.HumanReadableName =
                        _outerInnerResourceLocalizationService.GetString("Employee") + "-" + innerResourceName;
                    break;

                case ReportRelationshipType.EmployeeOuterResource:
                    reportDataResult.Model.HumanReadableName =
                        _outerInnerResourceLocalizationService.GetString("Employee") + "-" + outerResourceName;
                    break;

                case ReportRelationshipType.EmployeeTotal:
                    reportDataResult.Model.HumanReadableName =
                        _outerInnerResourceLocalizationService.GetString("Employee" + "-Total");
                    break;

                case ReportRelationshipType.OuterInnerResource:
                    reportDataResult.Model.HumanReadableName =
                        $"{outerResourceName} {innerResourceName}";
                    break;

                case ReportRelationshipType.InnerOuterResource:
                    reportDataResult.Model.HumanReadableName =
                        $"{innerResourceName} {outerResourceName}";
                    break;
                }

                excelFile = _excelService.CopyTemplateForNewAccount("report_template");
                bool writeResult = _excelService.WriteRecordsExportModelsToExcelFile(
                    reportDataResult.Model,
                    model,
                    excelFile);

                if (!writeResult)
                {
                    throw new Exception($"Error while writing excel file {excelFile}");
                }

                FileStreamModel result = new FileStreamModel()
                {
                    FilePath   = excelFile,
                    FileStream = new FileStream(excelFile, FileMode.Open),
                };

                return(new OperationDataResult <FileStreamModel>(true, result));
            }
            catch (Exception e)
            {
                if (!string.IsNullOrEmpty(excelFile) && File.Exists(excelFile))
                {
                    File.Delete(excelFile);
                }

                Trace.TraceError(e.Message);
                _logger.LogError(e.Message);
                return(new OperationDataResult <FileStreamModel>(
                           false,
                           _outerInnerResourceLocalizationService.GetString("ErrorWhileGeneratingReportFile")));
            }
        }