public override int GetHashCode()
        {
            int hash = 1;

            if (entityId_ != null)
            {
                hash ^= EntityId.GetHashCode();
            }
            if (ProviderName.Length != 0)
            {
                hash ^= ProviderName.GetHashCode();
            }
            if (ProviderCode.Length != 0)
            {
                hash ^= ProviderCode.GetHashCode();
            }
            if (DisableGuestCorrespondence != false)
            {
                hash ^= DisableGuestCorrespondence.GetHashCode();
            }
            if (DisableCorrespondenceRateTable != false)
            {
                hash ^= DisableCorrespondenceRateTable.GetHashCode();
            }
            if (cancellationPolicy_ != null)
            {
                hash ^= CancellationPolicy.GetHashCode();
            }
            return(hash);
        }
        public void GetsCurrentProviderCode()
        {
            using (var dbContext = SqliteInMemory.GetSqliteDbContext())
            {
                dbContext.Database.EnsureCreated();
                var providerCodeRepo = new ProviderCodeRepo <ProviderCode>(dbContext);

                var providerCode1 = new ProviderCode
                {
                    Code      = "414",
                    StartDate = new DateTime(2018, 7, 1),
                    EndDate   = new DateTime(2019, 6, 30)
                };

                var providerCode2 = new ProviderCode
                {
                    Code      = "525",
                    StartDate = new DateTime(2019, 7, 1),
                    EndDate   = new DateTime(2020, 6, 30)
                };
                providerCodeRepo.AddRange(providerCode1, providerCode2);

                var currentProviderCode = providerCodeRepo.GetCurrent();

                Assert.AreEqual("525", currentProviderCode.Code);
            }
        }
        /// <summary>
        /// Create the template output
        /// </summary>
        public override string TransformText()
        {
            this.Write("namespace ");
            this.Write(this.ToStringHelper.ToStringWithCulture(ContextNamespace));
            this.Write("\r\n{\r\n    using ");
            this.Write(this.ToStringHelper.ToStringWithCulture(ConfigurationContextFolder));
            this.Write(";\r\n    using Microsoft.EntityFrameworkCore;\r\n\r\n    /// <summary>\r\n    /// ");
            this.Write(this.ToStringHelper.ToStringWithCulture(ContextName));
            this.Write("\r\n    /// </summary>\r\n    /// <inheritdoc />\r\n    public partial class ");
            this.Write(this.ToStringHelper.ToStringWithCulture(ContextName));
            this.Write(" : DbContext\r\n    {\r\n        /// <inheritdoc />\r\n        protected ");
            this.Write(this.ToStringHelper.ToStringWithCulture(ContextName));
            this.Write("()\r\n        {\r\n        }\r\n\r\n        /// <inheritdoc />\r\n        public ");
            this.Write(this.ToStringHelper.ToStringWithCulture(ContextName));
            this.Write("(DbContextOptions<");
            this.Write(this.ToStringHelper.ToStringWithCulture(ContextName));
            this.Write("> options)\r\n            : base(options)\r\n        {\r\n        }\r\n\r\n");

            foreach (var entityType in Model.GetEntityTypes())
            {
                var tableName = entityType.GetTableName();
                var isView    = entityType.FindAnnotation("Relational:ViewDefinition") != null;

                this.Write("        /// <summary>\r\n        /// ");
                this.Write(this.ToStringHelper.ToStringWithCulture(entityType.Name));
                this.Write(this.ToStringHelper.ToStringWithCulture(isView ? string.Empty : ("(" + tableName + ")")));
                this.Write("\r\n        /// </summary>\r\n        public virtual DbSet<");
                this.Write(this.ToStringHelper.ToStringWithCulture(GetEntityClassName(entityType)));
                this.Write("> ");
                this.Write(this.ToStringHelper.ToStringWithCulture(GetEntityName(entityType)));
                this.Write(" { get; set; }\r\n\r\n");
            }


            this.Write(@"        /// <inheritdoc />
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
#if DEBUG
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
                optionsBuilder");
            this.Write(this.ToStringHelper.ToStringWithCulture(Code.Fragment(ProviderCode.GenerateUseProvider(ConnectionString))));
            this.Write(";\r\n#endif\r\n            }\r\n        }\r\n\r\n        /// <inheritdoc />\r\n        protec" +
                       "ted override void OnModelCreating(ModelBuilder modelBuilder)\r\n        {\r\n");

            foreach (var entityType in Model.GetEntityTypes())
            {
                this.Write("            modelBuilder.ApplyConfiguration(new ");
                this.Write(this.ToStringHelper.ToStringWithCulture(GetEntityConfigurationName(entityType)));
                this.Write("());\r\n");
            }

            this.Write("\r\n            OnModelCreatingPartial(modelBuilder);\r\n        }\r\n\r\n        partial" +
                       " void OnModelCreatingPartial(ModelBuilder modelBuilder);\r\n    }\r\n}\r\n");
            return(this.GenerationEnvironment.ToString());
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Get the Entity Framework provider.
        /// </summary>
        /// <returns>Return a <see cref="ProviderCode" />.</returns>
        public ProviderCode GetProvider()
        {
            // list of provider: https://docs.microsoft.com/en-us/ef/core/providers/
            switch (((DbContext)_storage.StorageContext).Database.ProviderName)
            {
            case "Microsoft.EntityFrameworkCore.Sqlite":
                _providerCode = ProviderCode.Sqlite;
                break;

            case "Microsoft.EntityFrameworkCore.SqlServer":
                _providerCode = ProviderCode.Mssql;
                break;

            case "Npgsql.EntityFrameworkCore.PostgreSQL":
                _providerCode = ProviderCode.Postgresql;
                break;

            case "Pomelo.EntityFrameworkCore.MySql":
                _providerCode = ProviderCode.MysqlMariadb;
                break;

            case "EntityFrameworkCore.SqlServerCompact40":
                _providerCode = ProviderCode.Sqlcompact4;
                break;

            case "EntityFrameworkCore.SqlServerCompact35":
                _providerCode = ProviderCode.Sqlcompact35;
                break;

            case "MySql.Data.EntityFrameworkCore":
                _providerCode = ProviderCode.MysqlOracle;
                break;

            case "EntityFrameworkCore.Jet":
                _providerCode = ProviderCode.Msaccess;
                break;

            default:
                throw new Exception("Unsuported provider: " + ((DbContext)_storage.StorageContext).Database.ProviderName);
            }

            return(_providerCode);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Create the template output
        /// </summary>
        public override string TransformText()
        {
            this.Write("using Microsoft.EntityFrameworkCore;\r\nusing ");
            this.Write(this.ToStringHelper.ToStringWithCulture(ModelNamespace));
            this.Write(";\r\n\r\nnamespace ");
            this.Write(this.ToStringHelper.ToStringWithCulture(Namespace));
            this.Write("\r\n{\r\n    public partial class ");
            this.Write(this.ToStringHelper.ToStringWithCulture(ContextName));
            this.Write(" : DbContext\r\n    {\r\n");

            foreach (var entityType in Model.GetEntityTypes())
            {
                this.Write("        public virtual DbSet<");
                this.Write(this.ToStringHelper.ToStringWithCulture(entityType.Name));
                this.Write("> ");
                this.Write(this.ToStringHelper.ToStringWithCulture(entityType["Scaffolding:DbSetName"]));
                this.Write(" { get; set; }\r\n");
            }


            this.Write("\r\n        protected override void OnConfiguring(DbContextOptionsBuilder options)\r" +
                       "\n            => options");
            this.Write(this.ToStringHelper.ToStringWithCulture(Code.Fragment(ProviderCode.GenerateUseProvider(ConnectionString))));
            this.Write(";\r\n\r\n        protected override void OnModelCreating(ModelBuilder modelBuilder)\r\n" +
                       "        {\r\n");

            foreach (var entityType in Model.GetEntityTypes())
            {
                this.Write("            modelBuilder.ApplyConfiguration(new ");
                this.Write(this.ToStringHelper.ToStringWithCulture(entityType.Name));
                this.Write("Configuration());\r\n");
            }

            this.Write("        }\r\n    }\r\n}\r\n");
            return(this.GenerationEnvironment.ToString());
        }
Ejemplo n.º 6
0
        public override int Send(byte mode = 0)
        {
            string resultData = "";
            int    ret        = 0;

            resultMsg = "Missing/invalid phone number and/or message";

            if (PhoneNumber.Length < 10 || MessageBody.Length < 3)
            {
                return(10);
            }

            if (provider == null)
            {
                if (mode == (byte)Constants.TransactionType.Test)                   // Testing
                {
                    provider             = new Provider();
                    provider.BureauCode  = ((int)Constants.MessageProvider.ClickaTell).ToString().PadLeft(3, '0');
                    provider.MerchantKey = "E8gSxksaQpmEDZ4OvabmlQ==";
                    provider.BureauURL   = "https://platform.clickatell.com/messages/http/send";
                }
                else if (LoadProvider() != 0)
                {
                    return(15);
                }
            }

            try
            {
                ret       = 20;
                resultMsg = "Missing/invalid message provider details";
                string sendURL = provider.BureauURL;

                Tools.LogInfo("Send/5", "SMS to " + phoneNumber, Constants.LogSeverity, this);

                if (ProviderCode == (int)Constants.MessageProvider.ClickaTell)
                {
                    sendURL = sendURL + "?apiKey=" + Tools.URLString(provider.MerchantKey)
                              + "&to=" + Tools.URLString(phoneNumber)
                              + "&content=" + Tools.URLString(messageBody);
                }

                else if (ProviderCode == (int)Constants.MessageProvider.GlobalSMS)
                {
                    sendURL = sendURL + "?key=" + Tools.URLString(provider.MerchantKey)
                              + "&contacts=" + Tools.URLString(phoneNumber)
                              + "&msg=" + Tools.URLString(messageBody)
                              + "&senderid=" + Tools.URLString(provider.MerchantUserID)
                              + "&type=text";
                }
                else
                {
                    return(25);
                }

                Tools.LogInfo("Send/88", "Provider = " + ProviderCode.ToString() + ", sendURL = " + sendURL, Constants.LogSeverity, this);

                resultMsg = "";
                ret       = 30;
                HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(sendURL);
                ret = 60;
                HttpWebResponse webResponse = (HttpWebResponse)webReq.GetResponse();
                ret = 70;
                using (StreamReader streamIn = new StreamReader(webResponse.GetResponseStream()))
                    resultData = streamIn.ReadToEnd().Trim();

                string resultOK = "false";

                if (ProviderCode == (int)Constants.MessageProvider.GlobalSMS)
                {
                    resultOK     = "true";
                    resultDetail = resultData;
                    resultCode   = resultData;
                    if (resultCode.EndsWith("<br />"))
                    {
                        resultCode = (" " + resultCode).Substring(0, resultCode.Length - 5).Trim();
                    }
                    if (resultCode.StartsWith("<br />"))
                    {
                        resultCode = (resultCode + " ").Substring(6).Trim();
                    }
                }
                else if (ProviderCode == (int)Constants.MessageProvider.ClickaTell)
                {
                    if (resultData.Length > 0 && resultData.StartsWith("{"))                       // JSON
                    {
                        resultID     = Tools.JSONValue(resultData, "apiMessageId");
                        resultOK     = Tools.JSONValue(resultData, "accepted");
                        resultCode   = Tools.JSONValue(resultData, "errorCode");
                        resultDetail = Tools.JSONValue(resultData, "errorDescription");
                        resultMsg    = Tools.JSONValue(resultData, "error");
                    }
                    else if (resultData.Length > 0 && resultData.StartsWith("<"))                       // XML
                    {
                        XmlDocument h = new XmlDocument();
                        h.Load(resultData);
                        resultID     = Tools.XMLNode(h, "apiMessageId");
                        resultOK     = Tools.XMLNode(h, "accepted");
                        resultCode   = Tools.XMLNode(h, "errorCode");
                        resultDetail = Tools.XMLNode(h, "errorDescription");
                        resultMsg    = Tools.XMLNode(h, "error");
                        h            = null;
                    }
                    if (resultID.ToUpper() == "NULL")
                    {
                        resultID = "";
                    }
                    if (resultCode.ToUpper() == "NULL")
                    {
                        resultCode = "";
                    }
                    if (resultDetail.ToUpper() == "NULL")
                    {
                        resultDetail = "";
                    }
                    if (resultMsg.ToUpper() == "NULL")
                    {
                        resultMsg = "";
                    }
                }

                Tools.LogInfo("Send/199", "SMS to " + phoneNumber + " (" + resultData + ")", Constants.LogSeverity, this);

                if (resultOK.ToUpper() == "TRUE")
                {
                    return(0);
                }

                return(199);
            }
            catch (Exception ex)
            {
                Tools.LogException("Send/301", "ret=" + ret.ToString() + ", " + resultData + "", ex, this);
                resultMsg = ex.Message;
            }
            return(ret);
        }