public ActionResult SubmitBidResultByBidder(bool val, int masterId) { BidResult success = iplSchedule.submitBidResultByBidder(val, masterId, getUser().userId); if (success.IsSucceed == 1) { return(Json(new { data = new Result { Status = ResultStatus.Success, Message = "Thank you for submitting your bid." }, favour = success.InFavour, against = success.Against, history = success.BidHistory }, JsonRequestBehavior.AllowGet)); } else if (success.IsSucceed == -2) { return(Json(new { data = new Result { Status = ResultStatus.Warning, Message = "Sorry bid is not available." } }, JsonRequestBehavior.AllowGet)); } else if (success.IsSucceed == -3) { return(Json(new { data = new Result { Status = ResultStatus.Error, Message = "Sorry insufficient balance to bid." } }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { data = new Result { Status = ResultStatus.Error, Message = "Error occurred while submitting pole." } }, JsonRequestBehavior.AllowGet)); } }
public ActionResult SubmitBidResultByBidder(bool val, int masterId) { BidResult success = iplSchedule.submitBidResultByBidder(val, masterId, getUserID()); if (success.IsSucceed == 1) { return(Json(new { data = new Result { Status = ResultStatus.Success, Message = "Your pole submitted successfully." }, favour = success.InFavour, against = success.Against, history = success.BidHistory }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { data = new Result { Status = ResultStatus.Error, Message = "Error occurred while submitting pole." } }, JsonRequestBehavior.AllowGet)); } }
public ActionResult DoBid2(BidModel model) { AuthInfo auth = Session["auth"] as AuthInfo; if (auth == null) { return(Redirect("/auth")); } Result result = OpenApiClient.Send(LoanController.Get_LoanList_URL, auth.AccessToken, new PropertyObject("timestamp", DateTime.Now, ValueTypeEnum.DateTime)); if (result.IsSucess) { var loanList = JsonConvert.DeserializeObject <LoanListModels>(result.Context); bool isCertificateValidate = model.Tags.Any(p => p == "CertificateValidate"); bool isMobileRealnameValidate = model.Tags.Any(p => p == "MobileRealnameValidate"); bool isRate22 = model.Tags.Any(p => p == "rate22"); bool isCreditCodeAAA = model.Tags.Any(p => p == "CreditCodeAAA"); bool isCreditCodeD = model.Tags.Any(p => p == "CreditCodeD"); StringBuilder sb = new StringBuilder(); foreach (var loan in loanList.LoanList.OrderByDescending(p => p.Rate)) { if (isCertificateValidate && loan.CertificateValidate != 1) { continue; } if (isMobileRealnameValidate && loan.MobileRealnameValidate != 1) { continue; } if (isRate22 && loan.Rate < 22) { continue; } if (isCreditCodeAAA && loan.CreditCode != "AAA") { continue; } if (isCreditCodeD && (loan.CreditCode == "E" || loan.CreditCode == "F")) { continue; } try { Result bidResp = OpenApiClient.Send(Bid_URL, auth.AccessToken, new PropertyObject("ListingId", loan.ListingId, ValueTypeEnum.Int32), new PropertyObject("Amount", 50, ValueTypeEnum.Int32)); if (bidResp.IsSucess) { BidResult bidResult = JsonConvert.DeserializeObject <BidResult>(bidResp.Context); sb.AppendLine(string.Format("投标:{0} ,结果: {1}", loan.ListingId, bidResult.ResultMessage)); } else { sb.AppendLine(string.Format("投标:{0} ,结果: {1}", loan.ListingId, bidResp.ErrorMessage)); } model.Amount -= 50; if (model.Amount < 50) { break; } } catch (Exception ex) { sb.AppendLine(string.Format("投标:{0} ,结果: {1}", loan.ListingId, ex.Message)); } } if (sb.Length == 0) { return(Content("没有满足条件的标的")); } return(Content(sb.ToString())); } return(Content("获取投资列表失败")); }
public BidResult submitBidResultByBidder(bool value, int bidId, int userId) { using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataReader reader; int success = -1; List <BidHistory> history = null; BidResult bidResult = new BidResult(); try { connection.Open(); SqlCommand command = new SqlCommand("USP_UpdateBidResultByBidder", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@Value", value)); command.Parameters.Add(new SqlParameter("@BidId", bidId)); command.Parameters.Add(new SqlParameter("@UserId", userId)); reader = command.ExecuteReader(); while (reader.Read()) { bidResult.IsSucceed = Convert.ToInt32(reader["IsSucceed"]); bidResult.InFavour = Convert.ToInt32(reader["InFavour"]); bidResult.Against = Convert.ToInt32(reader["Against"]); if (bidResult.IsSucceed == 1) { history = new List <BidHistory>(); if (reader.NextResult()) { while (reader.Read()) { BidHistory bidHistory = new BidHistory(); string teamA = reader["TeamA"].ToString(); string teamB = reader["TeamB"].ToString(); bidHistory.Match = teamA + " VS " + teamB; if (reader["Team"].ToString() == "A") { bidHistory.Question = teamA + " : " + reader["Question"].ToString(); } else { bidHistory.Question = teamB + " : " + reader["Question"].ToString(); } bidHistory.Points = reader["BidPoints"].ToString(); bool answer = Convert.ToBoolean(reader["UserBid"].ToString()); if (answer) { bidHistory.Answer = "Yes"; } else { bidHistory.Answer = "No"; } history.Add(bidHistory); } } } } bidResult.BidHistory = history; } catch (Exception ex) { } return(bidResult); } }
private async Task UpdateProtocols(Region region) { int orgsCount = 0; await _ftpService.LoadProtocolsFromFtp(region); var protocols = _xmlParsingService.ParseProtocols(region); if (protocols.Any()) { var partcipantsInns = protocols .SelectMany(p => p.Organizations) .Select(o => o.Organization.INN) .ToList(); var participants = await _dataContext.Organizations .Where(o => partcipantsInns.Contains(o.INN)) .ToListAsync(); var companies = await _dataContext.Companies .Where(o => partcipantsInns.Contains(o.INN)) .Where(o => !o.OrganizationId.HasValue) .ToListAsync(); var purchaseNumbers = protocols .Select(p => p.PurchaseNumber) .ToList(); var tenders = await _dataContext.Tenders .Where(t => purchaseNumbers.Contains(t.PurchaseNumber)) .ToListAsync(); var tendersIds = tenders.Select(t => t.Id).ToList(); var existingBidResults = await _dataContext.BidResults .Where(b => tendersIds.Contains(b.TenderId)) .Include(b => b.Organizations) .ThenInclude(o => o.Organization) .ToListAsync(); var regions = await _dataContext.Regions .ToListAsync(); foreach (var protocol in protocols) { var tender = tenders.SingleOrDefault(t => t.PurchaseNumber == protocol.PurchaseNumber); var bidResult = new BidResult(); if (tender != null) { bidResult = existingBidResults.SingleOrDefault(br => br.TenderId == tender.Id) ?? new BidResult(); } _mapper.Map(protocol, bidResult); bidResult.Tender = tender; bidResult.Organizations ??= new List <BidResultOrganization>(); bidResult.Organizations.Clear(); if (protocol.Organizations != null) { foreach (var app in protocol.Organizations) { var participant = participants .SingleOrDefault(o => o.INN == app.Organization.INN && o.KPP == app.Organization.KPP) ?? new Organization(); _mapper.Map(app.Organization, participant); if (!participant.RegionId.HasValue) { participant.RegionId = GetRegionIdByParticipant(participant, regions); } if (_dataContext.Entry(participant).State == EntityState.Modified) { participant.UpdateChangeInfo(); } if (participant.Id == default && !participants.Any(o => o.INN == participant.INN && o.KPP == participant.KPP) && !string.IsNullOrEmpty(participant.INN)) { orgsCount += 1; participants.Add(participant); participant.UpdateChangeInfo(); await _dataContext.Organizations.AddAsync(participant); } var company = companies.Where(c => c.INN == participant.INN) .SingleOrDefault(); if (company != null) { company.Organization = participant; } var orgBidresult = _mapper.Map <BidResultOrganization>(app); orgBidresult.Organization = participant; if (!string.IsNullOrEmpty(participant.INN)) { bidResult.Organizations.Add(orgBidresult); } } } if (tender != null && bidResult.Id == default && !existingBidResults.Any(br => br.Tender == bidResult.Tender)) { if (_dataContext.Entry(tender).State == EntityState.Modified) { bidResult.Tender.UpdateChangeInfo(); } bidResult.Tender.Status = TenderStatus.ENDED; existingBidResults.Add(bidResult); await _dataContext.AddAsync(bidResult); } } } await _dataContext.UpdateTendersHistories.AddAsync(new UpdateTendersHistory { RegionId = region.Id, SearchDate = DateTime.Now.Date, SearchType = SearchType.PROTOCOLS, Organizations = orgsCount }); await _dataContext.SaveChangesAsync(); _ftpService.ClearTempDirectories(); }