public void DeleteByFileIdAndSourceId(Guid? sourceId, Guid? fileId)
        {
            using (var context = new GeneralModelContainer())
            {
                var sourcemapping = GetByFileIdAndSourceId2(sourceId, fileId).FirstOrDefault();

                if (sourcemapping != null)
                {
                    context.SourceMappings.Remove(sourcemapping);
                    context.SaveChanges();
                }
            }
        }
        public void DeleteByMappingId(int mappingId)
        {
            using (var context = new GeneralModelContainer())
            {
                var sourcemapping = context.SourceMappings.FirstOrDefault(sm => sm.MappingId == mappingId);

                if (sourcemapping != null)
                {
                    context.SourceMappings.Remove(sourcemapping);
                    context.SaveChanges();
                }
            }
        }
示例#3
0
        public void DeleteSource2(Guid sourceId)
        {
            using (var context = new GeneralModelContainer())
            {
                var source = context.Sources.FirstOrDefault(o => o.SourceId == sourceId);

                if (source == null) return;

                context.Sources.Remove(source);

                context.SaveChanges();
            }
        }
示例#4
0
        public void DeleteParishs(List<Guid> parishIds)
        {
            using (var context = new GeneralModelContainer())
            {
                var customer = context.Parishs.Where(c => parishIds.Contains(c.ParishId) && c != null).ToList();

                foreach (var parish in customer)
                {
                    context.Parishs.Remove(parish);
                    context.SaveChanges();
                }
            }
        }
        public void DeleteRelationMapping(int relationMappingId)
        {
            var relMap = GetRelationsByType2(relationMappingId).FirstOrDefault();

            if (relMap == null) return;

            using (var context = new GeneralModelContainer())
            {

                context.Relations.Remove(relMap);

                context.SaveChanges();
            }
        }
        public void DeleteMarriageTemp2(Guid marriageId)
        {
            using (var context = new GeneralModelContainer())
            {

                var marriage = context.Marriages.FirstOrDefault(m => m.Marriage_Id == marriageId);

                if (marriage != null)
                {
                    marriage.IsDeleted = true;
                    context.SaveChanges();
                }

            }
        }
示例#7
0
        public void Delete(Guid deathBirthRecId)
        {
            using (var context = new GeneralModelContainer())
            {

                var person = context.Persons.FirstOrDefault(o => o.Person_id == deathBirthRecId);

                if (person != null)
                {
                    person.IsDeleted = true;
                    context.SaveChanges();
                }

            }
        }
        public void DeleteByMapTypeIdAndSourceId(Guid sourceId, int mapTypeId)
        {
            using (var context = new GeneralModelContainer())
            {
                var sourcemapping = GetBySourceIdAndMapTypeId2(sourceId, mapTypeId).FirstOrDefault();

                if (sourcemapping != null)
                {
                    context.SourceMappings.Remove(sourcemapping);

                    context.SaveChanges();
                }

            }

            //  Adapter.DeleteBySourceIdAndMapTypeId(sourceId, mapTypeId);
        }
示例#9
0
        public Guid AddParish(string parishName, string parishNotes, 
            string deposited, string parentParish, int startYear, string parishCounty, int endYear, decimal parishX, decimal parishY)
        {
            Guid parishId = Guid.NewGuid();

            parishName = parishName.Trim();
            parentParish = parentParish.Trim();

            using (var context = new GeneralModelContainer())
            {
                var parishs =
                    context.Parishs.Where(
                        o =>
                            o.ParishName.ToLower().Contains(parishName) &&
                            o.ParishRegistersDeposited.ToLower().Contains(deposited.ToLower()));

                if (!parishs.Any())
                {
                    var parish = new Parish
                    {
                        ParishId = parishId,
                        ParentParish = parentParish,
                        ParishCounty = parishCounty,
                        ParishEndYear = endYear,
                        ParishName = parishName,
                        ParishNotes = parishNotes,
                        ParishRegistersDeposited = deposited,
                        ParishStartYear = startYear,
                        ParishX = parishX,
                        ParishY = parishY
                    };

                    context.Parishs.Add(parish);
                }
                else
                {
                    parishId = parishs.First().ParishId;
                }

                context.SaveChanges();

                return parishId;
            }
        }
        public void DeleteSourceTypes(List<int> sourceTypeIds)
        {
            using (var context = new GeneralModelContainer())
            {
                var st = context.SourceTypes.ToList();

                foreach (
                    var record in
                        sourceTypeIds.Select(
                            sourceTypeId =>
                                st.FirstOrDefault(o => o.SourceTypeId == sourceTypeId))
                            .Where(record => record != null))
                {
                    context.SourceTypes.Remove(record);
                }

                context.SaveChanges();
            }
        }
