예제 #1
0
        public async Task <ExhibitionDomainModel> GetExhibitionByIdAsync(int id)
        {
            var data = await _exhibitionRepository.GetByIdAsync(id);

            if (data == null)
            {
                return(null);
            }

            ExhibitionDomainModel result;

            var exhibits = await _exhibitsRepository.GetAllExhibitsForSpecificExhibitions(id);

            var exhibitsList = new List <ExhibitDomainModel>();

            if (exhibits == null)
            {
                result = new ExhibitionDomainModel
                {
                    ExhibitionId     = data.ExhibitionId,
                    ExhibitionName   = data.ExhibitionName,
                    AuditoriumId     = data.AuditoriumId,
                    TypeOfExhibition = data.TypeOfExhibition,
                    StartTime        = data.StartTime,
                    EndTime          = data.EndTime,
                    Picture          = data.Picture,
                    Description      = data.Description,
                    Exhibits         = null
                };
                return(result);
            }
            else
            {
                foreach (var exhibit in exhibits)
                {
                    exhibitsList.Add(new ExhibitDomainModel
                    {
                        Name         = exhibit.ExhibitName,
                        PicturePath  = exhibit.PicturePath,
                        Year         = exhibit.Year,
                        AuditoriumId = exhibit.AuditoriumId,
                        ExhibitId    = exhibit.ExhibitId,
                        ExhibitionId = exhibit.ExhibitionId
                    });
                }
                result = new ExhibitionDomainModel
                {
                    ExhibitionId     = data.ExhibitionId,
                    ExhibitionName   = data.ExhibitionName,
                    AuditoriumId     = data.AuditoriumId,
                    TypeOfExhibition = data.TypeOfExhibition,
                    StartTime        = data.StartTime,
                    EndTime          = data.EndTime,
                    Picture          = data.Picture,
                    Description      = data.Description,
                    Exhibits         = exhibitsList
                };
            }
            return(result);
        }
예제 #2
0
        public async Task <IEnumerable <ExhibitionDomainModel> > GetCurrentExhibitions()
        {
            var data = await _exhibitionRepository.GetAll();

            if (data == null)
            {
                return(null);
            }

            List <ExhibitionDomainModel> list = new List <ExhibitionDomainModel>();

            ExhibitionDomainModel exhibitionModel;

            foreach (var item in data)
            {
                exhibitionModel = new ExhibitionDomainModel
                {
                    ExhibitionId     = item.ExhibitionId,
                    ExhibitionName   = item.ExhibitionName,
                    AuditoriumId     = item.AuditoriumId,
                    TypeOfExhibition = item.TypeOfExhibition,
                    StartTime        = item.StartTime,
                    About            = item.About,
                    EndTime          = item.EndTime,
                    Picture          = item.Picture
                };
                if ((item.StartTime < DateTime.Now) && (item.EndTime > DateTime.Now))
                {
                    list.Add(exhibitionModel);
                }
            }
            return(list);
        }
예제 #3
0
        public async Task <ExhibitionResultModel> UpdateExhibition(ExhibitionDomainModel updateExhibition)
        {
            var data = await _exhibitionRepository.GetByIdAsync(updateExhibition.ExhibitionId);

            ExhibitionEntity exhibition = new ExhibitionEntity
            {
                ExhibitionId     = updateExhibition.ExhibitionId,
                AuditoriumId     = updateExhibition.AuditoriumId,
                ExhibitionName   = updateExhibition.ExhibitionName,
                TypeOfExhibition = updateExhibition.TypeOfExhibition,
                StartTime        = updateExhibition.StartTime,
                EndTime          = updateExhibition.EndTime
            };


            var exhibitionUpdate = _exhibitionRepository.Update(exhibition);

            if (exhibitionUpdate == null)
            {
                return(new ExhibitionResultModel
                {
                    IsSuccessful = false,
                    ErrorMessage = Messages.EXHIBITION_UPDATE_ERROR,
                    Exhibition = null
                });
            }

            _exhibitionRepository.Save();


            ExhibitionResultModel result = new ExhibitionResultModel
            {
                IsSuccessful = true,
                ErrorMessage = null,
                Exhibition   = new ExhibitionDomainModel
                {
                    ExhibitionId     = exhibitionUpdate.ExhibitionId,
                    AuditoriumId     = exhibitionUpdate.AuditoriumId,
                    ExhibitionName   = exhibitionUpdate.ExhibitionName,
                    TypeOfExhibition = exhibitionUpdate.TypeOfExhibition,
                    StartTime        = exhibitionUpdate.StartTime,
                    EndTime          = exhibitionUpdate.EndTime,
                }
            };

            return(result);
        }
예제 #4
0
        public async Task <ExhibitionResultModel> CreateExhibition(ExhibitionDomainModel exhibitionModel)
        {
            ExhibitionEntity newExhibition = new ExhibitionEntity
            {
                ExhibitionId     = exhibitionModel.ExhibitionId,
                ExhibitionName   = exhibitionModel.ExhibitionName,
                AuditoriumId     = exhibitionModel.AuditoriumId,
                TypeOfExhibition = exhibitionModel.TypeOfExhibition,
                StartTime        = exhibitionModel.StartTime,
                EndTime          = exhibitionModel.EndTime
            };
            bool auditorium        = false;
            var  listOfAuditoriums = await _auditoriumRepository.GetAll();

            foreach (var item in listOfAuditoriums)
            {
                if (item.AuditoriumId == exhibitionModel.AuditoriumId)
                {
                    auditorium = true;
                }
                ;
            }
            if (auditorium == false)
            {
                return(new ExhibitionResultModel
                {
                    IsSuccessful = false,
                    ErrorMessage = Messages.AUDITORIUM_WITH_THIS_ID_DOES_NOT_EXIST,
                    Exhibition = null
                });
            }
            if (exhibitionModel.StartTime < DateTime.Now || exhibitionModel.EndTime < DateTime.Now || exhibitionModel.EndTime < exhibitionModel.StartTime)
            {
                return(new ExhibitionResultModel
                {
                    IsSuccessful = false,
                    ErrorMessage = Messages.START_MUST_BE_IN_THE_FUTURE,
                    Exhibition = null
                });
            }
            var exhibition = _exhibitionRepository.Insert(newExhibition);

            if (exhibition == null)
            {
                return(new ExhibitionResultModel
                {
                    IsSuccessful = false,
                    ErrorMessage = Messages.EXHIBITION_WITH_THIS_ID_ALREADY_EXISTS,
                    Exhibition = null
                });
            }

            ExhibitionResultModel result = new ExhibitionResultModel
            {
                IsSuccessful = true,
                ErrorMessage = null,
                Exhibition   = new ExhibitionDomainModel
                {
                    ExhibitionId     = exhibition.ExhibitionId,
                    ExhibitionName   = exhibition.ExhibitionName,
                    AuditoriumId     = exhibition.AuditoriumId,
                    TypeOfExhibition = exhibition.TypeOfExhibition,
                    StartTime        = exhibition.StartTime,
                    EndTime          = exhibition.EndTime
                }
            };

            return(result);
        }