private void btnEliminar_Click(object sender, EventArgs e) { if (MetroFramework.MetroMessageBox.Show(this, "¿Quieres eliminar el Consejo?", "Eliminar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { using (DataContext dataContext = new DataContext()) { Advice advice = adviceBindingSource.Current as Advice; if (advice != null) { if (dataContext.Entry <Advice>(advice).State == EntityState.Detached) { dataContext.Set <Advice>().Attach(advice); } dataContext.Entry <Advice>(advice).State = EntityState.Deleted; dataContext.SaveChanges(); MetroFramework.MetroMessageBox.Show(this, "Empleado eliminado"); adviceBindingSource.RemoveCurrent(); pnlAgregarEditar.Enabled = false; } } } }
private void btnEditar_Click(object sender, EventArgs e) { pnlAgregarEditar.Enabled = true; txtTexto.Focus(); Advice advice = adviceBindingSource.Current as Advice; }
public ItAdviceTest() { _sut = new Advice { Id = A <int>() }; }
public async Task <IActionResult> Create([Bind("Id,Text,ImagePath,ImageTitle,Title,SubTitle,ServiceId")] Advice advice, IFormFile ImagePath) { CustomDateTimeFile customDateTimeFile = new CustomDateTimeFile(); string fileName = customDateTimeFile.GetFileName(ImagePath.FileName); if (ModelState.IsValid) { advice.ImagePath = fileName; if (_IsAcceptedFormat(ImagePath.ContentType)) { string path = Path.Combine(hostingEnvironment.WebRootPath, "images", fileName); byte[] data = new byte[ImagePath.Length]; using (FileStream fileStream = new FileStream(path, FileMode.Create)) { await ImagePath.CopyToAsync(fileStream); } } await _context.AddAsync(advice); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ServiceId"] = new SelectList(_context.Services, "Id", "Id", advice.ServiceId); return(View(advice)); }
private void btnGuardar_Click(object sender, EventArgs e) { using (DataContext dataContext = new DataContext()) { Advice advice = adviceBindingSource.Current as Advice; if (advice != null) { if (dataContext.Entry <Advice>(advice).State == EntityState.Detached) { dataContext.Set <Advice>().Attach(advice); } if (advice.Id == 0) { dataContext.Entry <Advice>(advice).State = EntityState.Added; } else { dataContext.Entry <Advice>(advice).State = EntityState.Modified; } dataContext.SaveChanges(); MetroFramework.MetroMessageBox.Show(this, "Consejo guardado"); grdConsejos.Refresh(); pnlAgregarEditar.Enabled = false; } } }
public async Task OnGetAsync([FromQuery] string type, [FromQuery] int id) {// type is either confession or advice this.id = id; this.Comments = new List <Comment>(); this.Post = new Advice(); await this.GetPost(type, id); }
public override Advice GetActionForBuckets(List <TradeBucket> tradeBuckets) { Advice advice = new Advice(); advice.AlgorithmName = Name; advice.Confidence = 0; advice.Group = Group; advice.Time = tradeBuckets[tradeBuckets.Count - 1].Time; List <TradeBucket> buckets = tradeBuckets; WilliamsR rsi = new WilliamsR(); TIOutput output = rsi.GetCurrentValue(buckets); advice.Price = buckets[buckets.Count - 1].Close; advice.Confidence = (decimal)output.Value; if (output.Value < 20) { advice.Action = TradeAction.Sell; } else if (output.Value > 80) { advice.Action = TradeAction.Buy; } else { advice.Action = TradeAction.Hold; } return(advice); }
public async Task <Advice> GetAdvice(int id) { Advice a = new Advice(); await Task.Run(() => { using (MySqlConnection conn = GetConnection()) { conn.Open(); MySqlCommand cmd = new MySqlCommand("select * from posts where posts.Id = " + id + " AND posts.Reply is not null", conn); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { a.Id = Convert.ToInt32(reader["Id"]); a.Content = reader["Content"].ToString(); a.Email = reader["Email"].ToString(); a.Hearts = Convert.ToInt32(reader["Hearts"]); a.Tags = reader["Tags"].ToString(); a.MainReply = reader["Reply"].ToString(); a.CreationTime = reader["creation_time"].ToString(); } } } }); return(a); }
public ActionResult Advice(Advice objadvice) { try { if (obj.CheckAdvice(objadvice.AdviceID, objadvice.AdviceName)) { if (obj.Save(objadvice)) { if (objadvice.AdviceID > 0) { ModelState.Clear(); TempData["msg"] = "Advice Updated Successfully"; return(RedirectToAction("Advice", "Advice")); } else { ModelState.Clear(); TempData["msg"] = "Advice Saved Successfully"; return(RedirectToAction("Advice", "Advice")); } } } else { ViewData["flag"] = "Error"; } return(RedirectToAction("Advice", "Advice")); } catch (Exception Ex) { return(RedirectToAction("Advice", "Advice")); } }
public string SaveAdvice() { string connectionString = ConfigurationManager.AppSettings.Get("connString"); Advice adviceObj = new Advice(); //creating an advice object adviceObj.QueryId = Convert.ToInt32(Request.QueryString["QueryId"]); adviceObj.Username = Session["Username"].ToString() ; adviceObj.Likes = 0; adviceObj.Dislikes = 0; adviceObj.AdviceTitle = txtAdviceTitle.Text; adviceObj.AdviceDescription = txtAdvice.Text; adviceObj.AdviceDateTime = DateTime.Now; //inserting data through business layer BusinessLayer businessLayerObj = new BusinessLayer(); try { businessLayerObj.InsertAdvice(adviceObj, connectionString); } catch(Exception ex) { return ex.Message; } return "noerror"; }
void AdviceEditorProvider_OnCommandComplete(object sender, We7.Model.Core.ModelEventArgs args) { if (txtPwd != null && mvAdvice != null) { mvAdvice.ActiveViewIndex = 1; string id = args.PanelContext.Row["ID"] as string; if (!String.IsNullOrEmpty(id)) { Advice advice = AdviceHelper.GetAdvice(id, null); lblPwd.Text = advice.MyQueryPwd; lblSN.Text = advice.SN.ToString(); AdviceID = id; } } else if (lblSN != null) { mvAdvice.ActiveViewIndex = 1; string id = args.PanelContext.Row["ID"] as string; if (!String.IsNullOrEmpty(id)) { Advice advice = AdviceHelper.GetAdvice(id, null); lblSN.Text = advice.SN.ToString(); AdviceID = id; } } else { Alert("提交成功"); } }
public void Compose() { var adviceBuilder1Mock = MockRepository.GenerateStrictMock <IAdviceBuilder>(); var adviceBuilder2Mock = MockRepository.GenerateStrictMock <IAdviceBuilder>(); var adviceBuilders = new[] { adviceBuilder1Mock, adviceBuilder2Mock }; var advice1 = ObjectMother.GetAdvice(); var advice2 = ObjectMother.GetAdvice(); adviceBuilder1Mock.Expect(x => x.Build()).Return(advice1); adviceBuilder2Mock.Expect(x => x.Build()).Return(advice2); var joinPoint = ObjectMother.GetJoinPoint(); var pointcutVisitorMock = MockRepository.GenerateStrictMock <IPointcutEvaluator>(); var adviceSequencerMock = MockRepository.GenerateStrictMock <IAdviceSequencer>(); var fakeAdvices = new Advice[0]; pointcutVisitorMock.Expect(x => x.Matches(advice1, joinPoint)).Return(false); pointcutVisitorMock.Expect(x => x.Matches(advice2, joinPoint)).Return(true); adviceSequencerMock.Expect(x => x.Sort(Arg <IEnumerable <Advice> > .List.Equal(new[] { advice2 }))).Return(fakeAdvices); var composer = new AdviceComposer(adviceSequencerMock, pointcutVisitorMock); var result = composer.Compose(adviceBuilders.AsOneTime(), joinPoint); adviceBuilder1Mock.VerifyAllExpectations(); adviceBuilder2Mock.VerifyAllExpectations(); pointcutVisitorMock.VerifyAllExpectations(); adviceSequencerMock.VerifyAllExpectations(); Assert.That(result, Is.SameAs(fakeAdvices)); }
/// <summary> /// 发送处理结果到提交者(用户)邮箱 /// </summary> /// <param name="advice"></param> /// <param name="reply"></param> /// <param name="adviceType"></param> /// <returns></returns> public bool SendResultMailToAdvicer(Advice advice, AdviceReply reply, AdviceType adviceType, AdviceEmailConfigInfo info) { try { if (adviceType == null) { adviceType = AdviceTypeHelper.GetAdviceType(advice.TypeID); } string userEmail = advice.Email; MailHelper mailHelper = GetMailHelper(adviceType); string siteFullName = GeneralConfigs.GetConfig().SiteFullName; //string body = "尊敬的{0}先生/女士:您好!<br><br>"; //body += "我们于{1}接收到您的反馈信息({2}),有关部门已做出处理,现答复如下:<br><br>"; //body += "{3}<br><br>"; //body += "感谢您的参与!<br>"; //body += "{4}"; //body = string.Format(body, advice.Name, advice.CreateDate.ToLongDateString(), advice.Title, reply.Content, GeneralConfigs.GetConfig().SiteFullName+ "|" + SiteConfigs.GetConfig().RootUrl); info.EmailContent = info.EmailContent.Replace("{UserName}", advice.Name).Replace("{DateTime}", advice.CreateDate.ToLongDateString()).Replace("{Title}", advice.Title).Replace("{EmailContent}", reply.Content).Replace("{SiteFullName}", GeneralConfigs.GetConfig().SiteFullName); string subject = info.EmailTitle.Replace("{SiteTitle}", GeneralConfigs.GetConfig().SiteTitle.Trim().Replace("\n", "")).Replace("{AdviceTitle}", advice.Title); string priority = "Normal";//过期提示,优先级别 mailHelper.Send(userEmail, mailHelper.AdminEmail, subject, info.EmailContent, priority); return(true); } catch (Exception ex) { return(false); } }
/// <summary> /// 发送通知邮件给办理人(带办理备注和优先级) /// </summary> /// <param name="id">反馈实体ID</param> /// <param name="replyUserID"></param> /// <param name="adviceType"></param> /// <param name="remark">办理备注</param> /// <param name="priority">优先级</param> public void SendHandleMail(string id, string replyUserID, AdviceType adviceType, string remark, string priority, AdviceEmailConfigInfo info) { Advice a = GetAdvice(id);; string userEmail = AccountHelper.GetAccount(replyUserID, new string[] { "Email", "ID" }).Email; MailHelper mailHelper = GetMailHelper(adviceType); string body = BuildHandleMail(id, remark, info); string subject = ""; string must = "";//必须回复 //priority = "Low";//过期提示,优先级别 if (a.MustHandle >= 1) { must = "此信息为必须回复;"; int days = GetWorkingDays(a.CreateDate); if (days >= adviceType.RemindDays) { priority = "High"; } subject = must + " " + info.EmailTitle.Replace("{EmailTitle}", "#" + a.SN.ToString()); } else { subject = " " + info.EmailTitle.Replace("{EmailTitle}", "#" + a.SN.ToString()); } mailHelper.Send(userEmail, mailHelper.AdminEmail, subject, body, priority); }
public void ShowNewAdvice(Advice advice) { StartMessage("New advice is available from Monocle Man. Press N to view it now.", 5.5f); _advice = advice; _adviceManMessageActive = true; SMH.Sound.PlaySound(Sound.HintMan); }
Boolean ProcessHandshake() { log.Info("Processing handshake"); JObject o = new JObject( new JProperty("channel", "/meta/handshake"), new JProperty("version", "1.0"), new JProperty("supportedConnectionTypes", new JArray("long-polling"))); String response = SendMessage(o); List <HandshakeResponse> hResponses = JsonConvert.DeserializeObject <List <HandshakeResponse> > (response); log.Debug("Acquired CIENT-ID: " + hResponses[0].clientId); ClientId = hResponses [0].clientId; if (hResponses [0].advice != null && hResponses [0].advice.reconnect == "retry") { this.ServerAdvice = hResponses [0].advice; } ResubscribeToChannels(); return(true); }
/// <summary> /// Serves as a hash function for a particular type, suitable for use /// in hashing algorithms and data structures like a hash table. /// </summary> /// <returns> /// A hash code for the current <see cref="System.Object"/>. /// </returns> public override int GetHashCode() { return(0 // (SPRNET-847) base.GetHashCode() + 13 * (Pointcut == null ? 0 : Pointcut.GetHashCode()) + 27 * (Advice == null ? 0 : Advice.GetHashCode()) + 31 * Order.GetHashCode()); }
public static string AdviceLink2(this HtmlHelper helper, Advice advice) { return(helper.ActionLink <CenterController>( sc => sc.Advice(advice.AdviceID, Linguistics.UrlTranslite(advice.Name)), advice.Name).ToString()); }
public void Deactivate(Advice advice) { DeleteJobFromHangfire(advice); advice.IsActive = false; AdviceRepository.Update(advice); AdviceRepository.Save(); }
public void SendAdvice_GivenRecurringActiveAdvice_And_No_StopDate_At_Worlds_End_AdviceIsSentAndJobIsNotCancelled() { //Arrange var recurringAdvice = new Advice { Id = A <int>(), Subject = A <string>(), AdviceType = AdviceType.Repeat, Scheduling = Scheduling.Quarter, AlarmDate = DateTime.Now.AddDays(-1), StopDate = null, Reciepients = CreateDefaultReceivers() }; _sut.OperationClock = Mock.Of <IOperationClock>(x => x.Now == DateTime.MaxValue); SetupAdviceRepository(recurringAdvice); SetupTransactionManager(); //Act var result = _sut.SendAdvice(recurringAdvice.Id); //Assert - even at end of days, if no expiration is set, we continue to send the advice Assert.True(result); _mailClientMock.Verify(x => x.Send(It.IsAny <MailMessage>()), Times.Once); }
public void SendAdvice_GivenNoReceivers_EmailIsNotSent() { //Arrange var immediateAdvice = new Advice { Id = A <int>(), Subject = A <string>(), AdviceType = AdviceType.Immediate, ObjectOwnerId = A <int>(), Type = A <RelatedEntityType>(), RelationId = A <int>() }; SetupAdviceRepository(immediateAdvice); SetupTransactionManager(); _adviceRootResolution.Setup(x => x.Resolve(immediateAdvice)).Returns(new ItSystemUsage { OrganizationId = A <int>() }); _userNotificationService.Setup(x => x.AddUserNotification(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), immediateAdvice.Type.Value, NotificationType.Advice)).Returns(new UserNotification()); //Act var result = _sut.SendAdvice(immediateAdvice.Id); //Assert Assert.True(result); _mailClientMock.Verify(x => x.Send(It.IsAny <MailMessage>()), Times.Never); }
void InsertAdviceProcessHistory(Processing newProcess, Advice advice) { ProcessHistory aph = new ProcessHistory(); if (newProcess != null) { aph.ObjectID = newProcess.ObjectID; if (string.IsNullOrEmpty(advice.ProcessState)) { aph.FromProcessState = "-1"; } else { aph.FromProcessState = advice.ProcessState; } aph.ToProcessState = newProcess.CurLayerNO; aph.ProcessDirection = newProcess.ProcessDirection; aph.ProcessAccountID = newProcess.ProcessAccountID; aph.TargetSites = newProcess.TargetSites; aph.Remark = newProcess.Remark; aph.CreateDate = DateTime.Now; aph.UpdateDate = DateTime.Now; aph.ItemNum = newProcess.ItemNum + 1; aph.ApproveName = newProcess.ApproveName; aph.ApproveTitle = newProcess.ApproveTitle; aph.ChannelID = advice.TypeID; aph.ChannelName = advice.TypeTitle; aph.SiteApiUrl = SiteConfigs.GetConfig().RootUrl; aph.SiteID = SiteConfigs.GetConfig().SiteID; aph.SiteName = SiteConfigs.GetConfig().SiteName; ProcessHistoryHelper.InsertAdviceProcessHistory(aph); } }
/// <summary> /// 生成反馈审批路径html描述 /// </summary> /// <param name="advice"></param> /// <param name="targetSite"></param> /// <returns></returns> public string CreateAdviceFlowPathHtml(Advice advice, string targetSite) { Processing p = GetAdviceProcess(advice); ProcessObject po = (ProcessObject)advice; return(CreateFlowPathHtml(po, p, targetSite));; }
public IActionResult Update(int id, [FromBody] GeneralCritereaDto generalCritereaDto) { // map dto to entity and set id var c = _mapper.Map <GeneralCriterea>(generalCritereaDto); c.ID = id; try { // save c = _generalCritereaService.Update(c); for (int i = 0; i < generalCritereaDto.Advices.ToList().Count; i++) { Advice temp = _mapper.Map <Advice>(generalCritereaDto.Advices.ElementAt(i)); _adviceService.Update(temp); } return(Ok(_mapper.Map <GeneralCritereaDto>(c))); } catch (AppException ex) { // return error message if there was an exception return(BadRequest(ex.Message)); } }
/// <summary> /// 审核通过 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ReportButton_Click(object sender, EventArgs e) { if (OperationInfo(AdviceState.Checking)) { Advice a = ThisAdvice; AdviceReply reply = AdviceReplyHelper.GetAdviceReplyByAdviceID(AdviceID); if (reply == null) { reply = new AdviceReply(); reply.AdviceID = AdviceID; reply.Suggest = ToAdviceTextBox.Text; reply.UserID = AccountID; reply.CreateDate = DateTime.Now; reply.Updated = DateTime.Now; } reply.Content = We7Helper.ConvertPageBreakFromVisualToChar(ReplyContentTextBox.Value); AdviceReplyHelper.UpdateReplyByAdviceID(reply, null); if (a.State == (int)AdviceState.Finished) { if (chbSendEmail.Checked) { AdviceEmailConfigs adviceEmailConfigs = new AdviceEmailConfigs(); AdviceEmailConfigInfo info = adviceEmailConfigs["ReplyUser"]; AdviceHelper.SendResultMailToAdvicer(a, reply, null, info); } } Messages.ShowMessage(" :) 审核成功!"); //记录日志 string content = string.Format("审核通过了留言反馈:“{0}”的详细信息", AdviceID); AddLog("留言反馈详细信息", content); Response.Write("<script>alert('审核成功!');location.href='AdviceList.aspx?adviceTypeID=" + ThisAdvice.TypeID + "';</script>"); //Initialize(); } }
private async void AdvicesDataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { try { var grid = (sender as DataGrid); Advice item = e.Row.Item as Advice; if (e.Column.Header.ToString() == "Amount(GHS)") { TextBox tb = e.EditingElement as TextBox; item.Amount = tb.Text; try { Convert.ToDecimal(tb.Text); } catch { MessageBox.Show("Please Enter numeric values in the Amount Field", "Invalid Value", MessageBoxButton.OK, MessageBoxImage.Error); item.Amount = "0"; tb.Text = ""; } } await GetTotalValues(); vm.db.SaveChanges(); } catch { } }
private void ToNextPanel(GameObject obj) { m_currentAdvice = m_currentAdvice + 1; ShowPanel(m_currentAdvice); ShowPreviousButton(m_currentAdvice != Advice.GeneralWellBeing); ShowNextButton(m_currentAdvice != Advice.Type2Diabetes); }
protected void Page_Load(object sender, EventArgs e) { List <Advice> advices = Advice.GetAllRecentAdvices(); rpAdviceList.DataSource = advices; rpAdviceList.DataBind(); }
private void AddItemToList(Advice advice) { var adviceItem = Instantiate(favoriteAdviceItemPrefab, itemParent); adviceItem.Init(advice); favoriteAdviceItems.Add(adviceItem); }
/// <summary> /// 上报审核 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void AuditReportButton_Click(object sender, EventArgs e) { UserIDTextBox.Text = ""; Advice a = AdviceHelper.GetAdvice(AdviceID); bool success = false; if (a.State == (int)AdviceState.WaitHandle) { success = OperationInfo(AdviceState.Checking, "1", true); } else { success = OperationInfo(AdviceState.Checking); } if (success) { Messages.ShowMessage(" :) 上报审核成功!"); //记录日志 string content = string.Format("上报审核了留言反馈:“{0}”的详细信息", AdviceID); AddLog("留言反馈详细信息", content); } Initialize(); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Text,ImagePath,ImageTitle,Title,SubTitle,ServiceId")] Advice advice) { if (id != advice.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(advice); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AdviceExists(advice.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ServiceId"] = new SelectList(_context.Services, "Id", "Id", advice.ServiceId); return(View(advice)); }
protected void Page_Load(object sender, EventArgs e) { string connectionString = ConfigurationManager.AppSettings.Get("connString"); Advice adviceObj = new Advice(); adviceObj.AdviceId = int.Parse(Session["AdviceId"].ToString()); BusinessLayer businessLayerObj = new BusinessLayer(); DataSet dsAdvice = businessLayerObj.SelectAdvice(adviceObj, connectionString); lblAdvice.Text = dsAdvice.Tables[0].Rows[0][0].ToString(); }
public void GetAdvice() { string connectionString = ConfigurationManager.AppSettings.Get("connString"); Advice adviceObj = new Advice(); adviceObj.AdviceId = int.Parse(Session["AdviceId"].ToString()); BusinessLayer businessLayerObj = new BusinessLayer(); DataSet dsAdvice = businessLayerObj.SelectAdvice(adviceObj, connectionString); lblAdvice.Text = dsAdvice.Tables[0].Rows[0][0].ToString(); }
protected void btnGetXML_Click(object sender, EventArgs e) { string connectionString = ConfigurationManager.AppSettings.Get("connString"); Advice adviceObj = new Advice(); adviceObj.AdviceId = int.Parse(Session["AdviceId"].ToString()); BusinessLayer businessLayerObj = new BusinessLayer(); DataSet dsXmlDetails = businessLayerObj.GetXmlDetails(adviceObj, connectionString); dsXmlDetails.WriteXml(@"D:\AdviceInfo.xml", XmlWriteMode.WriteSchema); lblXml.Visible = true; }
internal static extern int posix_fadvise(int fd, off_t offset, off_t len, Advice advice);
/// <summary> /// Method called on each new candle /// </summary> /// <param name="candles">The list of available candles</param> public void OnTick(IList<OHLC> candles) { if (candles.Count == 0) { return; } var candle = candles.Last(); var balRes = _proxy.GetBalance(_settings.Pair); if (!balRes.Success) { return; } var bal = balRes.Result; var feeRes = _proxy.GetFee(_pair); var fee = feeRes.Result; decimal totalAmountItem2 = bal.Balances[_pair.Item2]; decimal totalAmountItem1 = bal.Balances[_pair.Item1]; decimal availableAmountItem2ToBuy = totalAmountItem2 - _settings.MinAmountItem2ToKeep; decimal availableAmountItem1ForSell = totalAmountItem1 - _settings.MinAmountItem1ToKeep; var ordersRes = _proxy.GetOpenOrders(_settings.Pair); if (!ordersRes.Success) { return; } bool lastOrderFilled = _lastOrder == null || ordersRes.Result.List.FirstOrDefault(o => o.Id == _lastOrder.Id) == null; // return; var advice = _tradingIndicator.GetAdvice(candles); if (advice != Advice.None) { System.Diagnostics.Debug.WriteLine(DateTime.Now.ToShortTimeString() + " - Advice: " + advice.ToString()); if (advice == Advice.Buy) { if (_lastAdvice == Advice.Sell) { if (!lastOrderFilled) { var res = _proxy.CancelOrder(_lastOrder.Id); if (res.Success) { availableAmountItem2ToBuy += _lastOrder.Amount * _lastOrder.Price; } } } else if (_lastAdvice == Advice.Buy) { } availableAmountItem2ToBuy = availableAmountItem2ToBuy > _settings.MaxAmountMoneyPerBuyOrder ? _settings.MaxAmountMoneyPerBuyOrder : availableAmountItem2ToBuy; decimal nbUnitsToBuy = Math.Round(availableAmountItem2ToBuy / candle.Close, 8); //TODO: handle fees PlaceBuyOrder(nbUnitsToBuy, candle.Close, candle.Date); } else if (advice == Advice.Sell) { if (_lastAdvice == Advice.Buy) { if (!lastOrderFilled) { var res = _proxy.CancelOrder(_lastOrder.Id); if (res.Success) { availableAmountItem1ForSell += _lastOrder.Amount; } } } else if (_lastAdvice == Advice.Sell) { } decimal transactionFee = Math.Round(availableAmountItem1ForSell * candle.Close * fee.SellFee / 100m, 8); decimal nbUnitsToSell = availableAmountItem1ForSell > _settings.MaxNbBTCPerSellOrder ? _settings.MaxNbBTCPerSellOrder : availableAmountItem1ForSell; //TODO: handle fees //Sell here PlaceSellOrder(nbUnitsToSell, candle.Close, candle.Date); } } _lastAdvice = advice; }