示例#11
0
        public int AddLog(LogDto log)
        {
            using (var context = new GeneralModelContainer())
            {
                var mylog = new Log
                {
                    LogData = log.LogData,
                    LogDate = log.LogDate,
                    LogType = log.LogType,
                    LogException = log.LogException,
                    LogSource = log.LogSource,
                    LogStackTrace = log.LogStackTrace
                };

                context.Log.Add(mylog);

                context.SaveChanges();

                return mylog.LogId;
            }
        }
        public void DeleteWitnessesForMarriage(Guid marriageId)
        {
            using (var context = new GeneralModelContainer())
            {
                foreach (
                    var mmw in
                        context.MarriageMapWitness.Where(m => m.Marriages.Marriage_Id == marriageId).ToList())
                {
                    context.MarriageMapWitness.Remove(mmw);

                    if (mmw.Persons != null)
                    {
                        if (
                            context.MarriageMapWitness.Count(o => o.Persons.Person_id == mmw.Persons.Person_id) ==
                            0)
                            context.Persons.Remove(mmw.Persons);
                    }
                }

                context.SaveChanges();
            }
        }
示例#13
0
        public Guid AddFile2(string description, string filePath, int userId, string thumbPath)
        {
            using (var context = new GeneralModelContainer())
            {
                var file = new EntityModel.File
                {
                    FileContent = "",
                    FileDate = DateTime.Today,
                    FileDescription = description,
                    FileEntryAdded = DateTime.Today,
                    FileLocation = filePath,
                    FilerUserAdded = userId,
                    FileThumbLocation = thumbPath,
                    FiletId = Guid.NewGuid()
                };

                context.Files.Add(file);

                context.SaveChanges();

                return file.FiletId;
            }
        }
        public int? InsertSourceMappingParish2(Guid sourceMappingParishId, Guid sourceMappingSourceId, int? userId)
        {
            using (var context = new GeneralModelContainer())
            {
                var smp = new SourceMappingParish();

                var source = context.Sources.FirstOrDefault(o => o.SourceId == sourceMappingSourceId);
                var parish = context.Parishs.FirstOrDefault(o => o.ParishId == sourceMappingParishId);

                if (source == null || parish == null) return smp.SourceMappingParishsRowId;

                smp.Parish = parish;
                smp.Source = source;
                smp.SourceMappingDateAdded = DateTime.Today;
                smp.SourceMappingUser = userId;

                context.SourceMappingParishs.Add(smp);

                context.SaveChanges();

                return smp.SourceMappingParishsRowId;
            }
        }
示例#15
0
        public Guid AddRecord(BatchDto batchDto)
        {
            using (var context = new GeneralModelContainer())
            {
                var newBatch = new BatchLog
                {
                    BatchId = batchDto.BatchId,
                    Id = batchDto.Id,
                    PersonId = batchDto.PersonId,
                    MarriageId = batchDto.MarriageId,
                    SourceId = batchDto.SourceId,
                    ParishId = batchDto.ParishId,
                    TimeRun = batchDto.TimeRun,
                    IsDeleted = batchDto.IsDeleted,
                    Ref = batchDto.Ref
                };

                context.BatchLog.Add(newBatch);

                context.SaveChanges();

                return newBatch.Id;
            }
        }
        public void WriteFilesIdsToSource(Guid sourceId, List<Guid> fileIdList, int userId)
        {
            using (var context = new GeneralModelContainer())
            {
                //    SourceDal sourceBll = new SourceDal();
                var copyList = fileIdList;

                // if there are no selected sources and there are some in the source table
                // then delete them from the database
                //  other wise just delete the missing entries
                // we dont want to perform any unnessecary writes to the db if we can help it
                // so check if there is already a record if there is remove it from the list
                // of records that need to be written

                foreach (var sRow in GetSourceMappingsWithFiles(sourceId))
                {
                    if (!copyList.Contains(sRow.File.FiletId) || copyList.Count == 0)
                    {
                        SourceMapping sourceMapping =
                            context.SourceMappings.FirstOrDefault(sm => sm.MappingId == sRow.MappingId);

                        if (sourceMapping != null)
                        {
                            context.SourceMappings.Remove(sourceMapping);
                        }
                    }
                    else
                    {
                        copyList.Remove(sRow.File.FiletId);
                    }
                }

                context.SaveChanges();

                foreach (var fileTypeId in copyList)
                {
                    Insert(sourceId, fileTypeId, null, userId, null, DateTime.Today.ToShortDateString(), null);
                }
            }
        }
