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