Example #1
0
        public override Task Execute(MessageData data)
        {
            var con = (data as SocketMessageData).Connection;

            Flipper.FlipperEngine.Instance.RemoveNonConnection(con);
            return(data.Ok());
        }
        public override Task Execute(MessageData data)
        {
            var args = data.GetAs <Arguments>();

            using (var context = new HypixelContext())
            {
                var user = data.User;

                var subscriptions = context.SubscribeItem.Where(s => s.UserId == user.Id);
                if (!user.HasPremium && subscriptions.Count() >= 3)
                {
                    throw new NoPremiumException("Nonpremium users can only have 3 subscriptions");
                }


                SubscribeEngine.Instance.AddNew(new SubscribeItem()
                {
                    GeneratedAt = DateTime.Now,
                    Price       = args.Price,
                    TopicId     = args.Topic,
                    Type        = args.Type,
                    UserId      = user.Id
                });
            }
            return(data.Ok());
        }
Example #3
0
        public override Task Execute(MessageData data)
        {
            var args = data.GetAs <Params>();
            OrdersGetRequest request = new OrdersGetRequest(args.OrderId);

            if (string.IsNullOrEmpty(clientId))
            {
                throw new CoflnetException("unavailable", "checkout via paypal has not yet been enabled, please contact an admin");
            }
            var client = new PayPalHttpClient(new LiveEnvironment(clientId, clientSecret));

            //3. Call PayPal to get the transaction
            PayPalHttp.HttpResponse response;
            try
            {
                response = client.Execute(request).Result;
            }
            catch (Exception e)
            {
                dev.Logger.Instance.Error(e, "payPalPayment");
                throw new CoflnetException("payment_failed", "The provided orderId has not vaid payment asociated");
            }
            //4. Save the transaction in your database. Implement logic to save transaction to your database for future reference.
            var result = response.Result <Order>();

            Console.WriteLine(JSON.Stringify(result));
            Console.WriteLine("Retrieved Order Status");
            Console.WriteLine("Status: {0}", result.Status);
            Console.WriteLine("Order Id: {0}", result.Id);
            AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown;

            Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value);
            if (result.Status != "COMPLETED")
            {
                throw new CoflnetException("order_incomplete", "The order is not yet completed");
            }

            if (UsedIds.Contains(args.OrderId))
            {
                throw new CoflnetException("payment_timeout", "the provied order id was already used");
            }

            if (DateTime.Parse(result.PurchaseUnits[0].Payments.Captures[0].UpdateTime) < DateTime.Now.Subtract(TimeSpan.FromHours(1)))
            {
                throw new CoflnetException("payment_timeout", "the provied order id is too old, please contact support for manual review");
            }
            var user          = data.User;
            var days          = args.Days;
            var transactionId = result.Id;

            UserService.Instance.SavePurchase(user, days, transactionId);



            UsedIds.Add(args.OrderId);
            FileController.AppendLineAs("purchases", JSON.Stringify(result));
            return(data.Ok());
        }
        public override Task Execute(MessageData data)
        {
            var token = ValidateToken(data.GetAs <string>());

            var id = UserService.Instance.GetOrCreateUser(token.Subject, token.Email);

            data.UserId = id.Id;
            return(data.Ok());
        }
        public override Task Execute(MessageData data)
        {
            var socketData = data as SocketMessageData;

            if (socketData == null)
            {
                throw new CoflnetException("invalid_command", "this command can only be called by a socket connection");
            }
            socketData.Connection.SetConnectionId(data.GetAs <string>());
            return(data.Ok());
        }
Example #6
0
        public async override Task Execute(MessageData data)
        {
            using (var context = new HypixelContext())
            {
                var name = data.GetAs <string>();

                var device = data.User.Devices.Where(d => d.Name == name).FirstOrDefault();
                if (device != null)
                {
                    context.Remove(device);
                }
                await context.SaveChangesAsync();

                await data.Ok();
            }
        }
        public override Task Execute(MessageData data)
        {
            var hit = data.GetAs <Request>();

            if (hit.Type == "player" && hit.Id.Length == 32)
            {
                PlayerSearch.Instance.AddHitFor(hit.Id);
            }
            else
            {
                ItemDetails.Instance.AddHitFor(hit.Id);
            }

            SearchService.Instance.AddPopularSite(hit.Type, hit.Id);
            return(data.Ok());

            TrackingService.Instance.TrackPage($"http://sky.coflnet.com/{hit.Type}/{hit.Id}", $"{hit.Type}/{hit.Id}", data);
            return(Task.CompletedTask);
        }
        public override Task Execute(MessageData data)
        {
            var con = (data as SocketMessageData).Connection;

            try
            {
                if (!data.User.HasPremium)
                {
                    Flipper.FlipperEngine.Instance.AddNonConnection(con, (int)data.mId);
                }
                else
                {
                    Flipper.FlipperEngine.Instance.AddConnection(con, (int)data.mId);
                    Flipper.FlipperEngine.Instance.RemoveNonConnection(con);
                }
            }
            catch (CoflnetException)
            {
                Flipper.FlipperEngine.Instance.AddNonConnection(con, (int)data.mId);
            }
            return(data.Ok());
        }
Example #9
0
 public override Task Execute(MessageData data)
 {
     ReferalService.Instance.WasReferedBy(data.User, data.GetAs <string>());
     return(data.Ok());
 }