示例#17
0
        public Guid InsertSource(SourceDto sourceAjaxDto)
        {
            var source = new Source
            {
                SourceDescription = sourceAjaxDto.SourceDesc,
                OriginalLocation = sourceAjaxDto.OriginalLocation,
                IsCopyHeld = sourceAjaxDto.IsCopyHeld,
                IsViewed = sourceAjaxDto.IsViewed,
                IsThackrayFound = sourceAjaxDto.IsThackrayFound,
                UserId = 0,
                SourceDate = sourceAjaxDto.SourceDateStr.ParseToValidYear(),
                SourceDateTo = sourceAjaxDto.SourceDateStrTo.ParseToValidYear(),
                SourceDateStr = sourceAjaxDto.SourceDateStr,
                SourceDateStrTo = sourceAjaxDto.SourceDateStrTo,
                SourceRef = sourceAjaxDto.SourceRef,
                SourceFileCount = sourceAjaxDto.SourceFileCount,
                SourceNotes = sourceAjaxDto.SourceNotes,
                SourceId = (sourceAjaxDto.SourceId == Guid.Empty ? Guid.NewGuid() : sourceAjaxDto.SourceId ),
                VirtualLocation = sourceAjaxDto.VirtualLocation,
                DateAdded = DateTime.Today
            };

            using (var context = new GeneralModelContainer())
            {

                context.Sources.Add(source);

                context.SaveChanges();
            }

            return source.SourceId;
        }
        public void WriteFilesToSource(Guid sourceId, List<ServiceFile> fileIdList, int userId)
        {
            // if there are no selected sources and there are some in the source table
            // then delete them from the database
            //  other wise just delete the missing entries
            // we dont want to perform any unnessecary writes to the db if we can help it
            // so check if there is already a record if there is remove it from the list
            // of records that need to be written

            // ok so do the deletions to start with

            using (var context = new GeneralModelContainer())
            {

                var deletionList =
                    fileIdList.Where(p => p.FileDescription == "" && p.FileLocation == "")
                        .Select(p => p.FileId)
                        .ToList();

                //foreach (var sourceMapping in GetSourceMappingsWithFiles(sourceId)
                //    .Where(sRow => deletionList.Contains(sRow.File.FiletId))
                //    .Select(sRow => context.SourceMappings.FirstOrDefault(sm => sm.MappingId == sRow.MappingId))
                //    .Where(s => s != null))
                //{
                //    context.SourceMappings.Remove(sourceMapping);
                //}

                foreach (var sourceMapping in GetSourceMappingsWithFiles(sourceId).Where(sRow => deletionList.Contains(sRow.File.FiletId)))
                {
                    var smap = context.SourceMappings.FirstOrDefault(sm => sm.MappingId == sourceMapping.MappingId);

                    if(smap!=null)
                        context.SourceMappings.Remove(smap);
                }

                context.SaveChanges();

                foreach (
                    var file in
                        deletionList.Select(guid => context.Files.First(p => p.FiletId == guid))
                            .Where(file => file != null))
                {
                    context.Files.Remove(file);
                }

                context.SaveChanges();

                // do edits

                var newFiles = new List<File>();

                foreach (var guid in fileIdList.Where(p => p.FileDescription != "" && p.FileLocation != ""))
                {
                    var edittingFile = context.Files.FirstOrDefault(f => f.FiletId == guid.FileId);

                    if (edittingFile != null)
                    {
                        edittingFile.FileDescription = guid.FileDescription;
                        edittingFile.FileLocation = guid.FileLocation;
                    }
                    else
                    {
                        var newFile = new File
                        {
                            FiletId = guid.FileId,
                            FileDescription = guid.FileDescription,
                            FileLocation = guid.FileLocation
                        };

                        newFiles.Add(newFile);

                        context.Files.Add(newFile);

                    }

                }

                context.SaveChanges();

                foreach (var fileTypeId in newFiles)
                {
                    Insert(sourceId, fileTypeId.FiletId, null, userId, null, DateTime.Today.ToShortDateString(), null);
                }

                context.SaveChanges();
            }
        }
        public void InsertWitnessesForMarriage(Guid marriageId, IList<MarriageWitness> persons)
        {
            using (var context = new GeneralModelContainer())
            {
                Marriage mToUpDate = context.Marriages.FirstOrDefault(m => m.Marriage_Id == marriageId);

                DeleteWitnessesForMarriage(marriageId);

                foreach (var dupePerson in persons.RemoveDuplicateReferences())
                {
                    _personDal.Delete(dupePerson.Person.PersonId);

                }

                foreach (var personDto in persons)
                {
                    var person = context.Persons.FirstOrDefault(p => p.Person_id == personDto.Person.PersonId);

                    if (person != null)
                        context.MarriageMapWitness.Add(new MarriageMapWitness
                        {
                            Persons = person,
                            Marriages = mToUpDate,
                            WitnessNote = personDto.Description
                        });
                }

                context.SaveChanges();
            }
        }
