示例#1
0
        public void Add_MissingPropertyAction_ReturnsErrorMessages()
        {
            var service = new ActionService();

            var test1 = service.AddAction("{\"action\":\"jump\"}");
            var test2 = service.AddAction("{\"time\":100}");

            Assert.False(string.IsNullOrEmpty(test1));
            Assert.False(string.IsNullOrEmpty(test2));
        }
示例#2
0
        public void Add_MultipleActions_ReturnsExpectedAverages()
        {
            var service = new ActionService();

            var test1 = service.AddAction("{\"action\":\"jump\", \"time\":100}");
            var test2 = service.AddAction("{\"action\":\"run\", \"time\":75}");
            var test3 = service.AddAction("{\"action\":\"jump\", \"time\":200}");

            Assert.True(string.IsNullOrEmpty(test1));
            Assert.True(string.IsNullOrEmpty(test2));
            Assert.True(string.IsNullOrEmpty(test3));
        }
示例#3
0
        static void Main(string[] args)
        {
            var service = new ActionService();

            var errorStr = "";

            foreach (var arg in args)
            {
                errorStr = service.AddAction(arg);
                if (false == string.IsNullOrEmpty(errorStr))
                {
                    break;
                }
            }

            if (false == string.IsNullOrEmpty(errorStr))
            {
                Console.WriteLine($"ERROR: Unable to add one or more actions -> {errorStr}");
                return;
            }

            var stats = service.GetStats();

            Console.WriteLine(stats);

            return;
        }
示例#4
0
        public void Get_StatsMultipleActions_ReturnsExpectedAverages()
        {
            var service = new ActionService();

            var test1 = service.AddAction("{\"action\":\"jump\", \"time\":100}");
            var test2 = service.AddAction("{\"action\":\"run\", \"time\":75}");
            var test3 = service.AddAction("{\"action\":\"jump\", \"time\":200}");
            var stats = service.GetStats();

            var expectedResults = "[{\"action\":\"jump\",\"avg\":150.0},{\"action\":\"run\",\"avg\":75.0}]";

            Assert.True(string.IsNullOrEmpty(test1));
            Assert.True(string.IsNullOrEmpty(test2));
            Assert.True(string.IsNullOrEmpty(test3));
            Assert.False(string.IsNullOrEmpty(stats));
            Assert.Equal(expectedResults, stats);
        }
示例#5
0
        public void Add_MissionActionValue_ReturnsErrorMessage()
        {
            var service = new ActionService();

            var test1 = service.AddAction("{\"action\":\"\",\"time\":100}");

            Assert.False(string.IsNullOrEmpty(test1));
        }
示例#6
0
        public void Add_BadTimeType_ReturnsErrorMessage()
        {
            var service = new ActionService();

            var test1 = service.AddAction("{\"action\":\"jump\",\"time\":\"OtherValue\"}");

            Assert.False(string.IsNullOrEmpty(test1));
        }
示例#7
0
        public void Add_BadJson_ReturnsErrorMessage()
        {
            var service = new ActionService();

            var test1 = service.AddAction("InvalidJson");

            Assert.False(string.IsNullOrEmpty(test1));
        }
示例#8
0
        public void Add_InvalidPropertyName_ReturnsErrorMessages()
        {
            var service = new ActionService();

            var test1 = service.AddAction("{\"invalid_property\":\"jump\",\"time\":100}");

            Assert.False(string.IsNullOrEmpty(test1));
        }
示例#9
0
        public void Add_SingleAction_ReturnsNoError()
        {
            var service = new ActionService();

            var test1 = service.AddAction("{\"action\":\"jump\",\"time\":100}");

            Assert.True(string.IsNullOrEmpty(test1));
        }
