コード例 #1
0
        public async Task <IEnumerable <EventBusinessModel> > GetPublishedEvents(Contracts.Data.FilterEventOptions filter, string filterText = null, string dateCulture = null)
        {
            try
            {
                BusinessLogic.Services.FilterEventOptions bllFilter;
                if (Enum.IsDefined(typeof(BusinessLogic.Services.FilterEventOptions), filter.ToString()))
                {
                    bllFilter = (BusinessLogic.Services.FilterEventOptions)filter;
                }
                else
                {
                    var fault = new ServiceValidationFaultDetails {
                        Message = "Filter parsing error"
                    };
                    var errorMessage = "Picked filter option is not defined";
                    throw new FaultException <ServiceValidationFaultDetails>(fault, errorMessage);
                }

                var events = await _eventService.GetPublishedEvents(bllFilter, filterText, dateCulture);

                return(events.Select(x => EventModelBllToEventModelContract(x)));
            }
            catch (EventException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Get published list of events error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #2
0
        private static void ThrowSeatListException()
        {
            var fault = new ServiceValidationFaultDetails {
                Message = "Event area mapping error"
            };
            var reason = "Invalid state of event area. Seat list is empty";

            throw new FaultException <ServiceValidationFaultDetails>(fault, reason);
        }
コード例 #3
0
 public SeatLocker(ICartService cartService)
 {
     _cartService = cartService;
     if (!int.TryParse(ConfigurationManager.AppSettings["SeatLockTime"], out _lockPeriod))
     {
         var fault = new ServiceValidationFaultDetails {
             Message = "Hangfire initialization error"
         };
         throw new FaultException <ServiceValidationFaultDetails>(fault, "Seat lock period is not valid");
     }
 }
コード例 #4
0
 public async Task Update(Event entity)
 {
     try
     {
         await _eventService.Update(EventParser.ToEventDto(entity));
     }
     catch (EventException exception)
     {
         var fault = new ServiceValidationFaultDetails {
             Message = "Update event error"
         };
         throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
     }
 }
コード例 #5
0
 public async Task Delete(int id)
 {
     try
     {
         await _eventService.Delete(id);
     }
     catch (EventException exception)
     {
         var fault = new ServiceValidationFaultDetails {
             Message = "Delete event error"
         };
         throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
     }
 }
コード例 #6
0
 public async Task DeleteSeatFromCart(int seatId)
 {
     try
     {
         await _seatLocker.UnlockSeat(seatId);
     }
     catch (OrderException exception)
     {
         var fault = new ServiceValidationFaultDetails {
             Message = "Delete seat from cart error"
         };
         throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
     }
 }
コード例 #7
0
 public async Task CreateOrder(int userId)
 {
     try
     {
         await _orderService.Create(userId);
     }
     catch (OrderException exception)
     {
         var fault = new ServiceValidationFaultDetails {
             Message = "Create order error"
         };
         throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
     }
 }
コード例 #8
0
 public async Task CancelOrderAndRefund(int orderId)
 {
     try
     {
         await _orderService.CancelOrderAndRefund(orderId);
     }
     catch (OrderException exception)
     {
         var fault = new ServiceValidationFaultDetails {
             Message = "Cancel order error"
         };
         throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
     }
 }
コード例 #9
0
 public async Task AddSeatToCart(int seatId, int userId)
 {
     try
     {
         await _seatLocker.LockSeat(seatId, userId);
     }
     catch (OrderException exception)
     {
         var fault = new ServiceValidationFaultDetails {
             Message = "Add seat to cart error"
         };
         throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
     }
 }
コード例 #10
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);
            }
        }