示例#20
0
        public void UpdateMarriage(ServiceMarriage serviceMarriage)
        {
            using (var context = new GeneralModelContainer())
            {

                context.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);

                var marriage = context.Marriages.FirstOrDefault(m => m.Marriage_Id == serviceMarriage.MarriageId);

                if (marriage != null)
                {
                    marriage.MaleCName = serviceMarriage.MaleCName;
                    marriage.MaleSName = serviceMarriage.MaleSName;
                    marriage.MaleLocation = serviceMarriage.MaleLocation;
                    marriage.MaleInfo = serviceMarriage.MaleNotes;
                    marriage.FemaleId = Guid.Empty;
                    marriage.FemaleCName = serviceMarriage.FemaleCName;
                    marriage.FemaleSName = serviceMarriage.FemaleSName;
                    marriage.FemaleLocation = serviceMarriage.FemaleLocation;
                    marriage.FemaleInfo = serviceMarriage.FemaleNotes;
                    marriage.Date = serviceMarriage.MarriageDate;
                    marriage.MarriageLocation = serviceMarriage.MarriageLocation;
                    marriage.YearIntVal = serviceMarriage.MarriageDate.ParseToValidYear();
                    marriage.MarriageCounty = serviceMarriage.LocationCounty;
                    marriage.Source = serviceMarriage.SourceDescription;
                    marriage.IsLicence = serviceMarriage.IsLicense;
                    marriage.IsBanns = serviceMarriage.IsBanns;
                    marriage.MaleIsKnownWidower = serviceMarriage.IsWidower;
                    marriage.FemaleIsKnownWidow = serviceMarriage.IsWidow;
                    marriage.FemaleOccupation = serviceMarriage.FemaleOccupation;
                    marriage.MaleOccupation = serviceMarriage.MaleOccupation;
                    marriage.MarriageLocationId = serviceMarriage.LocationId.ToGuid();
                    marriage.MaleLocationId = serviceMarriage.MaleLocationId.ToGuid();
                    marriage.FemaleLocationId = serviceMarriage.FemaleLocationId.ToGuid();
                    marriage.MaleBirthYear = serviceMarriage.MaleBirthYear;
                    marriage.FemaleBirthYear = serviceMarriage.FemaleBirthYear;

                    context.SaveChanges();
                }
            }
        }
示例#21
0
        public void UpdateMarriageUniqRef(Guid marriageId,
            Guid uniqueRef,
            int totalEvents,
            int eventPriority)
        {
            using (var context = new GeneralModelContainer())
            {

                var marriage = context.Marriages.FirstOrDefault(m => m.Marriage_Id == marriageId);

                if (marriage == null) return;

                marriage.UniqueRef = uniqueRef;
                marriage.TotalEvents = totalEvents;
                marriage.EventPriority = eventPriority;

                context.SaveChanges();
            }
        }
