public static UserWallet CreateWallet(decimal Balance, string CurrencyCode, DateTime registDt) { UserWallet wallet = new UserWallet() { Balance = Balance, Currency = CurrencyCode, LastUpdated = registDt, IsActive = true, }; return wallet; }
/// <summary> /// Reload UserWallet via Credit Card /// </summary> /// <param name="context">DBContext of Model to be used</param> /// <param name="wallet">UserWallet to be loaded</param> /// <param name="transaction">CreditCardReloadTransaction filled up with the ff properties filled up: Amount, Date</param> /// <param name="cardInfo">Credit Card information</param> /// <returns></returns> public RespCreateWalletLoad ReloadWalletViaCreditCard(IPTV2Entities context, UserWallet wallet, CreditCardReloadTransaction transaction, CreditCardInfo cardInfo) { RespCreateWalletLoad result = null; InitializeServiceClient(); try { // validate credit card information cardInfo.Validate(); if (!cardInfo.IsValid) { throw new GomsInvalidCreditCardException(); } // validate user GomsException validationResult = UserValidation(context, wallet.UserId); if (!(validationResult is GomsSuccess)) { throw validationResult; } var user = context.Users.Find(wallet.UserId); // validate the wallet validationResult = WalletValidation(context, user, wallet.WalletId); if (!(validationResult is GomsSuccess)) { throw validationResult; } // validate transaction if (transaction == null) { throw new GomsInvalidTransactionException(); } else { if ((transaction.Amount <= 0) || (transaction.Date == null)) throw new GomsInvalidTransactionException(); } // prepare request // set transaction wallet user.Transactions.Add(transaction); transaction.UserWallet = wallet; transaction.Currency = wallet.Currency; var req = new ReqCreateWalletLoad { UID = ServiceUserId, PWD = ServicePassword, Email = user.EMail, CustomerId = (int)user.GomsCustomerId, ServiceId = (int)user.GomsServiceId, SubsidiaryId = (int)user.GomsSubsidiaryId, WalletId = (int)transaction.UserWallet.GomsWalletId, OrderType = 1, // PhoenixId = transaction.TransactionId, PhoenixId = (int)(DateTime.Now.Ticks - int.MaxValue), LoadAmountLocalCurrency = (double)transaction.Amount, //CurrencyId = (int)context.Currencies.Find(user.Country.CurrencyCode).GomsId CCName = cardInfo.Name, CCNumber = cardInfo.Number, CCSecurityCode = cardInfo.CardSecurityCode, CCExpiry = cardInfo.ExpiryDate, CCPostalCode = cardInfo.PostalCode, CCStreet = cardInfo.StreetAddress }; var paymentMethod = context.GomsPaymentMethods.FirstOrDefault(p => (p.GomsSubsidiaryId == user.GomsSubsidiaryId) && (p.Name == cardInfo.CardTypeString)); if (paymentMethod == null) { throw new GomsCreditCardTypeInvalidException(); } req.PaymentMethod = paymentMethod.PaymentMethodId; var log = new GomsLogs() { email = user.EMail, phoenixid = req.PhoenixId }; try { var startTime = DateTime.Now; result = _serviceClient.CreateWalletLoad(req); var endTime = DateTime.Now; var timeDifference = endTime - startTime; if (result.IsSuccess) { transaction.Reference = result.TransactionId.ToString(); transaction.GomsTransactionId = result.TransactionId; transaction.GomsTransactionDate = DateTime.Now; transaction.UserWallet.Balance += transaction.Amount; transaction.UserWallet.LastUpdated = DateTime.Now; context.SaveChanges(); log.gomstransactionid = result.TransactionId; log.message = String.Format("{0} - {1}", result.IsSuccess, result.StatusMessage); log.transactionid = transaction.TransactionId; log.transactiondate = transaction.GomsTransactionDate.Value.ToString("yyyy-MM-dd hh:mm:ss"); } } catch (Exception e) { log.message = e.Message; LogToGigya("glogs", log); throw new GomsServiceCallException(e.Message); } finally { LogToGigya("glogs", log); } } catch (GomsException e) { result = new RespCreateWalletLoad { IsSuccess = false, StatusCode = e.StatusCode, StatusMessage = e.StatusMessage }; } return (result); }
/// <summary> /// Register a TFC.tv user in GOMS /// </summary> /// <param name="context">DBContext of Model to be used</param> /// <param name="userId">UserId of user to be registered</param> /// <returns></returns> public RespRegisterSubscriber2 RegisterUser2(IPTV2Entities context, System.Guid userId) { InitializeServiceClient(); var user = context.Users.Find(userId); RespRegisterSubscriber2 result = null; if (user != null) { try { string state = GetStateCode(user.Country, user.State); int gomsCustomerId = 0; if (user.TfcNowUserName != null) { var nowContext = new TFCNowModel.ABSNowEntities(); var nowUser = nowContext.Customers.FirstOrDefault(u => u.EmailAddress == user.TfcNowUserName); if (nowUser != null) { var subscriptionDetails = nowUser.SubscriptionDetails.FirstOrDefault(s => s.GOMSID != null); if (subscriptionDetails != null) { gomsCustomerId = (int)subscriptionDetails.GOMSID; } } } var subscriberInfo = new ReqRegisterSubscriber2 { UID = ServiceUserId, PWD = ServicePassword, Email = user.EMail, FirstName = user.FirstName, LastName = user.LastName, CurrentCity = user.City != null ? user.City : "--", CurrentState = state, CurrentCountry = user.CountryCode, CountryCurrencyId = (int)user.Country.GomsCountryId, CustomerId = gomsCustomerId, RegistrationDate = DateTime.Now.ToString("MM-dd-yyyy") }; result = _serviceClient.RegisterSubscriber2(subscriberInfo); } catch (Exception e) { result = new RespRegisterSubscriber2 { IsSuccess = false, StatusCode = "1404", StatusMessage = e.Message }; } if (result.IsSuccess) { user.GomsCustomerId = result.CustomerId; user.GomsServiceId = result.ServiceId; user.GomsSubsidiaryId = result.SubsidiaryId; user.GomsWalletId = result.WalletId; var wallet = user.UserWallets.FirstOrDefault(w => w.Currency == user.Country.CurrencyCode); if (wallet == null) { wallet = new UserWallet { Currency = user.Country.CurrencyCode, IsActive = true, LastUpdated = DateTime.Now, Balance = 0 }; user.UserWallets.Add(wallet); } wallet.GomsWalletId = result.WalletId; context.SaveChanges(); } } else { result = new RespRegisterSubscriber2 { IsSuccess = false, StatusCode = "1100", StatusMessage = "Invalid userId." }; } return (result); }
/// <summary> /// Update User's info in GOMS /// </summary> /// <param name="context">DBContext of Model to be used</param> /// <param name="userId">UserId of user record to be updated</param> /// <returns></returns> public RespUpdateSubscriber UpdateSubscriber(IPTV2Entities context, System.Guid userId) { RespUpdateSubscriber result = null; var user = context.Users.Find(userId); if (user != null) { if (!user.IsGomsRegistered) { throw new GomsUserNotRegisteredException(); } try { var thisWallet = user.UserWallets.FirstOrDefault(w => w.IsActive); bool isCountryChanged = (thisWallet != null && (thisWallet.GomsWalletId == null || thisWallet.GomsWalletId == 0)); string state = GetStateCode(user.Country, user.State); var req = new ReqUpdateSubscriber() { UID = ServiceUserId, PWD = ServicePassword, Email = user.EMail, FirstName = user.FirstName, LastName = user.LastName, CurrentCity = user.City != null ? user.City : "--", CurrentState = state, CurrentCountry = user.CountryCode, CountryCurrencyId = (int)user.Country.GomsCountryId, CustomerId = (int)user.GomsCustomerId, ServiceId = (int)user.GomsServiceId, WalletId = (int)user.GomsWalletId, IsCountryChanged = isCountryChanged, WalletBalance = (double)thisWallet.Balance }; result = _serviceClient.UpdateSubscriber(req); } catch (Exception ex) { result = new RespUpdateSubscriber { IsSuccess = false, StatusCode = "1404", StatusMessage = ex.Message }; } if (result.IsSuccess && result.CustomerId > 0) { user.GomsCustomerId = result.CustomerId; user.GomsServiceId = result.ServiceId; user.GomsSubsidiaryId = result.SubsidiaryId; user.GomsWalletId = result.WalletId; var wallet = user.UserWallets.FirstOrDefault(w => w.Currency == user.Country.CurrencyCode); if (wallet == null) { wallet = new UserWallet { Currency = user.Country.CurrencyCode, IsActive = true, LastUpdated = DateTime.Now, Balance = 0 }; user.UserWallets.Add(wallet); } wallet.GomsWalletId = result.WalletId; context.SaveChanges(); } } else { result = new RespUpdateSubscriber { IsSuccess = false, StatusCode = "1100", StatusMessage = "Invaid userId." }; } return (result); }
private static void TestGetUser() { var service = new GomsTfcTv(); int userId = 577615; string email = "*****@*****.**"; var resp = service.GetUser(userId, email); if (resp.IsSuccess) { var context = new IPTV2_Model.IPTV2Entities(); var user = context.Users.FirstOrDefault(u => u.EMail == email); if (user != null) { user.GomsCustomerId = resp.CustomerId; user.GomsSubsidiaryId = resp.SubsidiaryId; var wallet = user.UserWallets.FirstOrDefault(w => w.Currency == user.Country.CurrencyCode); if (wallet == null) { wallet = new IPTV2_Model.UserWallet { Currency = user.Country.CurrencyCode, Balance = 0, IsActive = true, LastUpdated = DateTime.Now }; user.UserWallets.Add(wallet); context.SaveChanges(); } } } }
public static ErrorCodes ReloadViaMopay(System.Guid userId, decimal Amount, string CurrencyCode, string refid, string Guid) { try { var context = new IPTV2Entities(); DateTime registDt = DateTime.Now; User user = context.Users.FirstOrDefault(u => u.UserId == userId); Offering offering = context.Offerings.FirstOrDefault(o => o.OfferingId == GlobalConfig.offeringId); UserWallet wallet = user.UserWallets.FirstOrDefault(w => w.Currency == CurrencyCode); Currency currency = context.Currencies.FirstOrDefault(c => c.Code == CurrencyCode); if (wallet == null) { wallet = new UserWallet() { Currency = CurrencyCode, IsActive = false, LastUpdated = registDt, Balance = Amount }; user.UserWallets.Add(wallet); } else { wallet.Balance += Amount; wallet.LastUpdated = registDt; } MopayReloadTransaction transaction = new MopayReloadTransaction() { Currency = wallet.Currency, Reference = refid, Amount = Amount, UserWallet = wallet, Date = registDt, OfferingId = GlobalConfig.offeringId, StatusId = GlobalConfig.Visible }; user.Transactions.Add(transaction); if (context.SaveChanges() > 0) { try { //post confirm to mopay string poststatus = string.Empty; string guid = string.Empty; string message = string.Empty; string postparam = string.Format("cid={0}&password={1}?guid={2}&externaluid={3}", GlobalConfig.MopayCID, GlobalConfig.MopayPassword, Guid, userId.ToString()); WebRequest request = WebRequest.Create(GlobalConfig.MopayDeliveryConfirmationURL); request.Method = "POST"; byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(postparam); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse response = request.GetResponse(); dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); string responseFromServer = reader.ReadToEnd(); reader.Close(); dataStream.Close(); response.Close(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(responseFromServer); XmlNode messageNode = xmlDoc.SelectSingleNode("message"); message = messageNode.Value; XmlNode productDeliveryConfirmationNode = xmlDoc.SelectSingleNode("product-delivery-confirmation"); foreach (XmlNode chldNode in productDeliveryConfirmationNode.ChildNodes) { switch (chldNode.Name) { case "guid": if (!string.IsNullOrEmpty(chldNode.InnerText)) guid = (chldNode.InnerText); break; case "status": if (!string.IsNullOrEmpty(chldNode.InnerText)) poststatus = (chldNode.InnerText); break; } } MopayTransactionRequest mopaTranRequest = context.MopayTransactionRequests.FirstOrDefault(m => String.Compare(m.GUID, guid) == 0); mopaTranRequest.ErrorMessage = message; mopaTranRequest.UpdatedOn = System.DateTime.Now; context.SaveChanges(); } catch (Exception) { } return ErrorCodes.Success; } return ErrorCodes.EntityUpdateError; } catch (Exception e) { Debug.WriteLine(e.InnerException); throw; } }
public static ErrorCodes ReloadViaPayPal(IPTV2Entities context, System.Guid userId, decimal Amount, string TransactionID, string CurrencyCode) { try { //var context = new IPTV2Entities(); DateTime registDt = DateTime.Now; User user = context.Users.FirstOrDefault(u => u.UserId == userId); Offering offering = context.Offerings.FirstOrDefault(o => o.OfferingId == GlobalConfig.offeringId); UserWallet wallet = user.UserWallets.FirstOrDefault(w => w.Currency == CurrencyCode); Currency currency = context.Currencies.FirstOrDefault(c => c.Code == CurrencyCode); if (GlobalConfig.UsePayPalIPNLog) { if (context.PaypalIPNLogs.Count(t => String.Compare(t.UniqueTransactionId, TransactionID, true) == 0) > 0) return ErrorCodes.IsProcessedPayPalTransaction; } else { Transaction ppt = context.Transactions.FirstOrDefault(t => String.Compare(t.Reference, TransactionID, true) == 0); if (ppt != null) return ErrorCodes.IsProcessedPayPalTransaction; } //Transaction ppt = context.Transactions.FirstOrDefault(t => String.Compare(t.Reference, TransactionID, true) == 0); //if (ppt != null) // return ErrorCodes.IsProcessedPayPalTransaction; if (wallet == null) { wallet = new UserWallet() { Currency = CurrencyCode, IsActive = false, LastUpdated = registDt, Balance = Amount }; user.UserWallets.Add(wallet); } else { wallet.Balance += Amount; wallet.LastUpdated = registDt; } PaypalReloadTransaction transaction = new PaypalReloadTransaction() { Currency = wallet.Currency, Reference = TransactionID, Amount = Amount, UserWallet = wallet, Date = registDt, OfferingId = GlobalConfig.offeringId, StatusId = GlobalConfig.Visible }; user.Transactions.Add(transaction); if (context.SaveChanges() > 0) { return ErrorCodes.Success; } return ErrorCodes.EntityUpdateError; } catch (Exception e) { Debug.WriteLine(e.InnerException); throw; } }
public ActionResult Migrate() { if (GlobalConfig.IsTVERegistrationEnabled) return RedirectToAction("Index", "Home"); Dictionary<string, object> collection = new Dictionary<string, object>(); ErrorCodes errorCode = ErrorCodes.UnknownError; string errorMessage = MyUtility.getErrorMessage(ErrorCodes.UnknownError); DateTime registDt = DateTime.Now; collection = MyUtility.setError(errorCode, errorMessage); if (TempData["TFCnowCustomer"] == null) return RedirectToAction("Index", "Home"); if (!MyUtility.isUserLoggedIn()) return RedirectToAction("Index", "Home"); Customer customer = (Customer)TempData["TFCnowCustomer"]; var absnow_context = new ABSNowEntities(); string TFCnowPackageIds = GlobalConfig.TFCnowPackageIds; var packageids = MyUtility.StringToIntList(TFCnowPackageIds); var context = new IPTV2Entities(); var userId = new Guid(User.Identity.Name); User user = context.Users.FirstOrDefault(u => u.UserId == userId); if (user == null) return RedirectToAction("Index", "Migration"); //Tag account user.TfcNowUserName = customer.EmailAddress; user.LastUpdated = registDt; context.SaveChanges(); bool isLicenseMigrated = false; bool isWalletMigrated = false; //Migrate Wallet var balance = absnow_context.NCashWalletBalanceTables.FirstOrDefault(u => u.userId.ToLower() == customer.EmailAddress.ToLower()); if (balance != null) { if (balance.cashBalance > 0) { var transfer_amount = Forex.Convert(context, GlobalConfig.DefaultCurrency, user.Country.CurrencyCode, balance.cashBalance); var userWallet = user.UserWallets.FirstOrDefault(u => u.Currency == user.Country.CurrencyCode && u.IsActive == true); if (userWallet == null) { userWallet = new UserWallet() { Balance = transfer_amount, IsActive = true, Currency = user.Country.CurrencyCode, }; user.UserWallets.Add(userWallet); } else userWallet.Balance += transfer_amount; //Create Paypal transaction var ppTransaction = new PaypalReloadTransaction() { Amount = transfer_amount, Currency = user.Country.CurrencyCode, Date = registDt, Reference = String.Format("M-{0}", customer.CustomerID), OfferingId = GlobalConfig.offeringId, UserWallet = userWallet, StatusId = GlobalConfig.Visible }; user.Transactions.Add(ppTransaction); if (context.SaveChanges() > 0) isWalletMigrated = true; } } var licenses = absnow_context.LicensePurchaseds.Where(l => l.CustomerID == customer.CustomerID && packageids.Contains(l.PackageID) && l.LicenseEndDate > registDt).OrderByDescending(l => l.LicenseEndDate); //Migrate Licenses if (licenses.Count() == 0) { if (isWalletMigrated) { user.TfcNowUserName = customer.EmailAddress; context.SaveChanges(); } // return RedirectToAction("Complete", "Migration"); //collection = MyUtility.setError(ErrorCodes.UnknownError, "No licenses to migrate."); } else { bool isPremiumProcessed = false; bool isLiteProcessed = false; bool isMovieChannelProcessed = false; bool isLiveStreamProcessed = false; var TFCnowPremium = MyUtility.StringToIntList(GlobalConfig.TFCnowPremium); var TFCnowLite = MyUtility.StringToIntList(GlobalConfig.TFCnowLite); var TFCnowMovieChannel = MyUtility.StringToIntList(GlobalConfig.TFCnowMovieChannel); var TFCnowLiveStream = MyUtility.StringToIntList(GlobalConfig.TFCnowLiveStream); List<LicenseDisplay> display = new List<LicenseDisplay>(); var premiumLicense = GetLicense(absnow_context, TFCnowPremium, licenses, 1427); display.Add(premiumLicense); display.Add(GetLicense(absnow_context, TFCnowLite, licenses, 1425)); display.Add(GetLicense(absnow_context, TFCnowMovieChannel, licenses, 45)); if (premiumLicense == null) display.Add(GetLicense(absnow_context, TFCnowLiveStream, licenses, 1427)); display.RemoveAll(item => item == null); foreach (var item in display) { int TFCtvPackageId = 0; int TFCtvProductId = 0; if (item.LicenseEndDate > registDt) { var difference = item.LicenseEndDate.Subtract(registDt); PackageEntitlement entitlement = null; if (TFCnowPremium.Contains(item.PackageId)) { if (!isPremiumProcessed) { entitlement = user.PackageEntitlements.FirstOrDefault(p => p.PackageId == GlobalConfig.premiumId); isPremiumProcessed = true; TFCtvPackageId = GlobalConfig.premiumId; } } else if (TFCnowLite.Contains(item.PackageId)) { if (!isLiteProcessed) { if (user.CountryCode == GlobalConfig.DefaultCountry) { entitlement = user.PackageEntitlements.FirstOrDefault(p => p.PackageId == GlobalConfig.premiumId); TFCtvPackageId = GlobalConfig.premiumId; } else { entitlement = user.PackageEntitlements.FirstOrDefault(p => p.PackageId == GlobalConfig.liteId); TFCtvPackageId = GlobalConfig.liteId; } isLiteProcessed = true; } } else if (TFCnowMovieChannel.Contains(item.PackageId)) { if (!isMovieChannelProcessed) { entitlement = user.PackageEntitlements.FirstOrDefault(p => p.PackageId == GlobalConfig.movieId); isMovieChannelProcessed = true; TFCtvPackageId = GlobalConfig.movieId; } } else if (TFCnowLiveStream.Contains(item.PackageId)) { if (!isLiveStreamProcessed) { if (!isPremiumProcessed) { entitlement = user.PackageEntitlements.FirstOrDefault(p => p.PackageId == GlobalConfig.premiumId); isLiveStreamProcessed = true; TFCtvPackageId = GlobalConfig.premiumId; } } } else { //Provide load } if (TFCtvPackageId > 0) { ProductPackage package = context.ProductPackages.FirstOrDefault(p => p.PackageId == TFCtvPackageId); TFCtvProductId = package.Product.ProductId; if (entitlement != null) { if (entitlement.EndDate > registDt) entitlement.EndDate = entitlement.EndDate.Add(difference); else entitlement.EndDate = registDt.Add(difference); EntitlementRequest request = new EntitlementRequest() { DateRequested = registDt, StartDate = item.LicenseStartDate, EndDate = entitlement.EndDate, Product = package.Product, Source = "Entitlement Transfer", ReferenceId = item.LicensePurchaseId.ToString() }; entitlement.LatestEntitlementRequest = request; // ADDED DECEMBER 06, 2012 user.EntitlementRequests.Add(request); } else { EntitlementRequest request = new EntitlementRequest() { DateRequested = registDt, StartDate = item.LicenseStartDate, EndDate = item.LicenseEndDate, Product = package.Product, Source = "Entitlement Transfer", ReferenceId = item.LicensePurchaseId.ToString() }; user.EntitlementRequests.Add(request); PackageEntitlement pkg_entitlement = new PackageEntitlement() { EndDate = item.LicenseEndDate, Package = (IPTV2_Model.Package)package.Package, OfferingId = GlobalConfig.offeringId, LatestEntitlementRequest = request }; user.PackageEntitlements.Add(pkg_entitlement); } } } if (TFCtvProductId > 0) { MigrationTransaction transaction = new MigrationTransaction() { Amount = 0, Currency = GlobalConfig.DefaultCurrency, Date = registDt, OfferingId = GlobalConfig.offeringId, Reference = item.LicensePurchaseId.ToString(), MigratedProductId = TFCtvProductId, StatusId = GlobalConfig.Visible }; user.Transactions.Add(transaction); } } if (context.SaveChanges() > 0) isLicenseMigrated = true; } bool isTingiMigrated = false; var tingi = absnow_context.TFCNowRetailMigrationIDs.Select(i => new { i.TFCnowPackageID, i.GOMSInternalID }); var tingi_licenses = absnow_context.LicensePurchaseds.Where(l => l.CustomerID == customer.CustomerID && tingi.Select(i => i.TFCnowPackageID).Contains(l.PackageID) && l.LicenseEndDate > registDt).OrderByDescending(l => l.LicenseEndDate); if (tingi_licenses.Count() == 0) { if (isLicenseMigrated || isWalletMigrated) { user.TfcNowUserName = customer.EmailAddress; context.SaveChanges(); } return RedirectToAction("Complete", "Migration"); } else { foreach (var item in tingi_licenses) { var diff = item.LicenseEndDate.Subtract(registDt); var GomsProductId = tingi.FirstOrDefault(t => t.TFCnowPackageID == item.PackageID); var TFCtvProduct = context.Products.FirstOrDefault(p => p.GomsProductId == GomsProductId.GOMSInternalID); if (TFCtvProduct != null) { if (TFCtvProduct is ShowSubscriptionProduct) { var showSubscription = (ShowSubscriptionProduct)TFCtvProduct; ShowEntitlement se = user.ShowEntitlements.FirstOrDefault(s => s.Show.CategoryId == showSubscription.Categories.First().CategoryId); if (se != null) { if (se.EndDate > registDt) se.EndDate = showSubscription.ALaCarteSubscriptionTypeId == 2 ? se.EndDate.AddYears(1) : se.EndDate.Add(diff); else se.EndDate = showSubscription.ALaCarteSubscriptionTypeId == 2 ? registDt.AddYears(1) : registDt.Add(diff); EntitlementRequest request = new EntitlementRequest() { DateRequested = registDt, EndDate = se.EndDate, Product = TFCtvProduct, Source = "Entitlement Transfer", ReferenceId = item.LicensePurchasedID.ToString() }; user.EntitlementRequests.Add(request); } else { EntitlementRequest request = new EntitlementRequest() { DateRequested = registDt, EndDate = showSubscription.ALaCarteSubscriptionTypeId == 2 ? registDt.AddYears(1) : registDt.Add(diff), Product = TFCtvProduct, Source = "Entitlement Transfer", ReferenceId = item.LicensePurchasedID.ToString() }; user.EntitlementRequests.Add(request); ShowEntitlement show_entitlement = new ShowEntitlement() { EndDate = showSubscription.ALaCarteSubscriptionTypeId == 2 ? registDt.AddYears(1) : registDt.Add(diff), Show = showSubscription.Categories.First().Show, OfferingId = GlobalConfig.offeringId, LatestEntitlementRequest = request }; user.ShowEntitlements.Add(show_entitlement); } MigrationTransaction transaction = new MigrationTransaction() { Amount = 0, Currency = GlobalConfig.DefaultCurrency, Date = registDt, OfferingId = GlobalConfig.offeringId, Reference = item.LicensePurchasedID.ToString(), MigratedProductId = TFCtvProduct.ProductId, StatusId = GlobalConfig.Visible }; user.Transactions.Add(transaction); } } } if (context.SaveChanges() > 0) isTingiMigrated = true; } if (isLicenseMigrated || isWalletMigrated || isTingiMigrated) { user.TfcNowUserName = customer.EmailAddress; user.LastUpdated = registDt; } else { user.TfcNowUserName = customer.EmailAddress; user.LastUpdated = registDt; } if (context.SaveChanges() > 0) { return RedirectToAction("Complete", "Migration"); } return Content(MyUtility.buildJson(collection), "application/json"); }