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)); } }
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))); }