public void UpdatePromoterInfo(PromoteResponse promoteInfo)
        {
            _promoterLogin.Text = $"@{promoteInfo.Bot.Author}";

            if (!string.IsNullOrEmpty(promoteInfo.Bot.Avatar))
            {
                Picasso.With(_context).Load(promoteInfo.Bot.Avatar.GetImageProxy(_promoterAvatar.LayoutParameters.Width, _promoterAvatar.LayoutParameters.Height))
                .Placeholder(Resource.Drawable.ic_holder)
                .NoFade()
                .Priority(Picasso.Priority.Normal)
                .Into(_promoterAvatar, null, null);
            }
            else
            {
                Picasso.With(_context).Load(Resource.Drawable.ic_holder).Into(_promoterAvatar);
            }

            var expectedUpvoteTime = promoteInfo.ExpectedUpvoteTime;
            var timer = new Timer(obj =>
            {
                expectedUpvoteTime = expectedUpvoteTime.Subtract(TimeSpan.FromSeconds(1));

                _handler.Post(new Runnable(() =>
                {
                    _expectedUpvoteTimeLabel.Text = expectedUpvoteTime.ToString().Length > 8 ?
                                                    expectedUpvoteTime.ToString().Remove(8) :
                                                    expectedUpvoteTime.ToString();
                }));
            }, null, DateTime.Now.Add(expectedUpvoteTime).Millisecond, (int)TimeSpan.FromSeconds(1).TotalMilliseconds);
        }
Example #2
0
        public PromoteResponse PromoteStudents(PromoteRequest request)
        {
            PromoteResponse response = new PromoteResponse();

            using (var client = new SqlConnection("Data Source = db-mssql.pjwstk.edu.pl; Initial Catalog = s16796; Integrated Security = True"))
            {
                using (var command = new SqlCommand())
                {
                    command.Connection = client;
                    client.Open();
                    command.CommandText = "EXEC Promote @Studies, @Semester";
                    command.Parameters.AddWithValue("Studies", request.Studies);
                    command.Parameters.AddWithValue("Semester", request.Semester);
                    var dr = command.ExecuteReader();
                    if (dr.Read())
                    {
                        response.IdEnrollment = Convert.ToInt32(dr["IdEnrollment"].ToString());
                        response.IdStudy      = Convert.ToInt32(dr["IdStudy"].ToString());
                        response.Semester     = Convert.ToInt32(dr["Semester"].ToString());
                        response.StartDate    = Convert.ToDateTime(dr["StartDate"].ToString());

                        return(response);
                    }
                    else
                    {
                        throw new ArgumentException("Promotion failed, wrong arguments");
                    }
                }
            }
        }
        public async Task <OperationResult <PromoteResponse> > FindPromoteBot(PromoteRequest promoteModel)
        {
            if (!EnableRead)
            {
                return(null);
            }

            var botsResponse = await HttpClient.Get <List <BidBot> >("https://steembottracker.net/bid_bots", CancellationToken.None);

            if (!botsResponse.IsSuccess)
            {
                return(new OperationResult <PromoteResponse>(botsResponse.Exception));
            }

            var priceResponse = await HttpClient.Get <Price>("https://postpromoter.net/api/prices", CancellationToken.None);

            if (!priceResponse.IsSuccess)
            {
                return(new OperationResult <PromoteResponse>(priceResponse.Exception));
            }

            var steemToUSD = priceResponse.Result.SteemPrice;
            var sbdToUSD   = priceResponse.Result.SbdPrice;

            var votersModel = new VotersModel(promoteModel.PostToPromote.Url, VotersType.Likes);
            var usersResult = await GetPostVoters(votersModel, CancellationToken.None);

            if (!usersResult.IsSuccess)
            {
                return(new OperationResult <PromoteResponse>(usersResult.Exception));
            }


            var postAge = (DateTime.Now - promoteModel.PostToPromote.Created).TotalDays;

            var suitableBot = botsResponse.Result
                              .Where(x => CheckBot(x, postAge, promoteModel, steemToUSD, sbdToUSD, usersResult.Result.Results))
                              .OrderBy(x => x.Next)
                              .FirstOrDefault();

            if (suitableBot == null)
            {
                return(new OperationResult <PromoteResponse>(new ValidationException()));
            }

            var response = await SearchUser(new SearchWithQueryModel(suitableBot.Name), CancellationToken.None);

            if (!response.IsSuccess)
            {
                return(new OperationResult <PromoteResponse>(response.Exception));
            }

            var promoteResponse = new PromoteResponse(response.Result.Results.First(), TimeSpan.FromMilliseconds(suitableBot.Next.Value));

            return(new OperationResult <PromoteResponse>(promoteResponse));
        }
