public async Task <IActionResult> InsertScheduleAsync(InsertOptimizationRequestViewModel dto)
        {
            var Status = false;
            var Result = new Res();

            await Task.Run(() => _optimizationEngineServices.Insert(dto, out Status));

            BackgroundJob.Schedule(() => _optimizationEngine.OptimizeDeliveries(_optimizationEngineServices.GetIdLasted().Id),
                                   TimeSpan.FromMinutes(dto.OptimizeAfterMinuntes));

            if (Status)
            {
                Result.Status     = true;
                Result.Message    = MesssageContant.SAVE_SUCCESS;
                Result.StatusCode = HttpStatusCode.OK;
            }
            else
            {
                Result.Data       = null;
                Result.Status     = Status;
                Result.Message    = MesssageContant.SAVE_FAIL;
                Result.StatusCode = HttpStatusCode.InternalServerError;
            }
            return(Ok(Result));
        }
Beispiel #2
0
        public async Task <IActionResult> InsertAsync(InsertOptimizationRequestViewModel dto)
        {
            var Status = false;
            var Result = new Res();

            await Task.Run(() => _optimizationEngineServices.Insert(dto, out Status));

            var cronType = GetCronFromRecurringType(dto.RecurringSchedule);

            RecurringJob.AddOrUpdate(_optimizationEngineServices.GetIdLasted().Id.ToString(),
                                     () => _optimizationEngine.OptimizeDeliveries(_optimizationEngineServices.GetIdLasted().Id), cronType);

            if (Status)
            {
                Result.Status     = true;
                Result.Message    = MesssageContant.SAVE_SUCCESS;
                Result.StatusCode = HttpStatusCode.OK;
            }
            else
            {
                Result.Data       = null;
                Result.Status     = Status;
                Result.Message    = MesssageContant.SAVE_FAIL;
                Result.StatusCode = HttpStatusCode.InternalServerError;
            }
            return(Ok(Result));
        }
Beispiel #3
0
 public void Insert(InsertOptimizationRequestViewModel dto, out bool Status)
 {
     try
     {
         var model = new OptimizationRequest
         {
             RequestDate           = dto.RequestDate,
             ScheduleDate          = dto.ScheduleDate,
             StatusId              = dto.StatusId,
             OptimizeAfterMinuntes = dto.OptimizeAfterMinuntes,
             OptimizeDateTime      = dto.OptimizeDateTime,
             RecurringSchedule     = dto.RecurringSchedule
         };
         _uow.OptimizationRequests.Add(model);
         _uow.SaveChanges();
         Status = true;
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }