public void SetsEmptyStatusesWhenEmpty()
            {
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Statuses = new List <string>()
                });

                filter.Statuses.Should().BeEmpty();
            }
Пример #2
0
 public static CalendarPage CheckWorkingFilter(this CalendarPage page, WorkerFilter filterType)
 {
     page.WorkingFilter.Buttons.Count.Wait($"ожидаем появления двух кнопок").EqualTo(2);
     page.WorkingFilter.GetButton((int)filterType)
     .Checked
     .Wait($"ожидаем включенный фильтр {filterType.ToString()}").EqualTo(true);
     return(page);
 }
            public void SetsCorrectImportances(params int[] importances)
            {
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Importances = importances.ToList()
                });

                filter.Importances.Should().Equal(importances);
            }
            public void SetsAllImportancesWhenNull()
            {
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Importances = null
                });

                filter.Importances.Should().Equal(0, 1, 2, 3);
            }
            public void SetsEmptyAnalogsWhenEmpty()
            {
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Analogs = new List <string>()
                });

                filter.Analogs.Should().BeEmpty();
            }
            public void SetsEmptyStatusesWhenNull()
            {
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Statuses = null
                });

                filter.Statuses.Should().BeEmpty();
            }
            public void SetsCorrectTypes(TmEventTypes expected, params TmEventTypes[] types)
            {
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Types = types.ToList()
                });

                filter.Types.Should().Be(expected);
            }
            public void SetsAnyTypesWhenNull()
            {
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Types = null
                });

                filter.Types.Should().Be(TmEventTypes.Any);
            }
            public void SetsDefaultValuesWhenNull()
            {
                var filter = new WorkerFilter(null);

                filter.Types.Should().Be(TmEventTypes.Any);
                filter.Importances.Should().Equal(0, 1, 2, 3);
                filter.Statuses.Should().BeEmpty();
                filter.Analogs.Should().BeEmpty();
            }
        public JsonResult Filter(WorkerFilter filter)
        {
            var response = _workerService.Filter(filter);

            if (filter.IsReport)
            {
                var branches = _branchService.Filter(new BranchFilter()).Branches;
                response.Workers.ForEach(worker => worker.Branch = branches.FirstOrDefault(branch => branch.Id.IsEqualTo(worker.BranchId)));
            }
            return(new JsonFactory().Success(response.Workers, response.TotalRecords));
        }
            public void ReturnsCorrectValueWithImportancesFilter(int importance, bool expected)
            {
                var importances = new List <int> {
                    1, 2
                };
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Importances = importances
                });
                var tmEvent = TmEventUtil.CreateRandomValidTmEvent(dto => dto.Importance = (short)importance);

                var result = filter.IsEventSuitable(tmEvent);

                result.Should().Be(expected);
            }
            public void ReturnsCorrectValueWithTypesFilter(TmEventTypes tmEventType, bool expected)
            {
                var types = new List <TmEventTypes> {
                    TmEventTypes.StatusChange, TmEventTypes.Alarm
                };
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Types = types
                });
                var tmEvent = TmEventUtil.CreateRandomValidTmEvent(dto => dto.RecType = (short)tmEventType);

                var result = filter.IsEventSuitable(tmEvent);

                result.Should().Be(expected);
            }
        public FileResult Export(WorkerFilter filter)
        {
            var response = _workerService.Filter(filter);
            var branches = _branchService.Filter(new BranchFilter()).Branches;

            var csv = new CsvExport();

            if (filter.IsReport)
            {
                csv.ConcatRow(0, "COMPAÑÍA,ID SUCURSAL,SUCURSAL,DEPARTAMENTO,PUESTO,CÓDIGO,NOMBRE,GÉNERO,NSS,FECHA CONSUMO,CONSUMIDO,RECOMENDADO");
                foreach (var worker in response.Workers)
                {
                    var today            = DateTimeExtensions.Today();
                    var startDate        = filter.Month.IsGreaterThanZero() ? new DateTime(today.Year, today.Month, 1).ConvertToString() : "";
                    var endDate          = filter.Month.IsGreaterThanZero() ? new DateTime(today.Year, today.Month, DateTime.DaysInMonth(today.Year, today.Month)).ConvertToString() : "";;
                    var responseCalories = _reservationService.Report(new ReservationReport {
                        WorkerId = worker.Id, StartDate = startDate, EndDate = endDate
                    });
                    var currentCompany = branches.First(branch => branch.Id.IsEqualTo(worker.BranchId)).Company.Name;
                    //var responseCalories = new ReservationReportResponse
                    //{
                    //    Calories = new List<ReservationCalorieReportResponse>
                    //{
                    //    new ReservationCalorieReportResponse{Date = DateTimeExtensions.Today().AddDays(-7).ConvertToString(),Dinner = 200, Lunch = 1000, BreakFast = 150},
                    //    new ReservationCalorieReportResponse{Date = DateTimeExtensions.Today().AddDays(-6).ConvertToString(),Dinner = 164, Lunch = 1000, BreakFast = 150},
                    //    new ReservationCalorieReportResponse{Date = DateTimeExtensions.Today().AddDays(-5).ConvertToString(),Dinner = 195, Lunch = 1000, BreakFast = 150},
                    //    new ReservationCalorieReportResponse{Date = DateTimeExtensions.Today().AddDays(-4).ConvertToString(),Dinner = 109, Lunch = 1000, BreakFast = 203},
                    //    new ReservationCalorieReportResponse{Date = DateTimeExtensions.Today().AddDays(-3).ConvertToString(),Dinner = 287, Lunch = 1000, BreakFast = 343},
                    //    new ReservationCalorieReportResponse{Date = DateTimeExtensions.Today().AddDays(-2).ConvertToString(),Dinner = 207, Lunch = 1000, BreakFast = 150},
                    //    new ReservationCalorieReportResponse{Date = DateTimeExtensions.Today().AddDays(-1).ConvertToString(),Dinner = 218, Lunch = 1000, BreakFast = 145}
                    //}
                    //};
                    foreach (var calorie in responseCalories.Calories)
                    {
                        var sumCalories = calorie.BreakFast + calorie.Dinner + calorie.Lunch;
                        var row         = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", currentCompany, worker.BranchId, worker.Branch.Name, worker.Department.Name, worker.Job.Name, worker.Code, worker.FullName, EnumResolver.Gender(worker.Gender.GetValue()), worker.Imss, calorie.Date, sumCalories.RoundDecimal(), worker.LimitEnergy);
                        csv.ConcatRow(0, row);
                    }
                }
            }
            else
            {
                csv.ConcatRow(0, "CÓDIGO,NOMBRE,APELLIDO,EMAIL,IMSS,GÉNERO,GAFFETE,INGESTA CALÓRICA,SUCURSAL,DEPARTAMENTO,PUESTO,ROL,ESTADO");
                csv.ConcatRows(0, "Code,FirstName,LastName,Email,Imss,GenderLabel,Badge,LimitEnergy,Branch,Department,Job,Role,Status", response.Workers);
            }

            var stream = csv.RetrieveFile();

            return(new StreamFactory().Csv(stream, "Ingesta calórica por colaborador"));
        }
            public void SetsCorrectStatuses()
            {
                var statuses = new List <string> {
                    "0:1:1", "0:1:6", "11:1:2..4", "0:1:9"
                };

                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Statuses = statuses
                });

                filter.Statuses.Should().Equal(TmAddr.EncodeComplexInteger(0, 1, 1),
                                               TmAddr.EncodeComplexInteger(0, 1, 6),
                                               TmAddr.EncodeComplexInteger(0, 1, 9),
                                               TmAddr.EncodeComplexInteger(11, 1, 2),
                                               TmAddr.EncodeComplexInteger(11, 1, 3),
                                               TmAddr.EncodeComplexInteger(11, 1, 4));
            }
            public void ReturnsTrueWhenEmptyFilter()
            {
                var filter   = new WorkerFilter(null);
                var tmEvents = new List <TmEvent>();

                for (var i = 0; i < 100; i++)
                {
                    tmEvents.Add(TmEventUtil.CreateRandomValidTmEvent());
                }

                foreach (var tmEvent in tmEvents)
                {
                    filter.IsEventSuitable(tmEvent)
                    .Should()
                    .BeTrue();
                }
            }
            public void SetsCorrectAnalogs()
            {
                var statuses = new List <string> {
                    "20:1:1", "10:3:5", "0:1:1..5"
                };

                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Statuses = statuses
                });

                filter.Statuses.Should().Equal(TmAddr.EncodeComplexInteger(0, 1, 1),
                                               TmAddr.EncodeComplexInteger(0, 1, 2),
                                               TmAddr.EncodeComplexInteger(0, 1, 3),
                                               TmAddr.EncodeComplexInteger(0, 1, 4),
                                               TmAddr.EncodeComplexInteger(0, 1, 5),
                                               TmAddr.EncodeComplexInteger(10, 3, 5),
                                               TmAddr.EncodeComplexInteger(20, 1, 1));
            }
            public void ReturnsCorrectValueWithAnalogsFilter(int ch, int rtu, int point, bool expected)
            {
                var analogs = new List <string> {
                    "20:3:2..4", "20:3:6"
                };
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Analogs = analogs
                });
                var analogType = TmNativeDefs.TmDataTypes.Analog;
                var tmEvent    = TmEventUtil.CreateRandomValidTmEvent(dto =>
                {
                    dto.TmType = (short)analogType;
                    dto.Tma    = (int)TmAddr.EncodeComplexInteger(ch, rtu, point);
                });

                var result = filter.IsEventSuitable(tmEvent);

                result.Should().Be(expected);
            }
            public void ReturnsFalseWithStatusesAnalogsFilterAndZeroAddr()
            {
                var statuses = new List <string> {
                    "10:1:2..4", "10:1:6"
                };
                var analogs = new List <string> {
                    "20:3:2..4", "20:3:6"
                };
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Statuses = statuses, Analogs = analogs
                });
                var tmEvent = TmEventUtil.CreateRandomValidTmEvent(dto =>
                {
                    dto.TmType = 0;
                    dto.Tma    = 0;
                });

                var result = filter.IsEventSuitable(tmEvent);

                result.Should().BeFalse();
            }
            public void ReturnsFalseWithStatusesAnalogsFilterAndOverlap()
            {
                var statuses = new List <string> {
                    "10:1:2..4", "10:1:6"
                };
                var analogs = new List <string> {
                    "20:3:2..4", "20:3:6"
                };
                var filter = new WorkerFilter(new WorkerFilterConfig {
                    Statuses = statuses, Analogs = analogs
                });
                var statusType         = TmNativeDefs.TmDataTypes.Status;
                var analogType         = TmNativeDefs.TmDataTypes.Analog;
                var tmEventStatusFalse = TmEventUtil.CreateRandomValidTmEvent(dto =>
                {
                    dto.TmType = (short)statusType;
                    dto.Tma    = (int)TmAddr.EncodeComplexInteger(20, 3, 6);
                });
                var tmEventStatusTrue = TmEventUtil.CreateRandomValidTmEvent(dto =>
                {
                    dto.TmType = (short)statusType;
                    dto.Tma    = (int)TmAddr.EncodeComplexInteger(10, 1, 6);
                });
                var tmEventAnalogFalse = TmEventUtil.CreateRandomValidTmEvent(dto =>
                {
                    dto.TmType = (short)analogType;
                    dto.Tma    = (int)TmAddr.EncodeComplexInteger(10, 1, 6);
                });
                var tmEventAnalogTrue = TmEventUtil.CreateRandomValidTmEvent(dto =>
                {
                    dto.TmType = (short)analogType;
                    dto.Tma    = (int)TmAddr.EncodeComplexInteger(20, 3, 6);
                });

                filter.IsEventSuitable(tmEventStatusFalse).Should().BeFalse();
                filter.IsEventSuitable(tmEventStatusTrue).Should().BeTrue();
                filter.IsEventSuitable(tmEventAnalogFalse).Should().BeFalse();
                filter.IsEventSuitable(tmEventAnalogTrue).Should().BeTrue();
            }
Пример #20
0
 public static CalendarPage SetWorkingFilter(this CalendarPage page, WorkerFilter filterType)
 {
     page.WorkingFilter.Buttons.Count.Wait($"ожидаем появления двух кнопок").EqualTo(2);
     page.WorkingFilter.GetButton((int)filterType).Click();
     return(page.CheckWorkingFilter(filterType));
 }