Example #4
0
        public PromoteResponse PromoteStudent(int semester, string studies)
        {
            using (var client = new SqlConnection(@"Data Source=db-mssql;Initial Catalog=2019SBD;Integrated Security=True"))
                using (var com = new SqlCommand())

                {
                    client.Open();
                    com.Connection = client;


                    com.CommandText = "SELECT * FROM Enrollment, Studies WHERE Enrollment.IdStudy=Studies.IdStudy AND Enrollment.semester=@semester AND Studies.Name=@Studies";
                    com.Parameters.AddWithValue("semester", semester);
                    com.Parameters.AddWithValue("Studies", studies);

                    var dr = com.ExecuteReader();

                    if (!dr.Read())
                    {
                        return(null);
                    }

                    dr.Close();

                    com.CommandType = System.Data.CommandType.StoredProcedure;

                    com.CommandText = "Promotion";
                    com.ExecuteNonQuery();


                    com.CommandType = System.Data.CommandType.Text;


                    com.CommandText = "select * from Enrollment,Studies where Enrollment.IdStudy=Studies.IdStudy and Name=@Studies and Semester=@semestern";

                    com.Parameters.AddWithValue("semestern", semester + 1);

                    var dr2 = com.ExecuteReader();


                    dr2.Read();

                    var enrollment = new Enrollment();

                    enrollment.IdStudy  = (int)dr2["IdStudy"];
                    enrollment.Semester = (int)dr2["Semester"];
                    var StartDate = dr2["StartDate"];
                    enrollment.StartDate = DateTime.Now;

                    var promotion = new PromoteResponse(enrollment);

                    return(promotion);
                }
        }
Example #5
0
        public async Task <IActionResult> Promote(PromoteRequest request)
        {
            var serviceStatus = await _service.PromoteStudents(request.Semester, request.Studies);

            var response = new PromoteResponse()
            {
                Semester = request.Semester + 1
            };

            if (serviceStatus.IsSucceeded)
            {
                return(NotFound());
            }

            return(Created(string.Empty, response));
        }
        private async Task FindPromoter()
        {
            var mainHolder = _adapter.MainHolder;

            if (string.IsNullOrEmpty(mainHolder.AmountEdit))
            {
                _adapter.MainHolder.ShowError($"{AppSettings.LocalizationManager.GetText(LocalizationKeys.MinBid)} {Constants.MinBid}");
                return;
            }

            if (!double.TryParse(mainHolder.AmountEdit, NumberStyles.Any, CultureInfo.InvariantCulture, out var amountEdit))
            {
                return;
            }

            if (amountEdit > mainHolder.Balances?.Find(x => x.CurrencyType == mainHolder.PickedCoin).Value)
            {
                mainHolder.ShowError(AppSettings.LocalizationManager.GetText(LocalizationKeys.NotEnoughBalance));
                return;
            }

            if (string.IsNullOrEmpty(mainHolder.AmountEdit) || !IsValidAmount(mainHolder.AmountEdit))
            {
                return;
            }

            _promoteRequest = new PromoteRequest
            {
                Amount        = amountEdit,
                CurrencyType  = mainHolder.PickedCoin,
                PostToPromote = _post
            };

            var promoter = await _presenter.FindPromoteBot(_promoteRequest);

            if (promoter.IsSuccess)
            {
                _promoterResult = promoter.Result;
                _adapter.FoundHolder.UpdatePromoterInfo(_promoterResult);
                _pager.SetCurrentItem((int)Pages.Promoter, true);
            }
            else
            {
                _adapter.MessageHolder.SetupMessage(AppSettings.LocalizationManager.GetText(LocalizationKeys.PromoterNotFound), string.Empty);
                ShowResultMessage(AppSettings.LocalizationManager.GetText(LocalizationKeys.PromoterSearchResult), AppSettings.LocalizationManager.GetText(LocalizationKeys.SearchAgain), false);
            }
        }
