public async Task <InspectionRoute> AddOrUpdateInspectionOnRoute(InspectionRoute input)
        {
            var sqlRoute = new RoutesRepository(_logger);
            var route    = await sqlRoute.ById(input.RouteId);

            if (route?.TurnoverId == null)
            {
                throw Error.CommonError;
            }
            var routesWithTimelinePaging = await GetRoutesWithTimeline((int)route.TurnoverId, 0, int.MaxValue, route.Id);

            var timeLines = routesWithTimelinePaging.Data.First().TimeLines;

            foreach (var timeline in timeLines)
            {
                if ((input.Start >= timeline.StarTime || input.End >= timeline.StarTime) &&
                    (input.Start <= timeline.EndTime || input.End <= timeline.EndTime))
                {
                    throw new ValidationException(Error.UsedTimeRange);
                }
            }

            var sqlR = new InspectionRoutesRepository(_logger);

            if (input.Id != 0)
            {
                return(await sqlR.Update(input));
            }
            return(await sqlR.Add(input));
        }
        public async Task <InspectionRoute> Update(InspectionRoute inspectionRoute)
        {
            using (var conn = new SqlConnection(AppSettings.ConnectionString))
            {
                var sql = new InspectionRoutesSql();
                await conn.ExecuteAsync(sql.Update(inspectionRoute.RouteId, inspectionRoute.Start, inspectionRoute.End, (int?)inspectionRoute.CheckListType, inspectionRoute.Id));

                return(await ById(inspectionRoute.Id));
            }
        }
        public async Task <InspectionRoute> Add(InspectionRoute inspectionOnRoute)
        {
            using (var conn = new SqlConnection(AppSettings.ConnectionString))
            {
                var sql = new InspectionRoutesSql();
                var id  = await conn.QueryFirstOrDefaultAsync <int>(sql.Add(inspectionOnRoute.RouteId, inspectionOnRoute.Start, inspectionOnRoute.End, (int?)inspectionOnRoute.CheckListType));

                return(await ById(id));
            }
        }
Esempio n. 4
0
        public async Task <JsonResult> AddOrUpdate([FromBody] InspectionRoute input)
        {
            await CheckPermission();

            var timeLineTimeStart = DateTime.MinValue.AddHours(3);

            if (input.Start < timeLineTimeStart && input.End > timeLineTimeStart)
            {
                throw new ValidationException(Error.IncorrectCorrectTimeRange);
            }
            var service = new ScheduleCycleService(_logger, _mapper);

            return(Json(await service.AddOrUpdateInspectionOnRoute(input)));
        }