public void AddOfferRecord(OfferRecord record)
 {
     if (OfferHistory.Count == _offerRecordsLimit)
     {
         OfferHistory.RemoveAt(0);
     }
     OfferHistory.Add(record);
 }
Esempio n. 2
0
        public ActionResult <GenericResponseModel> NewOffer([FromBody] OfferHistory pOfferHistory)
        {
            var loUserId          = HelperMethods.GetApiUserIdFromToken(HttpContext.User.Identity);
            var loGenericResponse = new GenericResponseModel
            {
                Code   = -1,
                Status = "Fail"
            };

            var loOffer = GetData.GetOfferById(pOfferHistory.offer_uuid.ToString());

            if (loOffer == null)
            {
                loGenericResponse.Message = "Kayıtlı teklif bulunamadı!";
                return(loGenericResponse);
            }

            if (loOffer.price >= pOfferHistory.amount)
            {
                loGenericResponse.Message = "Lütfen güncel tekflinizden daha yüksek bir teklif veriniz.";
                return(loGenericResponse);
            }

            var loAsset = GetData.GetAssetById(loOffer.asset_uuid.ToString());

            if (!loAsset.max_offer_amount.HasValue || pOfferHistory.amount >= loAsset.max_offer_amount + loAsset.minimum_increate_amout.Value)
            {
                loOffer.price                 = pOfferHistory.amount;
                loAsset.max_offer_amount      = pOfferHistory.amount;
                pOfferHistory.row_create_date = DateTime.Now;
                loAsset.row_update_date       = pOfferHistory.row_create_date;
                loOffer.row_update_date       = pOfferHistory.row_create_date;


                var loId = Crud <OfferHistory> .InsertNewOffer(pOfferHistory, loOffer, loAsset);

                if (loId > 0)
                {
                    Task.Run(() => HelperMethods.SendNewOfferInformation(pOfferHistory.offer_uuid));
                    loGenericResponse.Code   = 200;
                    loGenericResponse.Status = "OK";
                }
                else
                {
                    loGenericResponse.Message = "Teklif kaydı esnasında bir problem oluştu. Lütfen tekrar deneyiniz.";
                }

                return(loGenericResponse);
            }

            loGenericResponse.Code    = -2;
            loGenericResponse.Message = "Sizden önce teklif yükseltilmiş. Lütfen teklifinizi gözden geçiriniz.";
            return(loGenericResponse);
        }
    public float GetTradeSuccessRatio()
    {
        float successes;
        float rounds = _attemptedTradeLimit;

        //float rounds = AttemptedTrades.Count();

        successes = OfferHistory.Skip(Math.Max(0, OfferHistory.Count() - (int)_attemptedTradeLimit)).Where(record => record.Success == true).Count();

        //successes = AttemptedTrades.Where(x => x == true).Count();

        return(successes / rounds);
    }
Esempio n. 4
0
 public OfferHistoryResponse(OfferHistory offerHistory, int type)
 {
     this.JobId        = offerHistory.JobId;
     this.FreelancerId = offerHistory.FreelancerId;
     this.OfferPrice   = offerHistory.OfferPrice;
     this.ExpectedDay  = offerHistory.ExpectedDay;
     this.Description  = offerHistory.Description;
     this.TodoList     = offerHistory.TodoList;
     try
     {
         this.Freelancer = type == 2 ?new AccountForListResponse(offerHistory.Freelancer):null;
     }
     catch (Exception) { }
     try
     {
         this.Job = type == 1? new JobForListResponse(offerHistory.Job):null;
     }
     catch (Exception) { }
 }
Esempio n. 5
0
        public static int InsertNewOffer(OfferHistory pOfferHistory, Offer pOffer, Asset pAsset)
        {
            int loResult = 0;

            using var connection = Connection.ConnectionWinvestate();
            connection.Open();
            using var transaction = connection.BeginTransaction();

            try
            {
                loResult = (int)connection.Insert(pOfferHistory, transaction);
                if (loResult <= 0)
                {
                    transaction.Rollback();
                    return(0);
                }

                pOfferHistory.id = (int)loResult;

                if (!connection.Update(pOffer, transaction))
                {
                    transaction.Rollback();
                    return(0);
                }

                if (!connection.Update(pAsset, transaction))
                {
                    transaction.Rollback();
                    return(0);
                }
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                return(0);
            }


            transaction.Commit();
            return(loResult);
        }
        public async Task <ActionResult <OfferHistory> > PostOfferHistory([FromBody] OfferHistoryPost offerHistoryPost)
        {
            if (_context.Jobs.Find(offerHistoryPost.JobId) == null)
            {
                return(BadRequest());
            }
            var freelancer = _context.Accounts.Find(offerHistoryPost.FreelancerId);

            if (freelancer == null)
            {
                return(BadRequest());
            }

            String jwt = Request.Headers["Authorization"];

            jwt = jwt.Substring(7);
            //Decode jwt and get payload
            var stream    = jwt;
            var handler   = new JwtSecurityTokenHandler();
            var jsonToken = handler.ReadToken(stream);
            var tokenS    = jsonToken as JwtSecurityToken;
            //I can get Claims using:
            var email = tokenS.Claims.First(claim => claim.Type == "email").Value;

            if (email != freelancer.Email || freelancer.IsAccuracy == false)
            {
                return(BadRequest());
            }
            if (_context.OfferHistories
                .Where(p => p.FreelancerId == freelancer.Id && offerHistoryPost.JobId == p.JobId).Count() >= 3)
            {
                return(Ok("Oops... You have only three times to offer this job."));
            }
            var offerHistory = new OfferHistory()
            {
                JobId        = offerHistoryPost.JobId,
                FreelancerId = offerHistoryPost.FreelancerId,
                Description  = offerHistoryPost.Description,
                ExpectedDay  = offerHistoryPost.ExpectedDay,
                OfferPrice   = offerHistoryPost.OfferPrice,
                TodoList     = offerHistoryPost.TodoList,
            };

            _context.OfferHistories.Add(offerHistory);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (OfferHistoryExists(offerHistory.JobId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }
            return(Ok());
        }
        //SQL DB Retrieval Function:
        public void DBViewOfferRedemptionHistoryReturn(string mobile)
        {
            try
            {
                string              CMSPlayerID = ServerSide.DBGetCMSPlayerID(mobile);
                DataSet             result      = new DataSet();
                List <SqlParameter> spParams    = new List <SqlParameter>();
                spParams.Add(new SqlParameter("@CMSPlayerID", CMSPlayerID));

                result = DataAcess.ExecuteQuerySP("PEC.TODO", spParams);

                if (result.Tables[0].Rows.Count > 0)
                {
                    HeaderCaptionLine1 = result.Tables[0].Rows[0]["HeaderCaption"].ToString();
                    HeaderCaptionLine2 = result.Tables[0].Rows[0]["HeaderCaptionLine2"].ToString();
                    OfferHistoryExists = Convert.ToBoolean(result.Tables[0].Rows[0]["OfferHistoryExists"].ToString());
                    FooterCaptionLine1 = result.Tables[0].Rows[0]["HeaderCaption"].ToString();
                    FooterCaptionLine2 = result.Tables[0].Rows[0]["HeaderCaption"].ToString();
                    if (OfferHistoryExists)
                    {
                        DataSet             oHDS = new DataSet();
                        List <SqlParameter> offerHistoryParams = new List <SqlParameter>();
                        offerHistoryParams.Add(new SqlParameter("@CMSPlayerID", CMSPlayerID));

                        oHDS = DataAcess.ExecuteQuerySP("PEC.TODO", offerHistoryParams);
                        for (int i = 0; i < oHDS.Tables[0].Rows.Count; i++)
                        {
                            Offer newOffer = new Offer();
                            newOffer.Description = oHDS.Tables[0].Rows[i][""].ToString();
                            newOffer.Value       = oHDS.Tables[0].Rows[i][""].ToString();
                            newOffer.ExpiresDate = Convert.ToDateTime(oHDS.Tables[0].Rows[i][""].ToString());
                            newOffer.IssuedDate  = Convert.ToDateTime(oHDS.Tables[0].Rows[i][""].ToString());
                            newOffer.PrizeType   = oHDS.Tables[0].Rows[i][""].ToString();
                            newOffer.IsExpired   = Convert.ToBoolean(oHDS.Tables[0].Rows[i][""].ToString());
                            newOffer.IsRedeemed  = Convert.ToBoolean(oHDS.Tables[0].Rows[i][""].ToString());
                            newOffer.HasBarcode  = Convert.ToBoolean(oHDS.Tables[0].Rows[i][""].ToString());
                            if (newOffer.HasBarcode)
                            {
                                MemoryStream ms    = new MemoryStream((byte[])oHDS.Tables[0].Rows[i][""]);
                                byte[]       bytes = ms.ToArray();
                                newOffer.Barcode = bytes;
                            }
                            else
                            {
                                newOffer.Barcode = null;
                            }

                            OfferHistory.Add(newOffer);
                        }
                    }
                }
                else
                {
                    RemoveData();
                }
            }
            catch (SqlException ex)
            {
                string errorMessage = ex.Message;
            }
        }