Example #1
0
        public async Task <int> AddExhibitToEvent(int eventId, int exhibitId)
        {
            int rs = 0;

            Event evt = _unitOfWork.Repository <Event>().GetById(eventId);

            DateTime dt    = Convert.ToDateTime(DateTime.Now);
            string   s2    = dt.ToString("yyyy-MM-dd");
            DateTime dtnew = Convert.ToDateTime(s2);

            Exhibit exhibit = _unitOfWork.Repository <Exhibit>().GetById(exhibitId);

            ExhibitInEvent exhibitInEvent = new ExhibitInEvent
            {
                ExhibitId  = exhibit.Id,
                EventId    = eventId,
                CreateDate = dtnew,
                Status     = true
            };

            try
            {
                await _unitOfWork.Repository <ExhibitInEvent>().InsertAsync(exhibitInEvent);

                await _unitOfWork.CommitAsync();

                exhibit.Status = (int)ExhibitsStatus.Status.Added;
                _unitOfWork.Repository <Exhibit>().Update(exhibit, exhibit.Id);

                if (evt.Status == (int)EventStatus.Status.New)
                {
                    evt.Status = (int)EventStatus.Status.Waiting;
                    _unitOfWork.Repository <Event>().Update(evt, evt.Id);
                }

                await _unitOfWork.CommitAsync();

                rs = 1;
                return(rs);
            }
            catch (Exception e)
            {
                throw new Exception("Add Exhibit To Event Error!!!");
            }
        }
Example #2
0
        public async Task <int> DeleteExhibitInEvent(int exhibitId)
        {
            int rs = 0;
            //lấy exhibit trong bảng ExhibitInEvent chứa eventId và exhibitId đó
            ExhibitInEvent exhibitInEvent = _unitOfWork.Repository <ExhibitInEvent>().GetAll()
                                            .Where(e => e.Status == true && e.ExhibitId == exhibitId).FirstOrDefault();

            if (exhibitInEvent != null)
            {
                Event evt = _unitOfWork.Repository <Event>().GetAll().Where(e => e.Id == exhibitInEvent.EventId).FirstOrDefault();
                try
                {
                    //Delete row trong bảng ExhibitInEvent
                    _unitOfWork.Repository <ExhibitInEvent>().Delete(exhibitInEvent);

                    //Get exhibit đó ra để set status thành Ready
                    Exhibit exhibit = _unitOfWork.Repository <Exhibit>().GetById(exhibitId);
                    exhibit.Status = (int)ExhibitsStatus.Status.Ready;


                    _unitOfWork.Repository <Exhibit>().Update(exhibit, exhibit.Id);
                    await _unitOfWork.CommitAsync();

                    //check xem event đó nếu k còn chứa exhibit nào thì set status về lại là 0
                    var exhibitInEventList = _unitOfWork.Repository <ExhibitInEvent>().GetAll()
                                             .Where(e => e.Status == true && e.EventId == evt.Id).AsQueryable();

                    if (exhibitInEventList.ToList().Count == 0)
                    {
                        evt.Status = (int)EventStatus.Status.New;
                        _unitOfWork.Repository <Event>().Update(evt, evt.Id);
                    }

                    await _unitOfWork.CommitAsync();

                    rs = 1;
                    return(rs);
                }
                catch (Exception)
                {
                    throw new Exception("Can not delete exhibit in this event!!!");
                }
            }
            return(rs);
        }
Example #3
0
        public String GetTopicOrEventContainExhibit(int exhibitId)
        {
            string         rs = "Hiện vật này không thuộc Chủ đề hay Sự kiện nào!";
            ExhibitInTopic topicContainExhibit = _unitOfWork.Repository <ExhibitInTopic>().GetAll().Where(t => t.ExhibitId == exhibitId && t.Status == true).FirstOrDefault();

            if (topicContainExhibit != null)
            {
                rs = "Hiện vật này đang thuộc về Chủ đề: " + topicContainExhibit.Topic.Name.ToString();
                return(rs.ToString());
            }

            ExhibitInEvent eventContainExhibit = _unitOfWork.Repository <ExhibitInEvent>().GetAll().Where(e => e.ExhibitId == exhibitId && e.Status == true).FirstOrDefault();

            if (eventContainExhibit != null)
            {
                rs = "Hiện vật này đang thuộc về Sự kiện: " + eventContainExhibit.Event.Name.ToString();
                return(rs.ToString());
            }
            return(rs.ToString());
        }