Exemplo n.º 1
0
        /// <summary>
        /// Builds string request from AlertSettings to be sent to CryptoCompare subscribe call
        /// sample output: "42[\"SubAdd\",{\"subs\":[\"0~Bitstamp~BTC~USD\",\"0~Coinbase~BTC~USD\"]}]"
        /// </summary>
        /// <param name="sSubcriptionType"></param>
        /// <returns>Return null if parsing was not possible</returns>
        public string BuildRequest(string sSubcriptionType)
        {
            string sRequest = "42[\"SubAdd\",{\"subs\":[";

            //\"0~Bitstamp~BTC~USD\",\"0~Coinbase~BTC~USD\"]}]";

            using (CryptoAlertsContext dbContext = new CryptoAlertsContext())
            {
                this.alertSettings = dbContext.AlertSettings.Where(x => x.DtDeleted == null && x.BActive == true).ToList <AlertSetting>();

                int iCount = this.alertSettings.Count;

                foreach (AlertSetting alertSetting in this.alertSettings)
                {
                    //build subscription string
                    string sSetting = "\"" + sSubcriptionType + "~" + alertSetting.Exchanx.SName;
                    sSetting += "~" + alertSetting.CurrencyPair.SName.Replace('/', '~') + "\"";

                    sRequest += sSetting;

                    if (iCount > 1)
                    {
                        sRequest += ",";
                    }

                    iCount--;
                }

                sRequest += "]}]";
            }

            return(sRequest);
        }
Exemplo n.º 2
0
        public static async Task <Alert> CreateAlert(int iAlertSettingId, int iUserId, string sTitle, string sMessage)
        {
            Alert alert = new Alert();

            using (CryptoAlertsContext dbContext = new CryptoAlertsContext())
            {
                int iAlerts = dbContext.Alerts.Where(x => x.IUserId == iUserId &&
                                                     x.IAlertSettingId == iAlertSettingId &&
                                                     !x.DtDeleted.HasValue &&
                                                     !x.DtSent.HasValue).Count();

                if (iAlerts == 0)
                {
                    alert.IAlertSettingId = iAlertSettingId;
                    alert.IUserId         = iUserId;
                    alert.SMessage        = sMessage;
                    alert.STitle          = sTitle;

                    dbContext.Alerts.Add(alert);
                    int id = await dbContext.SaveChangesAsync();

                    alert.IAlertId = id;

                    Console.WriteLine("Alert table updated: " + id);
                }
            }

            return(alert);
        }