public Snapshot_Composer SaveComposerSnapshot(Snapshot_Composer composerSnapshot)
 {
     using (var context = new DataContext())
     {
         context.Snapshot_Composers.Add(composerSnapshot);
         context.SaveChanges();
         return(composerSnapshot);
     }
 }
        private List <Snapshot_Composer> CastToSnapshotComposers(List <WorksWriter> composers, int workTrackId)
        {
            var snapshotList = new List <Snapshot_Composer>();

            foreach (var writer in composers)
            {
                var snapshot = new Snapshot_Composer();
                //cast writer base!
                snapshot.CloneWorksTrackId = workTrackId;
                if (writer.Contribution != null)
                {
                    snapshot.Contribution = (int)writer.Contribution;
                }
                if (writer.OriginalPublishers != null)
                {
                    snapshot.OriginalPublishers = CastToComposerOriginalPublishers(writer.OriginalPublishers,
                                                                                   writer.CaeNumber);
                }
                snapshot.Affiliation = CastToComposerAffiliations(writer.Affiliation, writer.CaeNumber);
                if (writer.KnownAs != null)
                {
                    snapshot.KnownAs = CastComposerKnownAs(writer.KnownAs, writer.CaeNumber);
                }
                if (writer.LicenseProductRecordingWriter != null)
                {
                    snapshot.LicenseRecordingId = writer.LicenseProductRecordingWriter.LicenseRecordingId;
                }
                snapshot.Controlled         = writer.Controlled;
                snapshot.ParentSongDuration = writer.ParentSongDuration;
                snapshot.CloneCaeNumber     = writer.CaeNumber;
                snapshot.IpCode             = writer.IpCode;
                snapshot.FullName           = writer.FullName;
                snapshot.CapacityCode       = writer.CapacityCode;
                snapshot.Capacity           = writer.Capacity;
                snapshot.MechanicalCollectablePercentage = writer.MechanicalCollectablePercentage.ToString();
                snapshot.MechanicalOwnershipPercentage   = writer.MechanicalOwnershipPercentage.ToString();

                snapshotList.Add(snapshot);
            }
            return(snapshotList);
        }
        public bool DeleteComposerSnapshotByComposer(Snapshot_Composer composerToDelete)
        {
            using (var context = new DataContext())
            {
                var composer =
                    context.Snapshot_Composers
                    .Find(composerToDelete.SnapshotComposerId);

                context.Snapshot_Composers.Attach(composer);
                context.Snapshot_Composers.Remove(composer);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception)
                {
                    return(false);
                }
                return(true);
            }
        }