Example #7
0
        public PromoteResponse PromoteStudents(PromoteRequest request, s16796Context context)
        {
            PromoteResponse response = new PromoteResponse();

            var paramStudies  = request.Studies;
            var paramSemester = request.Semester;

            var result = context.Enrollment.FromSqlRaw("exec Promote {0}, {1}", paramStudies, paramSemester).AsEnumerable().FirstOrDefault();

            if (result != null)
            {
                response.IdEnrollment = result.IdEnrollment;
                response.IdStudy      = result.IdStudy;
                response.Semester     = result.Semester;
                response.StartDate    = result.StartDate;
                return(response);
            }
            else
            {
                throw new ArgumentException("Promotion failed, wrong arguments");
            }
        }
Example #8
0
        public PromoteResponse PromoteStudents(PromoteRequest request)
        {
            //using (var client = new SqlConnection("Data Source=db-mssql.pjwstk.edu.pl;Initial Catalog=2019SBD;Integrated Security=True"))
            //using (var com = new SqlCommand())

            {
                //client.Open();
                //com.Connection = client;


                var result = _context.Enrollment.Join(_context.Studies, p => p.IdStudy, v => v.IdStudy, (p, v) => new { p, v }).Where(d => d.p.Semester == request.Semester && d.v.Name.Equals(request.Studies)).FirstOrDefault();

                //com.CommandText = "select * from Enrollment,Studies where Enrollment.IdStudy=Studies.IdStudy and Enrollment.semester=@semester and Studies.Name=@Studies";
                //com.Parameters.AddWithValue("semester", request.Semester);
                //com.Parameters.AddWithValue("Studies", request.Studies);

                //var dr = com.ExecuteReader();

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

                //dr.Close();



                var name     = new SqlParameter("@name", request.Studies);
                var semester = new SqlParameter("@semester", request.Semester);

                var list1 = _context.Database.ExecuteSqlCommand("exec Promotion @name, @semester", name, semester);

                //com.CommandType = System.Data.CommandType.StoredProcedure;

                //com.CommandText = "Promotion";
                //com.ExecuteNonQuery();


                //com.CommandType = System.Data.CommandType.Text;

                var result3 = _context.Enrollment.Join(_context.Studies, p => p.IdStudy, v => v.IdStudy, (p, v) => new { p, v }).Where(d => d.p.Semester == request.Semester + 1 && d.v.Name.Equals(request.Studies)).FirstOrDefault();


                //com.CommandText = "select * from Enrollment,Studies where Enrollment.IdStudy=Studies.IdStudy and Name=@Studies and Semester=@semestern";

                //com.Parameters.AddWithValue("semestern", request.Semester + 1);

                //var dr2 = com.ExecuteReader();


                //dr2.Read();

                var enrollment = new Models.Enrollment();

                enrollment.IdStudy  = result3.p.IdStudy;
                enrollment.semester = result3.p.Semester;
                var StartDate = result3.p.StartDate;
                enrollment.StartDate = StartDate.ToString();

                var promotion = new PromoteResponse(enrollment);

                return(promotion);
            }
        }