187 lines
10 KiB
Markdown
187 lines
10 KiB
Markdown
public void SetDefaults(BMNUsersEntities bmnue, Guid userGUID)
|
|
{
|
|
System.Web.HttpContext http = System.Web.HttpContext.Current;
|
|
|
|
if (userGUID == Guid.Empty)
|
|
{
|
|
// Creating a new account
|
|
this.UserName = String.Empty;
|
|
this.AccountGroups = new List<AccountGroup>();
|
|
this.AccountSubscriptions = new List<AccountSubscription>();
|
|
this.CanAccessPassword = false;
|
|
}
|
|
else
|
|
{
|
|
this.AccountID = userGUID;
|
|
String accountIDString = userGUID.ToString();
|
|
account bmnue_account = bmnue.accounts.Include("account_subscriptions").Include("account_subscriptions.Subscription").Single(a => a.UserGUID == accountIDString);
|
|
account_contacts bmn_accounts_contact = bmnue.accounts_contacts.Single(a => a.user == bmnue_account.user);
|
|
option bmnue_options = bmnue.options.Single(a => a.user == bmnue_account.user);
|
|
|
|
setStaticProps(bmnue_account);
|
|
|
|
this.UserName = bmnue_account.user;
|
|
|
|
if (this.CanAccessPassword)
|
|
this.PasswordUnencrypted = bmnue_account.pass2;
|
|
|
|
this.AccountName = bmnue_account.business_name;
|
|
this.ZoneName = bmnue_account.ZoneName;
|
|
this.IsMultiZoneAccount = this.AccountGroups.Any(g => g.GroupType == "MultiZone");
|
|
this.ServiceKey = bmnue_account.service;
|
|
//this.ActiveSubscriptions = String.Join("+", bmnue_account.account_active_subscriptions.Where(aas => (aas.EndDate == null || aas.EndDate >= DateTime.UtcNow)).OrderBy(aas => aas.Subscription.SubscriptionKey).Select(aas => aas.Subscription.SubscriptionKey));
|
|
this.ToBeDeleted = bmnue_account.ToBeDeleted;
|
|
|
|
this.ContactName = bmn_accounts_contact.tech_contact;
|
|
this.Phone = bmn_accounts_contact.tech_phone;
|
|
this.Email = bmn_accounts_contact.tech_email;
|
|
this.FBPlacePageID = bmn_accounts_contact.FBPlacePageID;
|
|
this.IsMobileRequestsEnabled = (bmnue_options.MobileRequests == 1);
|
|
this.VenueCode = String.IsNullOrEmpty(bmnue_options.CustomVenueCode) ? bmnue_account.user : bmnue_options.CustomVenueCode;
|
|
|
|
this.AddressStreet1 = bmn_accounts_contact.address1;
|
|
this.AddressStreet2 = bmn_accounts_contact.address2;
|
|
this.AddressCity = bmn_accounts_contact.city;
|
|
this.AddressState = bmn_accounts_contact.state;
|
|
this.AddressZip = bmn_accounts_contact.zip;
|
|
this.AddressCountry = bmn_accounts_contact.country;
|
|
|
|
this.ShippingAddressStreet1 = bmn_accounts_contact.ShippingAddress1;
|
|
this.ShippingAddressStreet2 = bmn_accounts_contact.ShippingAddress2;
|
|
this.ShippingAddressCity = bmn_accounts_contact.ShippingCity;
|
|
this.ShippingAddressState = bmn_accounts_contact.ShippingState;
|
|
this.ShippingAddressZip = bmn_accounts_contact.ShippingZip;
|
|
this.ShippingAddressCountry = bmn_accounts_contact.ShippingCountry;
|
|
|
|
this.time_zone = bmn_accounts_contact.time_zone;
|
|
this.latitude = bmn_accounts_contact.latitude;
|
|
this.longitude = bmn_accounts_contact.longitude;
|
|
|
|
//if (bmnue_account.AgreementTermMos == null)
|
|
// this.AgreementTermMos = 0;
|
|
this.AgreementTermMos = bmnue_account.AgreementTermMos;
|
|
|
|
this.AgreementStartDate = adjustUtcOffset(bmnue_account.AgreementStartDate.Value);
|
|
this.BillAmount = bmnue_account.bill_amount;
|
|
if (bmnue_account.billed_date != null)
|
|
this.BilledDate = adjustUtcOffset(bmnue_account.billed_date.Value);
|
|
else
|
|
this.BilledDate = null;
|
|
|
|
this.SFAccountID = bmnue_account.SFAccountID;
|
|
this.SFQuoteID = bmnue_account.SFQuoteID;
|
|
this.NetBanxConsumerId = bmnue_account.NetBanxConsumerId;
|
|
this.NetBanxBillingAddressId = bmnue_account.NetBanxBillingAddressId;
|
|
this.NetBanxPaymentMethodId = bmnue_account.NetBanxPaymentMethodId;
|
|
this.NetBanxBillingScheduleId = bmnue_account.NetBanxBillingScheduleId;
|
|
this.NetBanxContactMethodId = bmnue_account.NetBanxContactMethodId;
|
|
this.PaymentMethod = bmnue_account.PaymentMethod;
|
|
this.ElectronicPaymentMethod = bmnue_account.ElectronicPaymentMethod;
|
|
this.CCExpiryMonth = bmnue_account.CCExpiryMonth;
|
|
this.CCExpiryYear = bmnue_account.CCExpiryYear;
|
|
this.CCLastDigits = bmnue_account.CCLastDigits;
|
|
this.DDCheckNumber = bmnue_account.DDCheckNumber;
|
|
this.DDAccountLastDigits = bmnue_account.DDAccountLastDigits;
|
|
|
|
this.AccountSubscriptions = bmnue_account
|
|
.account_subscriptions
|
|
.OrderByDescending(s => s.IsBillingOverdue && s.EndDate > DateTime.UtcNow)
|
|
.ThenByDescending(s => s.IsTrial && s.EndDate > DateTime.UtcNow)
|
|
.ThenByDescending(s => s.IsActive)
|
|
.ThenBy(s => s.Subscription.SubscriptionName)
|
|
.Select(s => new AccountSubscription(this.AccountID, s.StartDate, s.EndDate)
|
|
{
|
|
ID = s.id,
|
|
Subscription = new Models.MetadataModel.Subscription()
|
|
{
|
|
ID = s.Subscription.ID,
|
|
SubscriptionKey = s.Subscription.SubscriptionKey,
|
|
SubscriptionName = s.Subscription.SubscriptionName,
|
|
SubscriptionDescription = s.Subscription.SubscriptionDescription,
|
|
IsForPlayer = s.Subscription.IsForPlayer
|
|
},
|
|
StartDate = s.StartDate,
|
|
EndDate = s.EndDate,
|
|
//StartDateLocal = TimeZoneInfo.ConvertTimeFromUtc(s.StartDate, Models.BMNUsersModel.ModelHelpers.GetTimeZoneInfo(this.AccountID)),
|
|
//EndDateLocal = (s.EndDate.HasValue ? TimeZoneInfo.ConvertTimeFromUtc(s.EndDate.Value, Models.BMNUsersModel.ModelHelpers.GetTimeZoneInfo(this.AccountID)) : (DateTime?)null),
|
|
IsBillingOverdue = s.IsBillingOverdue,
|
|
IsTrial = s.IsTrial
|
|
}).ToList();
|
|
|
|
// Note: We're subtracting 10 minutes here so that jquery date/time selector which steps by 5min increments won't round it into the future.
|
|
//this.NewSubscriptions = new List<account_subscription>() { new account_subscription() { StartDateLocal = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow - TimeSpan.FromMinutes(10), Models.BMNUsersModel.ModelHelpers.GetTimeZoneInfo(accountID)) } };
|
|
}
|
|
}
|
|
|
|
//public DateTime? correctUTC(DateTime? passedDate)
|
|
//{
|
|
// string ZoneId = "Eastern Standard Time";
|
|
// DateTime localtime = passedDate.Value;
|
|
// DateTime newTime;
|
|
// if (TimeZoneInfo.FindSystemTimeZoneById(ZoneId).IsDaylightSavingTime(localtime))
|
|
// {
|
|
// newTime = localtime.Add(new TimeSpan(TimeZoneInfo.FindSystemTimeZoneById(ZoneId).BaseUtcOffset.Hours + 1,
|
|
// TimeZoneInfo.FindSystemTimeZoneById(ZoneId).BaseUtcOffset.Minutes, TimeZoneInfo.FindSystemTimeZoneById(ZoneId).BaseUtcOffset.Seconds));
|
|
// }
|
|
// else
|
|
// {
|
|
// newTime = localtime.Add(new TimeSpan(TimeZoneInfo.FindSystemTimeZoneById(ZoneId).BaseUtcOffset.Hours,
|
|
// TimeZoneInfo.FindSystemTimeZoneById(ZoneId).BaseUtcOffset.Minutes, TimeZoneInfo.FindSystemTimeZoneById(ZoneId).BaseUtcOffset.Seconds));
|
|
// }
|
|
// newTime = DateTime.SpecifyKind(newTime, DateTimeKind.Local);
|
|
// return newTime;
|
|
//}
|
|
|
|
public DateTime adjustUtcOffset(DateTime date)
|
|
{
|
|
var tzi = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
|
|
|
|
if (tzi.IsDaylightSavingTime(date))
|
|
return DateTime.SpecifyKind(date.AddHours(tzi.BaseUtcOffset.Hours + 1), DateTimeKind.Local);
|
|
else
|
|
return DateTime.SpecifyKind(date.AddHours(tzi.BaseUtcOffset.Hours), DateTimeKind.Local);
|
|
}
|
|
|
|
//DateTime dataTimeByZoneId = System.TimeZoneInfo.ConvertTime(localtime, System.TimeZoneInfo.Local, timeZoneInfo);
|
|
|
|
/// <summary>
|
|
/// Save for MVC requests.
|
|
/// </summary>
|
|
/// <param name="bmnue"></param>
|
|
/// <param name="msd"></param>
|
|
//public void Save(BMNUsersEntities bmnue, ManagedMediaEntities mme, ModelStateDictionary msd)
|
|
//{
|
|
// foreach (KeyValuePair<String, String> error in save(bmnue, mme))
|
|
// msd.AddModelError(error.Key, error.Value);
|
|
//}
|
|
|
|
/// <summary>
|
|
/// Save account for Web API requests.
|
|
/// </summary>
|
|
/// <param name="bmnue"></param>
|
|
/// <param name="msd"></param>
|
|
public void SaveAccount(BMNUsersEntities bmnue, ManagedMediaEntities mme, System.Web.Http.ModelBinding.ModelStateDictionary msd)
|
|
{
|
|
if (msd.IsValid)
|
|
foreach (KeyValuePair<String, String> error in save(bmnue, mme))
|
|
msd.AddModelError(error.Key, error.Value);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Create account Web API requests.
|
|
/// </summary>
|
|
/// <param name="bmnue"></param>
|
|
/// <param name="msd"></param>
|
|
public void CreateAccount(BMNUsersEntities bmnue, ManagedMediaEntities mme, System.Web.Http.ModelBinding.ModelStateDictionary msd)
|
|
{
|
|
if (msd.IsValid)
|
|
foreach (KeyValuePair<String, String> error in create(mme, bmnue))
|
|
msd.AddModelError(error.Key, error.Value);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Helper Methods
|
|
|
|
Dictionary<String, String> customValidation()
|
|
======= |