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;
 }
示例#3
0
 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;
         }
     }
 }
示例#6
0
 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);
        }
示例#8
0
        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);
        }
示例#9
0
 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"));
     }
 }
示例#10
0
    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";
    }
示例#11
0
 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));
        }
示例#13
0
        /// <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);
            }
        }
示例#14
0
        /// <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);
 }
示例#16
0
        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);
        }
示例#17
0
 /// <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());
 }
示例#18
0
 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());
 }
示例#19
0
 public void Deactivate(Advice advice)
 {
     DeleteJobFromHangfire(advice);
     advice.IsActive = false;
     AdviceRepository.Update(advice);
     AdviceRepository.Save();
 }
示例#20
0
        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);
        }
示例#21
0
        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);
        }
示例#22
0
        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);
            }
        }
示例#23
0
        /// <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));
            }
        }
示例#25
0
 /// <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();
     }
 }
示例#26
0
        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 { }
        }
示例#27
0
 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();
        }
示例#29
0
    private void AddItemToList(Advice advice)
    {
        var adviceItem = Instantiate(favoriteAdviceItemPrefab, itemParent);

        adviceItem.Init(advice);
        favoriteAdviceItems.Add(adviceItem);
    }
示例#30
0
        /// <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));
        }
示例#32
0
 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();
 }
示例#33
0
 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();
 }
示例#34
0
 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;
 }
示例#35
0
 internal static extern int posix_fadvise(int fd, off_t offset, off_t len, Advice advice);
示例#36
0
        /// <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;
        }