public DTO.BookingMng.EditFormData GetData(int id, int clientID, int supplierID, string season, out Library.DTO.Notification notification) { DTO.BookingMng.EditFormData data = new DTO.BookingMng.EditFormData(); data.Data = new DTO.BookingMng.Booking(); data.Data.Details = new List <DTO.BookingMng.LoadingPlan>(); data.DeliveryTerms = new List <DTO.Support.DeliveryTerm>(); data.Forwarders = new List <DTO.Support.Forwarder>(); data.MovementTerms = new List <DTO.Support.MovementTerm>(); data.OceanFreights = new List <DTO.Support.StringCollectionItem>(); data.PODs = new List <DTO.Support.POD>(); data.POLs = new List <DTO.Support.POL>(); notification = new Library.DTO.Notification() { Type = Library.DTO.NotificationType.Success }; //try to get data try { using (BookingMngEntities context = CreateContext()) { if (id == 0) { data.Data.ClientID = clientID; data.Data.ClientUD = supportFactory.GetClient().FirstOrDefault(o => o.ClientID == clientID).ClientUD; data.Data.SupplierID = supplierID; data.Data.SupplierNM = supportFactory.GetSupplier().FirstOrDefault(o => o.SupplierID == supplierID).SupplierNM; data.Data.Season = season; } else { data.Data = converter.DB2DTO_Booking(context.BookingMng_Booking_View.Include("BookingMng_LoadingPlan_View").FirstOrDefault(o => o.BookingID == id)); data.Data.ConcurrencyFlag_String = Convert.ToBase64String(data.Data.ConcurrencyFlag); } } data.PODs = supportFactory.GetPOD().ToList(); data.POLs = supportFactory.GetPOL().ToList(); data.Forwarders = supportFactory.GetForwarder().ToList(); data.DeliveryTerms = supportFactory.GetDeliveryTerm().ToList(); data.MovementTerms = supportFactory.GetMovementTerm().ToList(); data.OceanFreights = supportFactory.GetOceanFreight().ToList(); } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; if (ex.InnerException != null && !string.IsNullOrEmpty(ex.InnerException.Message)) { notification.DetailMessage.Add(ex.InnerException.Message); } } return(data); }