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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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(); }