private void DeleteAllAffiliationsAndChildren(Snapshot_WorksWriter writer)
        {
            var allAffiliations = _snapshotAffiliationRepository.GetAllAffiliationsForWriterSnapshotId(writer.SnapshotWorksWriterId);

            if (allAffiliations != null)
            {
                foreach (var affilation in allAffiliations)
                {
                    var baseAffiliations =
                        _affiliationBaseRepository.GetAllAffiliationBasesForAffilationId(
                            affilation.SnapshotAffiliationId);
                    if (baseAffiliations != null)
                    {
                        foreach (var baseAffiliation in baseAffiliations)
                        {
                            _affiliationBaseRepository.DeleteAffilationByAffiliationBaseSnapshotId(
                                baseAffiliation.SnapshotAffiliationBaseId);
                        }
                    }

                    _snapshotAffiliationRepository.DeleteAffilationByAffiliationSnapshotId(
                        affilation.SnapshotAffiliationId);
                }
            }
        }
 public Snapshot_WorksWriter SaveWorksWriter(Snapshot_WorksWriter worksWriter)
 {
     using (var context = new DataContext())
     {
         context.Snapshot_WorksWriters.Add(worksWriter);
         context.SaveChanges();
         return(worksWriter);
     }
 }
        private List <Snapshot_WorksWriter> CastToSnapshotWorksWriter(List <WorksWriter> writers, int workTrackId)
        {
            var snapshotList = new List <Snapshot_WorksWriter>();

            if (writers != null)
            {
                foreach (var writer in writers)
                {
                    var snapshot = new Snapshot_WorksWriter();
                    //cast writer base!
                    snapshot.CloneWorksTrackId = workTrackId;
                    if (writer.Contribution != null)
                    {
                        snapshot.Contribution = (int)writer.Contribution;
                    }
                    if (writer.OriginalPublishers != null)
                    {
                        snapshot.OriginalPublishers = CastOriginalPublishersToSnapshot(writer.OriginalPublishers,
                                                                                       writer.CaeNumber);
                    }
                    if (writer.LicenseProductRecordingWriter != null)
                    {
                        // snapshot.LicenseProductRecordingWriter =  TURNED OFF ***
                        //     CastToLicensProductRecordingSnapshot(writer.LicenseProductRecordingWriter, writer.CaeNumber);
                    }
                    snapshot.ParentSongDuration = writer.ParentSongDuration;
                    snapshot.CloneCaeNumber     = writer.CaeNumber;
                    snapshot.IpCode             = writer.IpCode;
                    snapshot.FullName           = writer.FullName;
                    snapshot.Controlled         = writer.Controlled;
                    snapshot.CapacityCode       = writer.CapacityCode;
                    snapshot.Capacity           = writer.Capacity;
                    snapshot.MechanicalCollectablePercentage = writer.MechanicalCollectablePercentage.ToString();
                    snapshot.MechanicalOwnershipPercentage   = writer.MechanicalOwnershipPercentage.ToString();
                    snapshot.Affiliation = CastToAffiliationSnapshot(writer.Affiliation, writer.CaeNumber);
                    if (writer.KnownAs != null)
                    {
                        snapshot.KnownAs = CastToKnownAs(writer.KnownAs, writer.CaeNumber);
                    }
                    snapshotList.Add(snapshot);
                }
            }
            return(snapshotList);
        }
        private void DeleteOriginalPublisherSnapshotAndChildern(Snapshot_WorksWriter writer)
        {
            var allOriginalPublishers =
                _snapshotOriginalPublisherRepository.GetAllOriginalPublishersForSnapshotWriterId(writer.SnapshotWorksWriterId);

            foreach (var originalPublisher in allOriginalPublishers)
            {
                var affiliationList =
                    _originalPublisherAffiliationRepository.GetAllOriginalPublisherAffiliationsByOriginalBuplisherId(
                        originalPublisher.SnapshotOriginalPublisherId);
                if (affiliationList != null)
                {
                    foreach (var affiliation in affiliationList)
                    {
                        var affiliationBases =
                            _originalPubAffiliationBaseRepository.GetAllOriginalPubAffiliationBasesByAffilationId(
                                affiliation.SnapshotOriginalPublisherAffiliationId);
                        if (affiliationBases != null)
                        {
                            foreach (var affiliationBase in affiliationBases)
                            {
                                _originalPubAffiliationBaseRepository.DeletePhoneBySnapshotPhoneId(
                                    affiliationBase.SnapshotOriginalPubAffiliationBaseId);
                            }
                        }
                        _originalPublisherAffiliationRepository.DeleteOriginalPublisherSnapshotById(
                            affiliation.SnapshotOriginalPublisherAffiliationId);
                    }
                }

                var admins =
                    _snapshotAdministratorRepository.GetAllAdministratorsForOriginalPublisherId(
                        originalPublisher.SnapshotOriginalPublisherId);

                if (admins != null)
                {
                    foreach (var admin in admins)
                    {
                        var adminAffiliations =
                            _adminAffiliationRepository.GetAllAdminAffiliationsForSnapshotAdminId(
                                admin.SnapshotAdministratorId);
                        if (adminAffiliations != null)
                        {
                            foreach (var adminAffiliation in adminAffiliations)
                            {
                                var adminAFfiliationBase =
                                    _adminAffiliationBaseRepository.GetAllAdminAffiliationBaseForSnapshotAdminId(
                                        adminAffiliation.SnapshotAdminAffiliationId);
                                if (adminAFfiliationBase != null)
                                {
                                    foreach (var adminBase in adminAFfiliationBase)
                                    {
                                        _adminAffiliationBaseRepository.DeleteConfigurationSnapshot(
                                            adminBase.SnapshotAdminAffiliationBaseId);
                                    }
                                }
                                _adminAffiliationRepository.DeletePhoneBySnapshotPhoneId(
                                    adminAffiliation.SnapshotAdminAffiliationId);
                            }
                        }
                        _snapshotAdministratorRepository.DeleteConfigurationSnapshot(admin.SnapshotAdministratorId);
                    }
                }

                var knownAsList =
                    _snapshotKnownAsRepository.GetAllKnownAsForWriterCaeCode(
                        originalPublisher.CloneCaeNumber);
                if (knownAsList != null)
                {
                    foreach (var knownAs in knownAsList)
                    {
                        _snapshotKnownAsRepository.DeleteKnownAsBySnapshotId(knownAs.SnapshotKnownAsId);
                    }
                }
                _snapshotOriginalPublisherRepository.DeleteOriginalPublisherSnapshotBySnapshotId(
                    originalPublisher.SnapshotOriginalPublisherId);
            }
        }