public void SaveInvestorAccount(InvestorAccount investorAccount) { using (DeepBlueEntities context = new DeepBlueEntities()) { if (investorAccount.InvestorAccountID == 0) { context.InvestorAccounts.AddObject(investorAccount); } else { EntityKey key; object originalItem; key = default(EntityKey); originalItem = null; key = context.CreateEntityKey("InvestorAccounts", investorAccount); if (context.TryGetObjectByKey(key, out originalItem)) { context.ApplyCurrentValues(key.EntitySetName, investorAccount); } } context.SaveChanges(); } }
private IEnumerable<ErrorInfo> Validate(InvestorAccount investorAccount) { return ValidationHelper.Validate(investorAccount); }
public ActionResult ImportInvestorBankExcel(FormCollection collection) { ImportInvestorBankExcelModel model = new ImportInvestorBankExcelModel(); ResultModel resultModel = new ResultModel(); MemoryCacheManager cacheManager = new MemoryCacheManager(); int totalPages = 0; int totalRows = 0; int completedRows = 0; int? succssRows = 0; int? errorRows = 0; this.TryUpdateModel(model); if (ModelState.IsValid) { string key = string.Format(EXCELINVESTORBANKERROR_BY_KEY, model.SessionKey); List<DeepBlue.Models.Deal.ImportExcelError> errors = cacheManager.Get(key, () => { return new List<DeepBlue.Models.Deal.ImportExcelError>(); }); DataSet ds = ExcelConnection.ImportExcelDataset(model.SessionKey); if (ds != null) { PagingDataTable importExcelTable = null; if (ds.Tables[model.InvestorBankTableName] != null) { importExcelTable = (PagingDataTable)ds.Tables[model.InvestorBankTableName]; } if (importExcelTable != null) { importExcelTable.PageSize = model.PageSize; PagingDataTable table = importExcelTable.Skip(model.PageIndex); totalPages = importExcelTable.TotalPages; totalRows = importExcelTable.TotalRows; if (totalPages > model.PageIndex) { completedRows = (model.PageIndex * importExcelTable.PageSize); } else { completedRows = totalRows; } int rowNumber = 0; string investorName = string.Empty; string bankName = string.Empty; int abaNumber = 0; string accountName = string.Empty; string accountNumber = string.Empty; string ffcName = string.Empty; string ffcNumber = string.Empty; string reference = string.Empty; string swift = string.Empty; string iban = string.Empty; string phone = string.Empty; string fax = string.Empty; DeepBlue.Models.Deal.ImportExcelError error; EmailAttribute emailValidation = new EmailAttribute(); ZipAttribute zipAttribute = new ZipAttribute(); WebAddressAttribute webAttribute = new WebAddressAttribute(); IEnumerable<ErrorInfo> errorInfo; StringBuilder rowErrors; foreach (DataRow row in table.Rows) { int.TryParse(row.GetValue("RowNumber"), out rowNumber); error = new DeepBlue.Models.Deal.ImportExcelError { RowNumber = rowNumber }; rowErrors = new StringBuilder(); investorName = row.GetValue(model.InvestorName); bankName = row.GetValue(model.BankName); int.TryParse(row.GetValue(model.ABANumber), out abaNumber); accountName = row.GetValue(model.AccountName); accountNumber = row.GetValue(model.AccountNumber); ffcName = row.GetValue(model.FFCName); ffcNumber = row.GetValue(model.FFCNumber); reference = row.GetValue(model.Reference); swift = row.GetValue(model.Swift); iban = row.GetValue(model.IBAN); phone = row.GetValue(model.Phone); fax = row.GetValue(model.Fax); DeepBlue.Models.Entity.Investor investor = InvestorRepository.FindInvestor(investorName); if (investor == null) { error.Errors.Add(new ErrorInfo(model.InvestorName, "Investor does not exist")); } else { // Attempt to create new investor account. InvestorAccount investorAccount = InvestorRepository.FindInvestorAccount( investor.InvestorID, bankName, abaNumber, accountName, accountNumber, ffcName, ffcNumber, reference, swift, iban, phone, fax ); if (investorAccount == null) { investorAccount = new InvestorAccount(); investorAccount.CreatedBy = Authentication.CurrentUser.UserID; investorAccount.CreatedDate = DateTime.Now; } else { error.Errors.Add(new ErrorInfo(model.InvestorName, "Investor Bank Account Information already exist")); } if (error.Errors.Count() == 0) { investorAccount.Comments = string.Empty; investorAccount.EntityID = Authentication.CurrentEntity.EntityID; investorAccount.IsPrimary = false; investorAccount.LastUpdatedBy = Authentication.CurrentUser.UserID; investorAccount.LastUpdatedDate = DateTime.Now; investorAccount.Routing = abaNumber; investorAccount.Reference = reference; investorAccount.FFC = ffcName; investorAccount.FFCNumber = ffcNumber; investorAccount.IBAN = iban; investorAccount.SWIFT = swift; investorAccount.Account = accountName; investorAccount.AccountNumberCash = accountNumber; investorAccount.BankName = bankName; investorAccount.Phone = phone; investorAccount.Fax = fax; investorAccount.InvestorID = investor.InvestorID; if (error.Errors.Count() == 0) { errorInfo = InvestorRepository.SaveInvestorAccount(investorAccount); if (errorInfo != null) { error.Errors.Add(new ErrorInfo(model.InvestorName, ValidationHelper.GetErrorInfo(errorInfo))); } } } } StringBuilder sberror = new StringBuilder(); foreach (var e in error.Errors) { sberror.AppendFormat("{0},", e.ErrorMessage); } importExcelTable.AddError(rowNumber - 1, sberror.ToString()); errors.Add(error); } } } if (errors != null) { succssRows = errors.Where(e => e.Errors.Count == 0).Count(); errorRows = errors.Where(e => e.Errors.Count > 0).Count(); } } else { foreach (var values in ModelState.Values.ToList()) { foreach (var err in values.Errors.ToList()) { if (string.IsNullOrEmpty(err.ErrorMessage) == false) { resultModel.Result += err.ErrorMessage + "\n"; } } } } return Json(new { Result = resultModel.Result, TotalRows = totalRows, CompletedRows = completedRows, TotalPages = totalPages, PageIndex = model.PageIndex, SuccessRows = succssRows, ErrorRows = errorRows }); }
public ActionResult UpdateInvestorBankDetail(FormCollection collection) { AccountInformation model = new AccountInformation(); this.TryUpdateModel(model, collection); ResultModel resultModel = new ResultModel(); if (string.IsNullOrEmpty(model.Account)) { ModelState.AddModelError("Account", "Account Name is required"); } if (ModelState.IsValid) { InvestorAccount investorAccount = null; if ((model.AccountId ?? 0) > 0) investorAccount = InvestorRepository.FindInvestorAccount(model.AccountId ?? 0); if (investorAccount == null) { investorAccount = new InvestorAccount(); investorAccount.CreatedBy = Authentication.CurrentUser.UserID; investorAccount.CreatedDate = DateTime.Now; } investorAccount.InvestorID = model.InvestorId; investorAccount.EntityID = Authentication.CurrentEntity.EntityID; investorAccount.Account = model.Account; investorAccount.AccountNumberCash = model.AccountNumber; investorAccount.Attention = model.Attention; investorAccount.Reference = model.Reference; investorAccount.AccountOf = model.AccountOf; investorAccount.Routing = model.ABANumber; investorAccount.SWIFT = model.Swift; investorAccount.IBAN = model.IBAN; investorAccount.FFC = model.FFC; investorAccount.FFCNumber = model.FFCNumber; investorAccount.ByOrderOf = model.ByOrderOf; investorAccount.BankName = model.BankName; investorAccount.Phone = model.AccountPhone; investorAccount.Fax = model.AccountFax; investorAccount.LastUpdatedBy = Authentication.CurrentUser.UserID; investorAccount.LastUpdatedDate = DateTime.Now; IEnumerable<ErrorInfo> errorInfo = InvestorRepository.SaveInvestorAccount(investorAccount); resultModel.Result += ValidationHelper.GetErrorInfo(errorInfo); if (string.IsNullOrEmpty(resultModel.Result)) resultModel.Result += "True||" + investorAccount.InvestorAccountID; } else { foreach (var values in ModelState.Values.ToList()) { foreach (var err in values.Errors.ToList()) { if (string.IsNullOrEmpty(err.ErrorMessage) == false) { resultModel.Result += err.ErrorMessage + "\n"; } } } } return View("Result", resultModel); }
public ActionResult Create(FormCollection collection) { CreateModel model = new CreateModel(); ResultModel resultModel = new ResultModel(); IEnumerable<ErrorInfo> errorInfo = null; this.TryUpdateModel(model); string ErrorMessage = InvestorNameAvailable(model.InvestorName, model.InvestorId); StringBuilder errors; EmailAttribute emailValidation = new EmailAttribute(); ZipAttribute zipAttribute = new ZipAttribute(); WebAddressAttribute webAttribute = new WebAddressAttribute(); int count = 0; string errorTitle = string.Empty; if (String.IsNullOrEmpty(ErrorMessage) == false) { ModelState.AddModelError("InvestorName", ErrorMessage); } ErrorMessage = SocialSecurityTaxIdAvailable(model.SocialSecurityTaxId, model.InvestorId); if (String.IsNullOrEmpty(ErrorMessage) == false) { ModelState.AddModelError("SocialSecurityTaxId", ErrorMessage); } if (ModelState.IsValid) { // Attempt to create new deal. DeepBlue.Models.Entity.Investor investor = new DeepBlue.Models.Entity.Investor(); investor.Alias = model.Alias; investor.IsDomestic = model.DomesticForeign; investor.InvestorEntityTypeID = model.EntityType; investor.InvestorName = model.InvestorName; investor.FirstName = model.Alias; investor.ResidencyState = model.StateOfResidency; investor.Social = model.SocialSecurityTaxId ?? ""; investor.Notes = model.Notes; investor.Source = model.Source; investor.FOIA = model.FOIA; investor.ERISA = model.ERISA; investor.TaxID = 0; investor.FirstName = string.Empty; investor.LastName = "n/a"; investor.ManagerName = string.Empty; investor.MiddleName = string.Empty; investor.PrevInvestorID = 0; investor.CreatedBy = Authentication.CurrentUser.UserID; investor.CreatedDate = DateTime.Now; investor.LastUpdatedBy = Authentication.CurrentUser.UserID; investor.LastUpdatedDate = DateTime.Now; investor.EntityID = Authentication.CurrentEntity.EntityID; investor.TaxExempt = false; // Attempt to create new investor address. InvestorAddress investorAddress = new InvestorAddress(); investorAddress.CreatedBy = Authentication.CurrentUser.UserID; investorAddress.CreatedDate = DateTime.Now; investorAddress.EntityID = Authentication.CurrentEntity.EntityID; investorAddress.LastUpdatedBy = Authentication.CurrentUser.UserID; investorAddress.LastUpdatedDate = DateTime.Now; investorAddress.Address = new Address(); investorAddress.Address.Address1 = model.Address1 ?? ""; investorAddress.Address.Address2 = model.Address2 ?? ""; investorAddress.Address.AddressTypeID = (int)DeepBlue.Models.Admin.Enums.AddressType.Work; investorAddress.Address.City = model.City ?? ""; investorAddress.Address.Country = model.Country; investorAddress.Address.CreatedBy = Authentication.CurrentUser.UserID; investorAddress.Address.CreatedDate = DateTime.Now; investorAddress.Address.LastUpdatedBy = Authentication.CurrentUser.UserID; investorAddress.Address.LastUpdatedDate = DateTime.Now; investorAddress.Address.EntityID = Authentication.CurrentEntity.EntityID; investorAddress.Address.PostalCode = model.Zip; investorAddress.Address.State = model.State; if (string.IsNullOrEmpty(investorAddress.Address.Address1) == false || string.IsNullOrEmpty(investorAddress.Address.Address2) == false || string.IsNullOrEmpty(investorAddress.Address.City) == false || string.IsNullOrEmpty(investorAddress.Address.PostalCode) == false || string.IsNullOrEmpty(investorAddress.Address.County) == false || string.IsNullOrEmpty(model.Phone) == false || string.IsNullOrEmpty(model.Email) == false || string.IsNullOrEmpty(model.WebAddress) == false || string.IsNullOrEmpty(model.Fax) == false ) { errorTitle = "<b>Address Information:</b>"; errors = new StringBuilder(); errorInfo = ValidationHelper.Validate(investorAddress.Address); if (errorInfo.Any()) { errors.Append(ValidationHelper.GetErrorInfo(errorInfo)); } if (emailValidation.IsValid(model.Email) == false) errors.Append("Invalid Email\n"); if (zipAttribute.IsValid(model.Zip) == false) errors.Append("Invalid Zip\n"); if (webAttribute.IsValid(model.WebAddress) == false) errors.Append("Invalid Web Address\n"); if (string.IsNullOrEmpty(errors.ToString()) == false) { resultModel.Result = string.Format("{0}\n{1}\n", errorTitle, errors.ToString()); } if (string.IsNullOrEmpty(resultModel.Result)) { /* Add New Investor Address */ investor.InvestorAddresses.Add(investorAddress); /* Investor Communication Values */ AddCommunication(investor, Models.Admin.Enums.CommunicationType.HomePhone, model.Phone); AddCommunication(investor, Models.Admin.Enums.CommunicationType.Email, model.Email); AddCommunication(investor, Models.Admin.Enums.CommunicationType.WebAddress, model.WebAddress); AddCommunication(investor, Models.Admin.Enums.CommunicationType.Fax, model.Fax); } } /* Bank Account */ count = 0; InvestorAccount investorAccount; for (int index = 0; index < model.AccountLength; index++) { if (DataTypeHelper.ToInt32(collection[(index + 1).ToString() + "_" + "BankIndex"]) <= 0) continue; count++; // Attempt to create new investor account. investorAccount = new InvestorAccount(); investorAccount.Comments = string.Empty; investorAccount.CreatedBy = Authentication.CurrentUser.UserID; investorAccount.CreatedDate = DateTime.Now; investorAccount.EntityID = Authentication.CurrentEntity.EntityID; investorAccount.IsPrimary = false; investorAccount.LastUpdatedBy = Authentication.CurrentUser.UserID; investorAccount.LastUpdatedDate = DateTime.Now; investorAccount.Routing = DataTypeHelper.ToInt32(collection[(index + 1).ToString() + "_" + "ABANumber"]); investorAccount.Reference = Convert.ToString(collection[(index + 1).ToString() + "_" + "Reference"]); investorAccount.AccountOf = Convert.ToString(collection[(index + 1).ToString() + "_" + "AccountOf"]); investorAccount.FFC = Convert.ToString(collection[(index + 1).ToString() + "_" + "FFC"]); investorAccount.FFCNumber = Convert.ToString(collection[(index + 1).ToString() + "_" + "FFCNumber"]); investorAccount.IBAN = Convert.ToString(collection[(index + 1).ToString() + "_" + "IBAN"]); investorAccount.ByOrderOf = Convert.ToString(collection[(index + 1).ToString() + "_" + "ByOrderOf"]); investorAccount.SWIFT = Convert.ToString(collection[(index + 1).ToString() + "_" + "Swift"]); investorAccount.Account = Convert.ToString(collection[(index + 1).ToString() + "_" + "Account"]); investorAccount.AccountNumberCash = Convert.ToString(collection[(index + 1).ToString() + "_" + "AccountNumber"]); investorAccount.Attention = Convert.ToString(collection[(index + 1).ToString() + "_" + "Attention"]); investorAccount.BankName = Convert.ToString(collection[(index + 1).ToString() + "_" + "BankName"]); investorAccount.Phone = Convert.ToString(collection[(index + 1).ToString() + "_" + "AccountPhone"]); investorAccount.Fax = Convert.ToString(collection[(index + 1).ToString() + "_" + "AccountFax"]); if (string.IsNullOrEmpty(investorAccount.Comments) == false || string.IsNullOrEmpty(investorAccount.Reference) == false || string.IsNullOrEmpty(investorAccount.AccountOf) == false || string.IsNullOrEmpty(investorAccount.FFC) == false || string.IsNullOrEmpty(investorAccount.FFCNumber) == false || string.IsNullOrEmpty(investorAccount.IBAN) == false || string.IsNullOrEmpty(investorAccount.ByOrderOf) == false || string.IsNullOrEmpty(investorAccount.SWIFT) == false || string.IsNullOrEmpty(investorAccount.Account) == false || string.IsNullOrEmpty(investorAccount.AccountNumberCash) == false || string.IsNullOrEmpty(investorAccount.Attention) == false || string.IsNullOrEmpty(investorAccount.BankName) == false || string.IsNullOrEmpty(investorAccount.Phone) == false || string.IsNullOrEmpty(investorAccount.Fax) == false || investorAccount.Routing > 0) { errorInfo = ValidationHelper.Validate(investorAccount); if (errorInfo.Any()) { resultModel.Result += string.Format("<b>Bank Information {0}:</b>\n{1}\n", count.ToString(), ValidationHelper.GetErrorInfo(errorInfo)); } if (string.IsNullOrEmpty(resultModel.Result)) { investor.InvestorAccounts.Add(investorAccount); } } } count = 0; /* Contact Address */ InvestorContact investorContact; ContactAddress contactAddress; for (int index = 0; index < model.ContactLength; index++) { if (DataTypeHelper.ToInt32(collection[(index + 1).ToString() + "_" + "ContactIndex"]) <= 0) continue; count++; // Attempt to create new investor contact. investorContact = new InvestorContact(); investorContact.CreatedBy = Authentication.CurrentUser.UserID; investorContact.CreatedDate = DateTime.Now; investorContact.EntityID = Authentication.CurrentEntity.EntityID; investorContact.LastUpdatedBy = Authentication.CurrentUser.UserID; investorContact.LastUpdatedDate = DateTime.Now; investorContact.Contact = new Contact(); investorContact.Contact.ContactName = Convert.ToString(collection[(index + 1).ToString() + "_" + "ContactPerson"]); investorContact.Contact.CreatedBy = Authentication.CurrentUser.UserID; investorContact.Contact.CreatedDate = DateTime.Now; investorContact.Contact.FirstName = "n/a"; investorContact.Contact.LastName = "n/a"; investorContact.Contact.LastUpdatedBy = Authentication.CurrentUser.UserID; investorContact.Contact.LastUpdatedDate = DateTime.Now; investorContact.Contact.ReceivesDistributionNotices = DataTypeHelper.CheckBoolean(collection[(index + 1).ToString() + "_" + "DistributionNotices"]); investorContact.Contact.ReceivesFinancials = DataTypeHelper.CheckBoolean(collection[(index + 1).ToString() + "_" + "Financials"]); investorContact.Contact.ReceivesInvestorLetters = DataTypeHelper.CheckBoolean(collection[(index + 1).ToString() + "_" + "InvestorLetters"]); investorContact.Contact.ReceivesK1 = DataTypeHelper.CheckBoolean(collection[(index + 1).ToString() + "_" + "K1"]); investorContact.Contact.Designation = collection[(index + 1).ToString() + "_" + "Designation"]; investorContact.Contact.EntityID = Authentication.CurrentEntity.EntityID; // Attempt to create new investor contact address. contactAddress = new ContactAddress(); contactAddress.CreatedBy = Authentication.CurrentUser.UserID; contactAddress.CreatedDate = DateTime.Now; contactAddress.EntityID = Authentication.CurrentEntity.EntityID; contactAddress.LastUpdatedBy = Authentication.CurrentUser.UserID; contactAddress.LastUpdatedDate = DateTime.Now; contactAddress.Address = new Address(); contactAddress.Address.Address1 = Convert.ToString(collection[(index + 1).ToString() + "_" + "ContactAddress1"]); contactAddress.Address.Address2 = Convert.ToString(collection[(index + 1).ToString() + "_" + "ContactAddress2"]); contactAddress.Address.AddressTypeID = (int)DeepBlue.Models.Admin.Enums.AddressType.Work; contactAddress.Address.City = Convert.ToString(collection[(index + 1).ToString() + "_" + "ContactCity"]); contactAddress.Address.Country = Convert.ToInt32(collection[(index + 1).ToString() + "_" + "ContactCountry"]); contactAddress.Address.CreatedBy = Authentication.CurrentUser.UserID; contactAddress.Address.CreatedDate = DateTime.Now; contactAddress.Address.EntityID = Authentication.CurrentEntity.EntityID; contactAddress.Address.LastUpdatedBy = Authentication.CurrentUser.UserID; contactAddress.Address.LastUpdatedDate = DateTime.Now; contactAddress.Address.PostalCode = collection[(index + 1).ToString() + "_" + "ContactZip"]; contactAddress.Address.State = Convert.ToInt32(collection[(index + 1).ToString() + "_" + "ContactState"]); /* Add Investor Contact Communication Values */ string contactPhoneNo = collection[(index + 1).ToString() + "_" + "ContactPhoneNumber"]; string contactFaxNo = collection[(index + 1).ToString() + "_" + "ContactFaxNumber"]; string contactEmail = collection[(index + 1).ToString() + "_" + "ContactEmail"]; string contactWebAddress = collection[(index + 1).ToString() + "_" + "ContactWebAddress"]; if (string.IsNullOrEmpty(contactAddress.Address.Address1) == false || string.IsNullOrEmpty(contactAddress.Address.Address2) == false || string.IsNullOrEmpty(contactAddress.Address.City) == false || string.IsNullOrEmpty(contactAddress.Address.PostalCode) == false || string.IsNullOrEmpty(investorContact.Contact.ContactName) == false || string.IsNullOrEmpty(contactPhoneNo) == false || string.IsNullOrEmpty(contactFaxNo) == false || string.IsNullOrEmpty(contactEmail) == false || string.IsNullOrEmpty(contactWebAddress) == false ) { errorInfo = ValidationHelper.Validate(contactAddress.Address); errorInfo = errorInfo.Union(ValidationHelper.Validate(investorContact.Contact)); errorTitle = "<b>Contact Information {0}:</b>\n{1}\n"; errors = new StringBuilder(); if (errorInfo.Any()) { errors.Append(ValidationHelper.GetErrorInfo(errorInfo)); } if (emailValidation.IsValid(contactEmail) == false) errors.Append("Invalid Email\n"); if (webAttribute.IsValid(contactWebAddress) == false) errors.Append("Invalid Web Address\n"); if (zipAttribute.IsValid(contactAddress.Address.PostalCode) == false) errors.Append("Invalid Zip\n"); if (string.IsNullOrEmpty(errors.ToString()) == false) { resultModel.Result += string.Format(errorTitle, count.ToString(), errors.ToString()); } if (string.IsNullOrEmpty(resultModel.Result)) { investorContact.Contact.ContactAddresses.Add(contactAddress); } if (string.IsNullOrEmpty(resultModel.Result)) { investor.InvestorContacts.Add(investorContact); AddCommunication(investorContact.Contact, Models.Admin.Enums.CommunicationType.HomePhone, contactPhoneNo); AddCommunication(investorContact.Contact, Models.Admin.Enums.CommunicationType.Fax, contactFaxNo); AddCommunication(investorContact.Contact, Models.Admin.Enums.CommunicationType.Email, contactEmail); AddCommunication(investorContact.Contact, Models.Admin.Enums.CommunicationType.WebAddress, contactWebAddress); } } } if (string.IsNullOrEmpty(resultModel.Result)) { errorInfo = InvestorRepository.SaveInvestor(investor); if (errorInfo != null) { resultModel.Result = ValidationHelper.GetErrorInfo(errorInfo); } else { resultModel.Result += SaveCustomValues(collection, investor.InvestorID); } } if (string.IsNullOrEmpty(resultModel.Result)) { resultModel.Result = "True||" + investor.InvestorID; } } if (ModelState.IsValid == false) { foreach (var values in ModelState.Values.ToList()) { foreach (var err in values.Errors.ToList()) { if (string.IsNullOrEmpty(err.ErrorMessage) == false) { resultModel.Result += err.ErrorMessage + "\n"; } } } } return View("Result", resultModel); }
public IEnumerable<ErrorInfo> SaveInvestorAccount(InvestorAccount investorAccount) { return investorAccount.Save(); }
public static List<DeepBlue.Models.Entity.Investor> ConvertBlueToDeepBlue() { Errors = new List<KeyValuePair<C7_20tblLPPaymentInstructions, Exception>>(); TotalConversionRecords = 0; RecordsConvertedSuccessfully = 0; List<DeepBlue.Models.Entity.Investor> dbInvestors = new List<DeepBlue.Models.Entity.Investor>(); using (BlueEntities context = new BlueEntities()) { List<C7_20tblLPPaymentInstructions> investors = context.C7_20tblLPPaymentInstructions.ToList(); foreach (C7_20tblLPPaymentInstructions investor in investors) { try { TotalConversionRecords++; DeepBlue.Models.Entity.Investor deepBlueInvestor = GetInvestorFromBlue(investor); #region Investor Account // Blue has only 1 account for 1 investor InvestorAccount account = new InvestorAccount(); if (!string.IsNullOrEmpty(investor.ABANumber)) { account.Routing = Convert.ToInt32(investor.ABANumber.Trim().Replace(" ", string.Empty).Replace("-", string.Empty)); } if (!string.IsNullOrEmpty(investor.AccountNumber)) { account.Account = investor.AccountNumber; } else { account.Account = Globals.DefaultStringValue; } account.AccountOf = investor.Accountof; account.Attention = investor.Attn; account.BankName = investor.Bank; account.Reference = investor.Reference; account.CreatedBy = Globals.CurrentUser.UserID; account.CreatedDate = DateTime.Now; account.EntityID = Globals.DefaultEntityID; account.IsPrimary = false; account.LastUpdatedBy = Globals.CurrentUser.UserID; account.LastUpdatedDate = DateTime.Now; // WARNING: The following values are present in our database, but not present in Blue, so setting those to NULL // FFC // FFCNO // IBAN // ByOrderOf // Swift #endregion deepBlueInvestor.InvestorAccounts.Add(account); #region Contact Info foreach (C7_25LPContactinfo contactInfo in investor.C7_25LPContactinfo) { InvestorContact investorContact = new InvestorContact(); investorContact.CreatedBy = Globals.CurrentUser.UserID; investorContact.CreatedDate = DateTime.Now; investorContact.EntityID = Globals.DefaultEntityID; investorContact.LastUpdatedBy = Globals.CurrentUser.UserID; investorContact.LastUpdatedDate = DateTime.Now; Contact contact = new Contact(); contact.ContactCompany = contactInfo.ContactCompany; contact.ContactName = contactInfo.ContactName; // WARNING: Deepblue has consolidated CallNotices/Distribution notices into one field. if (contactInfo.DistributionNotices != null) { contact.ReceivesDistributionNotices = contactInfo.DistributionNotices.Value; } if (contactInfo.Financials != null) { contact.ReceivesFinancials = contactInfo.Financials.Value; } if (contactInfo.InvestorLetters != null) { contact.ReceivesInvestorLetters = contactInfo.InvestorLetters.Value; } contact.CreatedBy = Globals.CurrentUser.UserID; contact.CreatedDate = DateTime.Now; contact.FirstName = contactInfo.ContactName; contact.LastName = "n/a"; contact.LastUpdatedBy = Globals.CurrentUser.UserID; contact.LastUpdatedDate = DateTime.Now; contact.EntityID = Globals.DefaultEntityID; investorContact.Contact = contact; // WARNING: We dont have the following values in our database // contactInfo.Dear; // This seems to be the first name from Contact Name Address contactAddress = new Address(); if (contactInfo.ContactAddress != null) { if (contactInfo.ContactAddress.Length > 40) { contactAddress.Address1 = contactInfo.ContactAddress.Substring(0, 40); } else { contactAddress.Address1 = contactInfo.ContactAddress; } } else { contactAddress.Address1 = Globals.DefaultStringValue; } //contactInfo.Comments; contactAddress.Address2 = contactInfo.ContactAddress2; // Contact Info(Access) doesnt have the values for these properties, so using default values contactAddress.Country = Globals.DefaultCountryID; contactAddress.City = Globals.DefaultCity; contactAddress.State = Globals.DefaultStateID; contactAddress.PostalCode = Globals.DefaultZip; try { string[] parts = new string[3]; if (ParseAddress(contactInfo.ContactAddress2, out parts)) { contactAddress.City = parts[0]; contactAddress.PostalCode = parts[2]; int postalCode = 0; bool validZip = true; if (Int32.TryParse(contactAddress.PostalCode, out postalCode)) { if (contactAddress.PostalCode.Length > 5) { validZip = false; } } else { validZip = false; } if (!validZip) { contactAddress.PostalCode = Globals.DefaultZip; } contactAddress.State = Globals.States.Where(x => x.Abbr == parts[1].ToUpper().Trim()).First().StateID; } else { contactAddress.City = "dataerror: " + contactInfo.ContactAddress2; } } catch { } AddCommunication(contact, Models.Admin.Enums.CommunicationType.Email, contactInfo.ContactEmail); AddCommunication(contact, Models.Admin.Enums.CommunicationType.HomePhone, contactInfo.ContactPhone); AddCommunication(contact, Models.Admin.Enums.CommunicationType.Fax, contactInfo.ContactFax); contactAddress.AddressTypeID = (int)DeepBlue.Models.Admin.Enums.AddressType.Work; contactAddress.CreatedBy = Globals.CurrentUser.UserID; contactAddress.CreatedDate = DateTime.Now; contactAddress.EntityID = Globals.DefaultEntityID; contactAddress.LastUpdatedBy = Globals.CurrentUser.UserID; contactAddress.LastUpdatedDate = DateTime.Now; ContactAddress cntAddr = new ContactAddress(); cntAddr.CreatedBy = Globals.CurrentUser.UserID; cntAddr.CreatedDate = DateTime.Now; cntAddr.EntityID = Globals.DefaultEntityID; cntAddr.LastUpdatedBy = Globals.CurrentUser.UserID; cntAddr.LastUpdatedDate = DateTime.Now; cntAddr.Address = contactAddress; investorContact.Contact.ContactAddresses.Add(cntAddr); deepBlueInvestor.InvestorContacts.Add(investorContact); } #endregion dbInvestors.Add(deepBlueInvestor); RecordsConvertedSuccessfully++; } catch (Exception ex) { Errors.Add(new KeyValuePair<C7_20tblLPPaymentInstructions, Exception>(investor, ex)); } } } return dbInvestors; }
public static void ConvertInvestorViaWeb() { List<CreateModel> models = new List<CreateModel>(); using (BlueEntities context = new BlueEntities()) { List<C7_20tblLPPaymentInstructions> investors = context.C7_20tblLPPaymentInstructions.ToList(); foreach (C7_20tblLPPaymentInstructions investor in investors) { CreateModel model = GetCreateModelFromBlue(investor); #region Investor Account // Currently in blue, each investor has only one account model.AccountLength = 1; // This is used as a prefix for each InvestorAccount passed in the form //The following Key is used to determine if a particular Account has been deleted or not // index_BankIndex // index is 1 based InvestorAccount account = new InvestorAccount(); // Server looks for index_ABANumber account.Routing = Convert.ToInt32(investor.ABANumber); // Server looks for index_AccountNumber account.Account = investor.AccountNumber; account.AccountOf = investor.Accountof; account.Attention = investor.Attn; account.BankName = investor.Bank; account.Reference = investor.Reference; // WARNING: The following values are present in our database, but not present in Blue, so setting those to NULL // FFC // FFCNO // IBAN // ByOrderOf // Swift #endregion #region Contact Info //The following Key is used to determine if a particular Contact has been deleted or not // index_ContactIndex model.ContactLength = 0; foreach (C7_25LPContactinfo contactInfo in investor.C7_25LPContactinfo) { model.ContactLength++; Contact contact = new Contact(); contact.ContactCompany = contactInfo.ContactCompany; contact.ContactName = contactInfo.ContactName; // WARNING: Deepblue has consolidated CallNotices/Distribution notices into one field. if (contactInfo.DistributionNotices != null) { contact.ReceivesDistributionNotices = contactInfo.DistributionNotices.Value; } if (contactInfo.Financials != null) { contact.ReceivesFinancials = contactInfo.Financials.Value; } if (contactInfo.InvestorLetters != null) { contact.ReceivesInvestorLetters = contactInfo.InvestorLetters.Value; } // WARNING: We dont have the following values in our database // contactInfo.Dear; // This seems to be the first name from Contact Name Address contactAddress = new Address(); contactAddress.Address1 = contactInfo.ContactAddress; //contactInfo.Comments; contactAddress.Address2 = contactInfo.ContactAddress2; // Contact Info(Access) doesnt have the values for these properties, so using default values contactAddress.Country = Globals.DefaultCountryID; try { string[] parts = new string[3]; if (ParseAddress(contactInfo.ContactAddress2, out parts)) { contactAddress.City = parts[0]; contactAddress.PostalCode = parts[2]; contactAddress.State = Globals.States.Where(x => x.Abbr == parts[1].ToUpper().Trim()).First().StateID; } } catch { contactAddress.City = Globals.DefaultCity; contactAddress.State = Globals.DefaultStateID; contactAddress.PostalCode = Globals.DefaultZip; } AddCommunication(contact, Models.Admin.Enums.CommunicationType.Email, contactInfo.ContactEmail); AddCommunication(contact, Models.Admin.Enums.CommunicationType.HomePhone, contactInfo.ContactPhone); AddCommunication(contact, Models.Admin.Enums.CommunicationType.Fax, contactInfo.ContactFax); } #endregion } } }