示例#10
0
        public async Task AddGet_AsyncMultipleActions_Succeeds()
        {
            var service = new ActionService();

            var addJumpTask = Task.Run(() => {
                var addResults = "";
                for (int i = 0; i < 10; i++)
                {
                    addResults += service.AddAction($"{{\"action\":\"jump\", \"time\":50}}");
                }
                return(addResults);
            });

            var addRunTask = Task.Run(() => {
                var addResults = "";
                for (int i = 0; i < 10; i++)
                {
                    addResults += service.AddAction($"{{\"action\":\"run\", \"time\":10}}");
                }
                return(addResults);
            });

            var getTask = Task.Run(async() => {
                var getResults = "";
                for (int i = 0; i < 10; i++)
                {
                    getResults += service.GetStats();
                    await Task.Delay(TimeSpan.FromSeconds(1));
                }
                return(getResults);
            });

            var allResults = await Task.WhenAll(
                addJumpTask,
                addRunTask,
                getTask
                );

            Assert.True(string.IsNullOrEmpty(allResults[0]));  // Add Jump
            Assert.True(string.IsNullOrEmpty(allResults[1]));  // Add Run
            Assert.False(string.IsNullOrEmpty(allResults[2])); // Get Stats
        }
示例#11
0
        public void Get_StatsSingleAction_ReturnsSameNumber()
        {
            var service = new ActionService();

            var test1 = service.AddAction("{\"action\":\"jump\",\"time\":100}");
            var stats = service.GetStats();

            var expectedResults = "[{\"action\":\"jump\",\"avg\":100.0}]";

            Assert.True(string.IsNullOrEmpty(test1));
            Assert.False(string.IsNullOrEmpty(stats));
            Assert.Equal(expectedResults, stats);
        }
示例#12
0
        public void Add_AsyncMultipleActions_Succeeds()
        {
            var service = new ActionService();

            Parallel.For(0, 10, (time) => {
                var actionName = time < 5 ? "jump" : "run";
                service.AddAction($"{{\"action\":\"{actionName}\", \"time\":{time}}}");
            });

            var stats = service.GetStats();

            var expectedResults = "[{\"action\":\"jump\",\"avg\":2.0},{\"action\":\"run\",\"avg\":7.0}]";

            Assert.Equal(expectedResults, stats);
        }
        public virtual ActionResult PrintLabelsForBatch(long batchId)
        {
            LogI("PrintLabelsForBatch, batchId=" + batchId);

            try
            {
                var companyId = AccessManager.CompanyId;
                if (!companyId.HasValue)
                {
                    throw new ArgumentNullException("CompanyId");
                }

                var when = Time.GetAppNowTime();
                var by   = AccessManager.UserId;

                var actionId = ActionService.AddAction(Db,
                                                       SystemActionType.PrintBatch,
                                                       batchId.ToString(),
                                                       new PrintBatchInput()
                {
                    BatchId   = batchId,
                    CompanyId = companyId.Value,
                    UserId    = by
                },
                                                       null,
                                                       by);

                LogI("PrintLabelsForBatch, actionId=" + actionId);

                if (AppSettings.IsDebug)
                {
                    var labelBatchService = new LabelBatchService(DbFactory,
                                                                  ActionService,
                                                                  LogService,
                                                                  Time,
                                                                  WeightService,
                                                                  ServiceFactory,
                                                                  EmailService,
                                                                  BatchManager,
                                                                  new PdfMakerByIText(LogService),
                                                                  new AddressService(null, null, null),
                                                                  OrderHistoryService,
                                                                  AppSettings.DefaultCustomType,
                                                                  AppSettings.LabelDirectory,
                                                                  AppSettings.ReserveDirectory,
                                                                  AppSettings.TemplateDirectory,
                                                                  new LabelBatchService.Config(),
                                                                  AppSettings.IsSampleLabels);


                    _debugPrintLabelThread = new Thread(() =>
                    {
                        labelBatchService.ProcessPrintBatchActions(null);
                    });
                    _debugPrintLabelThread.Start();
                }


                return(JsonGet(MessageResult.Success("", actionId.ToString())));
            }
            catch (Exception ex)
            {
                LogE("PrintLabelsForBatch error", ex);
                return(JsonGet(MessageResult.Error("Print Error: " + ex.Message)));
            }
        }