Example #1
0
        private Location GetPermanentLocation(CreatePieceModel model)
        {
            Location location = null;

            if (model.PermanentLocationId >= 0)
            {
                location = repository.GetLocation(model.PermanentLocationId.Value);
            }
            else if (model.PermanentLocationId < 0 && !string.IsNullOrWhiteSpace(model.PermanentLocationName))
            {
                Country country = null;
                if (model.PermanentLocationCountryId.HasValue)
                {
                    country = repository.GetCountry(model.PermanentLocationCountryId.Value);
                }

                location = locationFactory.Create(
                    model.PermanentLocationName,
                    model.PermanentLocationAddress1,
                    model.PermanentLocationAddress2,
                    model.PermanentLocationCity,
                    model.PermanentLocationState,
                    model.PermanentLocationZipCode,
                    country,
                    model.MuseumId);

                repository.AddLocation(location);
            }

            return(location);
        }
Example #2
0
        private Acquisition GetAcquisition(CreatePieceModel model)
        {
            Acquisition acquisition = null;

            if (model.AcquisitionId >= 0)
            {
                acquisition = repository.GetAcquisition(model.AcquisitionId.Value);
            }
            else if (model.AcquisitionId < 0 && (model.AcquisitionDate.HasValue ||
                                                 (model.AcquisitionFundingSourceId > 0 ||
                                                  (model.AcquisitionFundingSourceId < 0 && !string.IsNullOrWhiteSpace(model.FundingSourceName)))))
            {
                acquisition = acquisitionFactory.Create(
                    model.AcquisitionDate,
                    model.AcquisitionCost,
                    model.AcquisitionTerms,
                    GetFundingSource(model),
                    GetPieceSource(model),
                    model.MuseumId);

                repository.AddAcquisition(acquisition);
            }

            return(acquisition);
        }
Example #3
0
        private Artist GetArtist(CreatePieceModel model)
        {
            Artist artist = null;

            if (model.ArtistId >= 0)
            {
                artist = repository.GetArtist(model.ArtistId.Value);
            }
            else if (model.ArtistId < 0 && !string.IsNullOrWhiteSpace(model.ArtistName))
            {
                Country artistCountryOfOrigin = null;
                if (model.ArtistCountryOfOriginId.HasValue)
                {
                    artistCountryOfOrigin = repository.GetCountry(model.ArtistCountryOfOriginId.Value);
                }

                artist = artistFactory.Create(
                    model.ArtistName,
                    model.ArtistAlsoKnownAs,
                    model.ArtistCityOfOrigin,
                    model.ArtistStateOfOrigin,
                    artistCountryOfOrigin,
                    model.ArtistBirthDate,
                    model.ArtistDeathDate,
                    model.MuseumId);

                repository.AddArtist(artist);
            }

            return(artist);
        }
Example #4
0
        private Collection GetCollection(CreatePieceModel model)
        {
            Collection collection = null;

            if (model.CollectionId >= 0)
            {
                collection = repository.GetCollection(model.CollectionId.Value);
            }
            else if (model.CollectionId < 0 && !string.IsNullOrWhiteSpace(model.CollectionName))
            {
                collection = repository.GetCollections().SingleOrDefault(g => g.Name == model.CollectionName && g.MuseumId == model.MuseumId);
                if (collection == null)
                {
                    collection = collectionFactory.Create(model.CollectionName, model.MuseumId);

                    repository.AddCollection(collection);
                }
            }

            return(collection);
        }
Example #5
0
        private PieceSource GetPieceSource(CreatePieceModel model)
        {
            PieceSource pieceSource = null;

            if (model.AcquisitionPieceSourceId >= 0)
            {
                pieceSource = repository.GetPieceSource(model.AcquisitionPieceSourceId.Value);
            }
            else if (model.AcquisitionPieceSourceId < 0 && !string.IsNullOrWhiteSpace(model.PieceSourceName))
            {
                pieceSource = repository.GetPieceSources().SingleOrDefault(f => f.Name == model.PieceSourceName && f.MuseumId == model.MuseumId);
                if (pieceSource == null)
                {
                    pieceSource = pieceSourceFactory.Create(model.PieceSourceName, model.MuseumId);

                    repository.AddPieceSource(pieceSource);
                }
            }

            return(pieceSource);
        }
