public DeleteVesselScheduleResponse Delete(DeleteVesselScheduleRequest request)
 {
     try
     {
         var vesselSchedule = new VesselSchedule { Id = request.Id };
         DataContext.VesselSchedules.Attach(vesselSchedule);
         DataContext.VesselSchedules.Remove(vesselSchedule);
         DataContext.SaveChanges();
         return new DeleteVesselScheduleResponse
         {
             IsSuccess = true,
             Message = "You have been successfully delete this item"
         };
     }
     catch (DbUpdateException e) {
         if (e.InnerException.InnerException.Message.Contains("dbo.NextLoadingSchedules"))
         {
             return new DeleteVesselScheduleResponse
             {
                 IsSuccess = false,
                 Message = "The vessel schedule is being used by next loading schedule"
             };
         }
         return new DeleteVesselScheduleResponse
         {
             IsSuccess = false,
             Message = "An error occured while trying to delete this item"
         };
     }
     catch (InvalidOperationException e)
     {
         return new DeleteVesselScheduleResponse
         {
             IsSuccess = false,
             Message = "An error occured while trying to delete this item"
         };
     }
 }
        public BaseResponse SaveSchedules(int[] ids, DateTime date)
        {
            try
            {
                var derLoadingSchedule = DataContext.DerLoadingSchedules.Include(x => x.VesselSchedules).FirstOrDefault(x => x.Period == date);
                if (derLoadingSchedule != null)
                {
                    foreach (var schedule in derLoadingSchedule.VesselSchedules.ToList())
                    {
                        derLoadingSchedule.VesselSchedules.Remove(schedule);
                    }
                }
                else
                {
                    derLoadingSchedule = new DerLoadingSchedule { Period = date };
                    DataContext.DerLoadingSchedules.Add(derLoadingSchedule);
                }

                foreach (var id in ids)
                {
                    var schedule = DataContext.VesselSchedules.Local.FirstOrDefault(x => x.Id == id);
                    if (schedule == null)
                    {
                        schedule = new VesselSchedule { Id = id };
                        DataContext.VesselSchedules.Attach(schedule);
                    }
                    derLoadingSchedule.VesselSchedules.Add(schedule);
                }

                DataContext.SaveChanges();
                return new BaseResponse
                {
                    IsSuccess = true,
                    Message = "You have been successfully save choosen schedules"
                };
            }
            catch (Exception e)
            {
                return new BaseResponse { Message = e.Message };
            }
        }
Exemple #3
0
 public SaveNLSResponse SaveNLS(SaveNLSRequest request)
 {
     try
     {
         if (request.Id == 0)
         {
             var nls = request.MapTo<NextLoadingSchedule>();
             var vesselSchedule = new VesselSchedule { Id = request.VesselScheduleId };
             DataContext.VesselSchedules.Attach(vesselSchedule);
             nls.VesselSchedule = vesselSchedule;
             DataContext.NextLoadingSchedules.Add(nls);
         }
         else
         {
             var nls = DataContext.NextLoadingSchedules.FirstOrDefault(x => x.Id == request.Id);
             if (nls != null)
             {
                 request.MapPropertiesToInstance<NextLoadingSchedule>(nls);
                 var vesselSchedule = new VesselSchedule { Id = request.VesselScheduleId };
                 DataContext.VesselSchedules.Attach(vesselSchedule);
                 nls.VesselSchedule = vesselSchedule;
             }
         }
         DataContext.SaveChanges();
         return new SaveNLSResponse
         {
             IsSuccess = true,
             Message = "Next Loading Schedule has been saved"
         };
     }
     catch (InvalidOperationException e)
     {
         return new SaveNLSResponse
         {
             IsSuccess = false,
             Message = e.Message
         };
     }
 }
Exemple #4
0
 public SaveNLSResponse SaveNLS(SaveNLSRequest request)
 {
     try
     {
         if (request.Id == 0)
         {
             var nls = request.MapTo<NextLoadingSchedule>();
             var vesselSchedule = new VesselSchedule { Id = request.VesselScheduleId };
             DataContext.VesselSchedules.Attach(vesselSchedule);
             nls.VesselSchedule = vesselSchedule;
             DataContext.NextLoadingSchedules.Add(nls);
         }
         else
         {
             var nls = DataContext.NextLoadingSchedules.FirstOrDefault(x => x.Id == request.Id);
             if (nls != null)
             {
                 request.MapPropertiesToInstance<NextLoadingSchedule>(nls);
                 var vesselSchedule = new VesselSchedule { Id = request.VesselScheduleId };
                 DataContext.VesselSchedules.Attach(vesselSchedule);
                 nls.VesselSchedule = vesselSchedule;
             }
         }
         DataContext.SaveChanges();
         var response = new SaveNLSResponse
         {
             IsSuccess = true,
             Message = "Next Loading Schedule has been saved"
         };
         if (request.DerTransactionDate.HasValue) {
             var nls = DataContext.NextLoadingSchedules.Where(x => x.VesselSchedule.Id == request.VesselScheduleId && x.CreatedAt <= request.DerTransactionDate)
            .OrderByDescending(x => x.CreatedAt).FirstOrDefault();
             if (nls != null) {
                 response.RemarkDate = nls.CreatedAt.ToString("dd-MM-yyyy");
                 response.Remark = nls.Remark;
             }
         }
         return response;
     }
     catch (InvalidOperationException e)
     {
         return new SaveNLSResponse
         {
             IsSuccess = false,
             Message = e.Message
         };
     }
 }