コード例 #1
0
 private EventBusinessModel EventModelBllToEventModelContract(BusinessLogic.BusinessModels.EventModel from)
 {
     return(new EventBusinessModel
     {
         Areas = from.Areas?.Select(x => EventAreaParser.ToEventAreaContract(x)).ToList(),
         Event = from.Event is null ? null : EventParser.ToEventContract(from.Event),
         IsPublished = from.IsPublished,
         LayoutName = from.LayoutName ?? null,
         Venue = from.Venue is null ? null : VenueParser.ToVenueContract(from.Venue)
     });
コード例 #2
0
 private SeatBusinessModel SeatModelBllToSeatModelContract(BusinessLogic.BusinessModels.SeatModel from)
 {
     return(new SeatBusinessModel
     {
         Seat = EventSeatParser.ToEventSeatContract(from.Seat),
         Area = EventAreaParser.ToEventAreaContract(from.Area),
         Event = EventParser.ToEventContract(from.Event),
         Layout = LayoutParser.ToLayoutContract(from.Layout),
         Venue = VenueParser.ToVenueContract(from.Venue)
     });
 }
コード例 #3
0
        public async Task <IEnumerable <Venue> > ToList()
        {
            try
            {
                var result = await _venueService.GetList();

                return(result.Select(x => VenueParser.ToVenueContract(x)));
            }
            catch (VenueException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Getting of list of venue error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #4
0
        public async Task <Venue> GetFullModel(int id)
        {
            try
            {
                var result = await _venueService.GetFullModel(id);

                return(VenueParser.ToVenueContract(result));
            }
            catch (VenueException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Get venue error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #5
0
        private async Task OnSave(object obj)
        {
            if (Venue is null)
            {
                return;
            }

            Errors = Venue.Validate().ToList();

            if (Errors.Any())
            {
                return;
            }

            var addOrUpdate = VenueParser.ToVenueContract(Venue);

            try
            {
                if (addOrUpdate.Id <= 0)
                {
                    Venue.Id = await _venueService.CreateAsync(addOrUpdate);
                }
                else
                {
                    await _venueService.UpdateAsync(addOrUpdate);

                    Venue.Id = addOrUpdate.Id;
                }

                //update ids of areas, which were update (for large count of seats, venue service deletes areas and inserts it in order to increase performance)
                var venue = _venueService.GetFullModel(Venue.Id);
                Venue = VenueParser.ToVenue(venue);

                _mediator.Raise(VenueManagementViewModel.VenueSavedOperationKey, Venue);
            }
            catch (FaultException <ServiceValidationFaultDetails> exception)
            {
                switch (exception.Message)
                {
                case "Such venue already exists":
                    DisplayError(l10n.VenueView.Errors.VenueNameIsExists);
                    break;

                case "Incorrect state of the venue. The venue must have at least one layout":
                    DisplayError(l10n.VenueView.Errors.VenueHasNoLayouts);
                    break;

                case "Area description isn't unique":
                    DisplayError(l10n.VenueView.Errors.AreaDescriptionUnique);
                    break;

                case "Incorrect state of area. An area must have atleast one seat":
                    DisplayError(l10n.VenueView.Errors.AreaHasNoSeats);
                    break;

                case "Layout description isn't unique":
                    DisplayError(l10n.VenueView.Errors.LayoutDescriptionUnique);
                    break;

                case "Incorrect state of the layout. The layout must have at least one area":
                    DisplayError(l10n.VenueView.Errors.LayoutDescriptionUnique);
                    break;
                }
            }
            catch (FaultException)
            {
                DisplayError(l10n.Shared.Errors.InternalAppError);
            }
        }