示例#22
0
        public string SwapSpouses(List<Guid> marriageIds)
        {
            using (var context = new GeneralModelContainer())
            {

                foreach (Guid marriageId in marriageIds)
                {
                    var result = context.Marriages.FirstOrDefault(m => m.Marriage_Id == marriageId);

                    if (result != null)
                    {
                        var oCname = result.MaleCName;
                        var oSname = result.MaleSName;

                        result.MaleCName = result.FemaleCName;
                        result.MaleSName = result.FemaleSName;

                        result.FemaleCName = oCname;
                        result.FemaleSName = oSname;

                        //  ModelContainer.Marriages.Add(result);

                        context.SaveChanges();

                    }
                }

                return "Success";
            }
        }
        public void WriteParishsToSource(Guid sourceRecordId, List<Guid> parishIdList, int userId)
        {
            using (var context = new GeneralModelContainer())
            {
                var copyList = parishIdList.ToList();

                // return ModelContainer.SourceMappingParishs.Where(o => o.Source.SourceId == sourceId);

                foreach (var sRow in context.SourceMappingParishs.Where(o => o.Source.SourceId == sourceRecordId) )
                {
                    if (!copyList.Contains(sRow.Parish.ParishId) || copyList.Count == 0)
                    {
                        SourceMappingParish sourceMapping =
                            context.SourceMappingParishs.FirstOrDefault(
                                sm => sm.SourceMappingParishsRowId == sRow.SourceMappingParishsRowId);

                        if (sourceMapping != null)
                        {
                            context.SourceMappingParishs.Remove(sourceMapping);
                        }
                    }
                    else
                    {
                        copyList.Remove(sRow.Parish.ParishId);
                    }
                }

                context.SaveChanges();

                foreach (Guid parishId in copyList)
                {
                    _sourceMappingParishsDal.InsertSourceMappingParish2(parishId, sourceRecordId, userId);
                }
            }
        }
示例#24
0
        public void MergeMarriages(Guid marriageToMergeIntoId, Guid marriageToMergeId)
        {
            using (var context = new GeneralModelContainer())
            {
                var m1 = context.Marriages.FirstOrDefault(m => m.Marriage_Id == marriageToMergeIntoId);

                var m2 = context.Marriages.FirstOrDefault(m => m.Marriage_Id == marriageToMergeId);

                m1.MergeInto(m2);

                context.SaveChanges();
            }
        }
示例#25
0
        public Guid InsertMarriage(ServiceMarriage sm)
        {
            using (var context = new GeneralModelContainer())
            {

                var marriage = new Marriage();

                if (sm.MarriageId == Guid.Empty) marriage.Marriage_Id = Guid.NewGuid();

                marriage.MaleCName = sm.MaleCName;
                marriage.MaleSName = sm.MaleSName;
                marriage.MaleLocation = sm.MaleLocation;
                marriage.MaleInfo = sm.MaleNotes;
                marriage.FemaleId = Guid.Empty;
                marriage.FemaleCName = sm.FemaleCName;
                marriage.FemaleSName = sm.FemaleSName;
                marriage.FemaleLocation = sm.FemaleLocation;
                marriage.FemaleInfo = sm.FemaleNotes;
                marriage.Date = sm.MarriageDate;
                marriage.MarriageLocation = sm.MarriageLocation;
                marriage.YearIntVal = sm.MarriageDate.ParseToValidYear();
                marriage.MarriageCounty = sm.LocationCounty;
                marriage.Source = sm.SourceDescription;
                marriage.IsLicence = sm.IsLicense;
                marriage.IsBanns = sm.IsBanns;
                marriage.MaleIsKnownWidower = sm.IsWidower;
                marriage.FemaleIsKnownWidow = sm.IsWidow;
                marriage.FemaleOccupation = sm.FemaleOccupation;
                marriage.MaleOccupation = sm.MaleOccupation;
                marriage.MarriageLocationId = sm.LocationId.ToGuid();
                marriage.MaleLocationId = Guid.Empty;
                marriage.FemaleLocationId = Guid.Empty;
                marriage.UserId = sm.UserId;
                marriage.MaleBirthYear = sm.MaleBirthYear;
                marriage.FemaleBirthYear = sm.FemaleBirthYear;
                marriage.UniqueRef = sm.UniqueRef.ToGuid() == Guid.Empty ? Guid.NewGuid() : sm.UniqueRef.ToGuid();
                marriage.TotalEvents = sm.TotalEvents.ToInt32();
                marriage.EventPriority = sm.Priority.ToInt32();
                marriage.Marriage_Id = System.Guid.NewGuid();
                marriage.IsDeleted = false;
                marriage.MaleId = Guid.Empty;

                marriage.IsComposite = false;
                marriage.DateAdded = DateTime.Today;
                marriage.DateLastEdit = DateTime.Today;

                context.Marriages.Add(marriage);

                context.SaveChanges();

                //ModelContainer.Detach(_marriage);

                return marriage.Marriage_Id;

            }
        }
        // get files for source
        // get mappings for source which are a file
        public void DeleteFilesForSource(Guid sourceId)
        {
            using (var context = new GeneralModelContainer())
            {
                var mappingIds =
                    context.SourceMappings.Where(sm => sm.Source.SourceId == sourceId && sm.File != null)
                        .Select(s => s.MappingId)
                        .ToList();

                var fileIds =
                    context.SourceMappings.Where(sm => sm.Source.SourceId == sourceId && sm.File != null)
                        .Select(s => s.File.FiletId)
                        .ToList();

                foreach (int mapping in mappingIds)
                {
                    var sourcemapping = context.SourceMappings.FirstOrDefault(sm => sm.MappingId == mapping);

                    if (sourcemapping != null)
                    {
                        context.SourceMappings.Remove(sourcemapping);

                    }
                }

                fileIds.ForEach(f =>
                {
                    var file = context.Files.FirstOrDefault(fi => fi.FiletId == f);
                    if (file != null)
                        context.Files.Remove(file);
                });

                context.SaveChanges();

            }
        }
        public void DeleteBySourceIdMarriageIdOrPersonId(Guid? sourceId, Guid? recordId)
        {
            using (var context = new GeneralModelContainer())
            {
                var sourcemapping = GetByPersonOrMarriageIdAndSourceId2(sourceId, recordId).FirstOrDefault();

                if (sourcemapping != null)
                {
                    // because source mappings are added and removed in disconnected state from the db
                    // and the source mapping might not be in the entity model by this point BUT it could still be in the db
                    if (context.SourceMappings.Count(sm => sm.MappingId == sourcemapping.MappingId) > 0)
                        context.SourceMappings.Remove(sourcemapping);

                    context.SaveChanges();

                }
            }
        }
