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()); }
/// <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); }
/// <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()); }
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); }