Example #6
0
        private FundingSource GetFundingSource(CreatePieceModel model)
        {
            FundingSource fundingSource = null;

            if (model.AcquisitionFundingSourceId >= 0)
            {
                fundingSource = repository.GetFundingSource(model.AcquisitionFundingSourceId.Value);
            }
            else if (model.AcquisitionFundingSourceId < 0 && !string.IsNullOrWhiteSpace(model.FundingSourceName))
            {
                fundingSource = repository.GetFundingSources().SingleOrDefault(f => f.Name == model.FundingSourceName && f.MuseumId == model.MuseumId);
                if (fundingSource == null)
                {
                    fundingSource = fundingSourceFactory.Create(model.FundingSourceName, model.MuseumId);

                    repository.AddFundingSource(fundingSource);
                }
            }

            return(fundingSource);
        }
Example #7
0
        private SubjectMatter GetSubjectMatter(CreatePieceModel model)
        {
            SubjectMatter subjectMatter = null;

            if (model.SubjectMatterId >= 0)
            {
                subjectMatter = repository.GetSubjectMatter(model.SubjectMatterId.Value);
            }
            else if (model.SubjectMatterId < 0 && !string.IsNullOrWhiteSpace(model.SubjectMatterName))
            {
                subjectMatter = repository.GetSubjectMatters().SingleOrDefault(g => g.Name == model.SubjectMatterName && g.MuseumId == model.MuseumId);
                if (subjectMatter == null)
                {
                    subjectMatter = subjectMatterFactory.Create(model.SubjectMatterName, model.MuseumId);

                    repository.AddSubjectMatter(subjectMatter);
                }
            }

            return(subjectMatter);
        }
Example #8
0
        private Subgenre GetSubgenre(CreatePieceModel model)
        {
            Subgenre subgenre = null;

            if (model.SubgenreId >= 0)
            {
                subgenre = repository.GetSubgenre(model.SubgenreId.Value);
            }
            else if (model.SubgenreId < 0 && !string.IsNullOrWhiteSpace(model.SubgenreName))
            {
                subgenre = repository.GetSubgenres().SingleOrDefault(g => g.Name == model.SubgenreName && g.MuseumId == model.MuseumId);
                if (subgenre == null)
                {
                    subgenre = subgenreFactory.Create(model.SubgenreName, model.MuseumId);

                    repository.AddSubgenre(subgenre);
                }
            }

            return(subgenre);
        }
Example #9
0
        private Medium GetMedium(CreatePieceModel model)
        {
            Medium medium = null;

            if (model.MediumId >= 0)
            {
                medium = repository.GetMedium(model.MediumId.Value);
            }
            else if (model.MediumId < 0 && !string.IsNullOrWhiteSpace(model.MediumName))
            {
                medium = repository.GetMedia().SingleOrDefault(m => m.Name == model.MediumName && m.MuseumId == model.MuseumId);
                if (medium == null)
                {
                    medium = mediumFactory.Create(model.MediumName, model.MuseumId);

                    repository.AddMedium(medium);
                }
            }

            return(medium);
        }
Example #10
0
        public void Execute(CreatePieceModel model)
        {
            Country countryOfOrigin = null;

            if (model.CountryOfOriginId.HasValue)
            {
                countryOfOrigin = repository.GetCountry(model.CountryOfOriginId.Value);
            }

            var museum            = repository.GetMuseum(model.MuseumId);
            var unitOfMeasure     = repository.GetUnitOfMeasure(model.UnitOfMeasureId);
            var artist            = GetArtist(model);
            var medium            = GetMedium(model);
            var genre             = GetGenre(model);
            var subgenre          = GetSubgenre(model);
            var subjectMatter     = GetSubjectMatter(model);
            var acquisition       = GetAcquisition(model);
            var currentLocation   = GetCurrentLocation(model);
            var permanentLocation = GetPermanentLocation(model);
            var collection        = GetCollection(model);
            var timeStamp         = dateService.GetCurrentServerTime();

            var piece = pieceFactory.Create(
                ++museum.RecordCount,
                model.Title,
                model.AccessionNumber,
                model.CreationDay,
                model.CreationMonth,
                model.CreationYear,
                countryOfOrigin,
                model.StateOfOrigin,
                model.CityOfOrigin,
                model.Height,
                model.Width,
                model.Depth,
                unitOfMeasure,
                model.EstimatedValue,
                model.Subject,
                model.CopyrightYear,
                model.CopyrightOwner,
                model.InsurancePolicyNumber,
                model.InsuranceExpirationDate,
                model.InsuranceAmount,
                model.InsuranceCarrier,
                model.IsFramed,
                model.IsArchived,
                artist,
                medium,
                genre,
                subgenre,
                subjectMatter,
                acquisition,
                currentLocation,
                permanentLocation,
                collection,
                model.LastModifiedByUserId,
                timeStamp,
                model.MuseumId);

            repository.AddPiece(piece);

            unitOfWork.Save();
        }