示例#28
0
        public void UpdateSource(SourceDto sourceAjaxDto)
        {
            using (var context = new GeneralModelContainer())
            {
                var source = context.Sources.FirstOrDefault(o => o.SourceId == sourceAjaxDto.SourceId);

                if (source == null) return;

                source.SourceDescription = sourceAjaxDto.SourceDesc;
                source.OriginalLocation = sourceAjaxDto.OriginalLocation;
                source.IsCopyHeld = sourceAjaxDto.IsCopyHeld;
                source.IsViewed = sourceAjaxDto.IsViewed;
                source.IsThackrayFound = sourceAjaxDto.IsThackrayFound;
                source.UserId = 1;
                source.SourceDate = sourceAjaxDto.SourceDateStr.ParseToValidYear();
                source.SourceDateTo = sourceAjaxDto.SourceDateStrTo.ParseToValidYear();
                source.SourceDateStr = sourceAjaxDto.SourceDateStr;
                source.SourceDateStrTo = sourceAjaxDto.SourceDateStrTo;
                source.SourceRef = sourceAjaxDto.SourceRef;
                source.SourceFileCount = sourceAjaxDto.SourceFileCount;
                source.SourceNotes = sourceAjaxDto.SourceNotes;
                source.VirtualLocation = (!string.IsNullOrEmpty(sourceAjaxDto.VirtualLocation)
                    ? sourceAjaxDto.VirtualLocation
                    : source.VirtualLocation); // dont overwrite this unless we have a value
                source.DateAdded = DateTime.Today;

                context.SaveChanges();
            }
        }
示例#29
0
        public void UpdateSourceVirtualLocation(Guid sourceId, string virtualLocation)
        {
            using (var context = new GeneralModelContainer())
            {
                var source = context.Sources.FirstOrDefault(o => o.SourceId == sourceId);

                if (source == null) return;

                source.VirtualLocation = virtualLocation;

                context.SaveChanges();

            }
        }
        public void WriteSourceTypesToSource(Guid sourceId, List<int> sourceTypeIdList, int userId)
        {
            using (var context = new GeneralModelContainer())
            {

                List<int> copyList = sourceTypeIdList.ToList();

                foreach (var sRow in GetBySourceTypesBySourceId2(sourceId))
                {
                    if (!copyList.Contains(sRow.SourceType.SourceTypeId) || copyList.Count == 0)
                    {
                        SourceMapping sourceMapping =
                            context.SourceMappings.FirstOrDefault(sm => sm.MappingId == sRow.MappingId);

                        if (sourceMapping != null)
                        {
                            context.SourceMappings.Remove(sourceMapping);
                        }
                    }
                    else
                    {
                        copyList.Remove(sRow.SourceType.SourceTypeId);
                    }
                }

                context.SaveChanges();

                foreach (int sourceTypeId in copyList)
                {
                    Insert(sourceId, null, null, userId, null, DateTime.Today.ToShortDateString(), sourceTypeId);
                }

            }
        }