コード例 #11
0
        public async Task <IEnumerable <OrderBusinessModel> > GetPurchaseHistory(int userId)
        {
            try
            {
                var result = await _orderService.GetPurchaseHistory(userId);

                return(result.Select(x => OrderModelBllToOrderModelContract(x)));
            }
            catch (OrderException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Create order error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #12
0
        public async Task Update(Venue entity)
        {
            try
            {
                var update = VenueParser.ToVenueDto(entity);

                await _venueService.Update(update);
            }
            catch (VenueException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Update venue error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #13
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);
            }
        }
コード例 #14
0
        public async Task <IEnumerable <Layout> > ToList()
        {
            try
            {
                var result = await _layoutService.GetList();

                return(result.Select(x => LayoutParser.ToLayoutContract(x)));
            }
            catch (LayoutException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Getting of list of layouts error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #15
0
        public async Task <IEnumerable <SeatBusinessModel> > GetOrderedSeats(int userId)
        {
            try
            {
                var result = await _cartService.GetOrderedSeats(userId);

                return(result.Select(x => SeatModelBllToSeatModelContract(x)));
            }
            catch (OrderException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Get ordered seats error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #16
0
        public async Task <EventArea> Get(int id)
        {
            try
            {
                var result = await _eventAreaService.Get(id);

                return(EventAreaParser.ToEventAreaContract(result));
            }
            catch (EventAreaException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Get event area error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #17
0
        public async Task <IEnumerable <Event> > ToList()
        {
            try
            {
                var result = await _eventService.GetList();

                return(result.Select(x => EventParser.ToEventContract(x)));
            }
            catch (EventException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Get list of events error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #18
0
        public async Task <int> Create(Venue entity)
        {
            try
            {
                var add = VenueParser.ToVenueDto(entity);
                await _venueService.Create(add);

                return(add.Id);
            }
            catch (VenueException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Create venue error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #19
0
        public async Task <int> Create(Event entity)
        {
            try
            {
                var add = EventParser.ToEventDto(entity);
                await _eventService.Create(add);

                return(add.Id);
            }
            catch (EventException exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Create event error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, exception.Message);
            }
        }
コード例 #20
0
        public void Send(object sender, OrderEventArgs args)
        {
            var smtp = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
            var pickupDirectoryPath = smtp.SpecifiedPickupDirectory.PickupDirectoryLocation;

            try
            {
                if (!Directory.Exists(pickupDirectoryPath))
                {
                    Directory.CreateDirectory(pickupDirectoryPath);
                }
            }
            catch (Exception)
            {
                var fault = new ServiceValidationFaultDetails {
                    Message = "Email service error"
                };
                throw new FaultException <ServiceValidationFaultDetails>(fault, "Path of specifiedpickupdirectory is invalid");
            }

            string subject = string.Empty;
            string body    = string.Empty;

            switch (args.User.Culture)
            {
            case "ru":
                ruEmail(out subject, out body, args.OrderModel);
                break;

            case "be":
                beEmail(out subject, out body, args.OrderModel);
                break;

            case "en":
                enEmail(out subject, out body, args.OrderModel);
                break;
            }

            //Fetching Email Body Text from EmailTemplate File.
            string path = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath +
                          "Services\\EmailService\\EmailTemplate\\Order.html";
            StreamReader str      = new StreamReader(path);
            string       mailText = str.ReadToEnd();

            str.Close();

            string imagePath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath +
                               "Services\\EmailService\\EmailTemplate\\purchase.jpg";
            LinkedResource image = new LinkedResource(imagePath);

            image.ContentId = Guid.NewGuid().ToString();
            mailText        = mailText.Replace("[info]", body);
            mailText        = mailText.Replace("[image]", "cid:" + image.ContentId);
            AlternateView alternateView = AlternateView.CreateAlternateViewFromString(mailText, null, MediaTypeNames.Text.Html);

            alternateView.LinkedResources.Add(image);

            var message = new MailMessage
            {
                Subject         = subject,
                HeadersEncoding = Encoding.UTF8,
                SubjectEncoding = Encoding.UTF8,
                IsBodyHtml      = true
            };

            message.AlternateViews.Add(alternateView);
            message.From = new MailAddress(smtp.Network.UserName, "the cheapest tickets");
            message.To.Add(new MailAddress(args.User.Email));

            var smtpClient = new SmtpClient();

            smtpClient.Host = smtp.Network.Host;
            smtpClient.Port = smtp.Network.Port;
            NetworkCredential networkCred = new NetworkCredential(smtp.Network.UserName, smtp.Network.Password);

            smtpClient.UseDefaultCredentials = true;
            smtpClient.Credentials           = networkCred;
            smtpClient.Send(message);
        }