internal static PreservationScheduleArchive Convert(this BibDSModel.PreservationScheduleArchive sch, int level = 0, int deeplevel = 5) { if (sch == null || level > deeplevel) { return(null); } return(new PreservationScheduleArchive { IdArchive = sch.IdArchive, IdSchedule = sch.IdPreservationSchedule, CreatedDate = sch.CreatedDate, ModifiedDate = sch.ModifiedDate, Schedule = (sch.PreservationSchedule != null) ? sch.PreservationSchedule.Convert(level + 1, deeplevel) : null, Archive = (sch.Archive != null) ? sch.Archive.Convert(level + 1, deeplevel) : null, }); }
public Obj.PreservationScheduleArchive AddPreservationScheduleArchive(Obj.PreservationScheduleArchive toAdd) { if (toAdd == null) { throw new Exception("AddPreservationScheduleArchive - nessun parametro passato"); } if (toAdd.Archive == null) { if (toAdd.IdArchive == Guid.Empty) { throw new Exception("AddPreservationScheduleArchive - archivio non passato"); } toAdd.Archive = new Obj.DocumentArchive(toAdd.IdArchive); } if (toAdd.Schedule == null) { if (toAdd.IdSchedule == Guid.Empty) { throw new Exception("AddPreservationScheduleArchive - nessuno scadenziario passato"); } toAdd.Schedule = new Obj.PreservationSchedule { IdPreservationSchedule = toAdd.IdSchedule }; } Obj.PreservationScheduleArchive retval = null; Guid idArchive = toAdd.Archive.IdArchive, idSchedule = toAdd.Schedule.IdPreservationSchedule; try { var entity = db.PreservationScheduleArchive .SingleOrDefault <Model.PreservationScheduleArchive>(x => x.IdArchive == idArchive); if (entity != null) { entity.IdPreservationSchedule = idSchedule; entity.IsActive = true; entity.ModifiedDate = DateTime.Now; } else { entity = new Model.PreservationScheduleArchive { IdArchive = idArchive, IdPreservationSchedule = idSchedule, CreatedDate = DateTime.Now, IsActive = true, }; db.PreservationScheduleArchive.AddObject(entity); } if (requireSave) { db.SaveChanges(); } retval = entity.Convert(DEFAULT_LEVEL, DEFAULT_DEEP_LEVEL); } finally { Dispose(); } return(retval); }