public decimal GetMoviePrice(LicensingModel licensingModel, CustomerStatus status, DateTime expirationDate) { decimal price; switch (licensingModel) { case LicensingModel.TwoDays: price = 4; break; case LicensingModel.LifeLong: price = 8; break; default: throw new ArgumentOutOfRangeException(); } if ( status == CustomerStatus.Advanced && expirationDate >= DateTime.UtcNow) { price = price * 0.75m; } return(price); }
public async Task <IActionResult> CreateAsync([FromBody] CreateMovieDto item) { if (item.Name == null || item.Name.Trim() == string.Empty) { return(Error("Name required")); } LicensingModel lmodel = (LicensingModel)item.LicensingModel; var movie = Movie.Create(item.Name, lmodel); await DocumentDBRepository <Movie> .CreateItemAsync(movie); return(Ok()); }
public DateTime GetMovieExpirationDate(LicensingModel licensingModel, DateTime purchased) { switch (licensingModel) { case LicensingModel.TwoDays: return(purchased.AddDays(2)); case LicensingModel.LifeLong: return(DateTime.MaxValue); default: throw new ArgumentOutOfRangeException(); } }
public IPurchasedMovie Create(Customer customer, LicensingModel licensingModel, DateTime purchased) { switch (licensingModel) { case LicensingModel.TwoDays: return(new TwoDaysPurchasedMovie(customer, purchased)); case LicensingModel.LifeLong: return(new LifeLongPurchasedMovie(customer, purchased)); default: throw new ArgumentOutOfRangeException(nameof(licensingModel), licensingModel, "Unknown licensing model"); } }
public static Movie Create(String name, LicensingModel lmodel) { if (name == null || name.Trim() == string.Empty) { throw new ArgumentException(nameof(name)); } switch (lmodel) { case LicensingModel.TwoDays: return(new TwoDaysMovie(name)); case LicensingModel.LifeLong: return(new LifeLongMovie(name)); default: throw new ArgumentException(nameof(lmodel)); } }
public DateTime?GetExpirationDate(LicensingModel licensingModel) { DateTime?result; switch (licensingModel) { case LicensingModel.TwoDays: result = DateTime.UtcNow.AddDays(2); break; case LicensingModel.LifeLong: result = null; break; default: throw new ArgumentOutOfRangeException(); } return(result); }
public ActionResult <string> SaveLicense(Guid token, LicensingModel licensingData) { if (!token.Equals(SecurityToken) || licensingData == null) { return(ActionResult <string> .SetError("非法的调用", licensingData == null? "提交数据不能为空" : "Token信息不正确")); } if (!licensingData.MachineCode.Equals(machineCode)) { return(ActionResult <string> .SetError("非法的调用", "机器码不正确")); } var dataDecrypt = ""; try { dataDecrypt = DecryptString(licensingData.License); } catch (Exception ex) { return(ActionResult <string> .SetError("授权序号错误", ex.Message)); } var expirationDate = dataDecrypt.CastTo(DateTime.MinValue); if (expirationDate < DateTime.Now) { return(ActionResult <string> .SetError("授权序号已经过期", licensingData.License)); } var secretkeyData = new SecretkeyData() { Ftp = new FtpSetting() { Server = licensingData.FtpServer, Port = licensingData.FtpPort, UserID = licensingData.FtpUserName, Password = licensingData.FtpPassword }, Database = new Dictionary <DbClientType, DbConnectionSetting>() { { DbClientType.MsSql, new DbConnectionSetting() { Provider = licensingData.Provider, ConnectionString = licensingData.ConnectionString } } }, ExtendSetting = new Dictionary <string, string>(), DataType = (SaveDataType)licensingData.SaveDataType, LicensingDate = DateTime.Now, ExpirationDate = expirationDate }; if (dbMode) { foreach (var dbConn in secretkeyData.Database) { DbFactory.Initialization( dbConn.Key, dbConn.Value.Provider, dbConn.Value.ConnectionString); if (dbConn.Key == DbClientType.MsSql) { try { var now = DbFactory.Repository <DatabaseRepository>().GetServerDate(DateTime.Now); } catch (Exception ex) { return(ActionResult <string> .SetError($"数据库连接失败,{ex.Message}", dbConn.Value.ConnectionString)); //数据连接失败 } } } } DbFactory.SetFtpSetting( secretkeyData.Ftp.Server, secretkeyData.Ftp.Port, secretkeyData.Ftp.UserID, secretkeyData.Ftp.Password); SaveSecretkey(secretkeyData); return(ActionResult <string> .SetSuccess("", licensingData.License)); }
public Movie(string name, LicensingModel licensingModel) { Name = name; LicensingModel = licensingModel; }
private decimal CalculatePrice(CustomerStatus status, DateTime?statusExpirationDate, LicensingModel licensingModel) { decimal price; switch (licensingModel) { case LicensingModel.TwoDays: price = 4; break; case LicensingModel.LifeLong: price = 8; break; default: throw new ArgumentOutOfRangeException(); } if (status == CustomerStatus.Advanced && (statusExpirationDate == null || statusExpirationDate.Value >= DateTime.UtcNow)) { price = price * 0.75m; } return(price); }
public PurchasedMovie(Customer customer, LicensingModel licensingModel, DateTime purchased) { Customer = customer; LicensingModel = licensingModel; Purchased = purchased; }