示例#1
0
        private async void DeleteCalibrations_Clicked(object sender, EventArgs e)
        {
            var deleteConfirmation = await DisplayAlert(AppResources.Delete_calibrations, string.Empty, AppResources.Delete, AppResources.Cancel);

            if (deleteConfirmation)
            {
                var calibrationService = Startup.ServiceProvider.GetService <ICalibrationService>();
                var query = new CalibrationsQuery()
                {
                    CalibrationIds = SelectedCalibrations.Select(calibration => calibration.Id).ToArray()
                };
                var deleted = await calibrationService.DeleteCalibrations(query);

                if (deleted)
                {
                    CrossToastPopUp.Current.ShowToastError($"{SelectedCalibrations.Count} {AppResources.Calibrations.ToLower()} {AppResources.Deleted.ToLower()}");
                    SelectedCalibrations.ForEach(deleted =>
                    {
                        var item = Calibrations.FirstOrDefault(calibration => calibration.Id == deleted.Id);
                        Calibrations.Remove(item);
                    });
                    SelectedCalibrations.Clear();
                }
            }
        }
示例#2
0
 public async Task <List <Calibration> > GetCalibrations(CalibrationsQuery query)
 {
     return(await this.databaseContext.Calibrations
            .Where(query.LocaleId, localeId => calibration => calibration.Position !.Zone !.LocaleId == localeId)
            .Where(query.ZoneId, zoneId => calibration => calibration.Position !.ZoneId == zoneId)
            .Where(query.PositionId, positionId => calibration => calibration.PositionId == positionId)
            .Where(query.SignalType, signalType => calibration => calibration.SignalType == signalType)
            .Where(query.SignalId, signalId => calibration => calibration.SignalId == signalId)
            .ToListAsync());
 }
示例#3
0
        public void ConvertArrayInQuery()
        {
            var client = new Client(new Configuration());
            var query  = new CalibrationsQuery()
            {
                CalibrationIds = new int[] { 1, 2, 3 }
            };

            Assert.AreEqual("?calibrationIds[]=1&calibrationIds[]=2&calibrationIds[]=3", client.ConvertQuery(query));
        }
示例#4
0
        public void ConvertQuery()
        {
            var client = new Client(new Configuration());
            var query  = new CalibrationsQuery()
            {
                LocaleId   = 1,
                PositionId = 1
            };

            Assert.AreEqual("?localeId=1&positionId=1", client.ConvertQuery(query));
        }
示例#5
0
        public async Task <bool> DeleteCalibrations(CalibrationsQuery query)
        {
            var calibrations = await this.databaseContext.Calibrations
                               .Include(calibration => calibration.Position)
                               .Where(query.CalibrationIds, calibrationIds => calibration => calibrationIds.Contains(calibration.Id))
                               .Where(query.LocaleId, localeId => calibration => calibration.Position !.Zone !.LocaleId == localeId)
                               .Where(query.PositionId, positionId => calibration => calibration.PositionId == positionId)
                               .Where(query.SignalId, signalId => calibration => calibration.SignalId == signalId)
                               .Where(query.ZoneId, zoneId => calibration => calibration.Position !.ZoneId == zoneId)
                               .ToListAsync();

            if (calibrations.Count == 0)
            {
                return(false);
            }

            calibrations.ForEach(calibration => calibration.Position !.DataNeedsUpdate = true);

            this.databaseContext.Calibrations.RemoveRange(calibrations);
            await this.databaseContext.SaveChangesAsync();

            return(true);
        }
示例#6
0
 public Task <List <Calibration> > GetCalibrations(CalibrationsQuery query)
 {
     return(client.Get <List <Calibration> >(calibrationsController, query));
 }
示例#7
0
 public Task <bool> DeleteCalibrations(CalibrationsQuery query)
 {
     return(client.Delete <bool>(calibrationsController, string.Empty, query));
 }
示例#8
0
 public async Task <ActionResult <bool> > DeleteCalibrations(
     [FromServices] ICalibrationService calibrationService,
     [FromQuery] CalibrationsQuery query)
 {
     return(await calibrationService.DeleteCalibrations(query));
 }
示例#9
0
 public async Task <ActionResult <List <Calibration> > > GetCalibrations(
     [FromServices] ICalibrationService calibrationService,
     [FromQuery] CalibrationsQuery query)
 {
     return(await calibrationService.GetCalibrations(query));
 }