/// <summary> /// Map the basic fields for the BusinessAccount table to the BusinessAccount model object /// </summary> /// <param name="record">The SqlDataReader with the executed query result</param> /// <param name="prefix">a prefix used to identify fields for the BusinessAccount model in the resultset if required</param> /// <returns>An instance of Model.Ecommerce.BusinessAccount</returns> internal static BusinessAccount MapRecord(IDataRecord record, string prefix = "") { var businessAccount = new BusinessAccount { Id = DbHelper.ConvertValue<Guid>(record[prefix + Parameters.Id]), BusinessAccountTypeId = DbHelper.ConvertValue<int>(record[prefix + Parameters.BusinessAccountTypeId]), FullName = DbHelper.ConvertValue<string>(record[prefix + Parameters.FullName]), ShortName = DbHelper.ConvertValue<string>(record[prefix + Parameters.ShortName]) }; return AuditFieldsHelper.MapRecord(businessAccount, record, prefix); }
/// <summary> /// Modify BusinessAccount /// </summary> /// <param name="businessAccount">Business account to modify</param> public void Modify(BusinessAccount businessAccount) { const string SQL_STATEMENT = @" UPDATE Ecommerce.BusinessAccount SET BusinessAccountTypeId = @BusinessAccountTypeId, FullName = @FullName, ShortName = @ShortName, UpdatedByUserId = @UpdatedByUserId WHERE Id = @Id"; var parameters = new List<SqlParameter> { DbHelper.CreateParameter(BusinessAccountMapper.Parameters.Id, businessAccount.Id), DbHelper.CreateParameter(BusinessAccountMapper.Parameters.BusinessAccountTypeId, businessAccount.BusinessAccountTypeId), DbHelper.CreateParameter(BusinessAccountMapper.Parameters.FullName, businessAccount.FullName), DbHelper.CreateParameter(BusinessAccountMapper.Parameters.ShortName, businessAccount.ShortName) }; // Add auditing parameters if (businessAccount.UpdatedByUserId == Guid.Empty) { AuditFieldsHelper.PopulateAuditFields(parameters); } else { parameters.Add(DbHelper.CreateParameter(BusinessAccountMapper.Parameters.UpdatedByUserId, businessAccount.UpdatedByUserId)); } int rowsAffected = DbHelper.ExecuteNonQueryCommand(SQL_STATEMENT, parameters: parameters); // Check if the update was successful if (rowsAffected == 0) { throw new ExpectedResultException(ErrorFactory.CreateAndLogError(Errors.SRVEX30027, "BusinessAccountDao.Modify", additionalDescriptionParameters: (new object[] { typeof(BusinessAccount).Name, businessAccount.Id }), arguments: new object[] { typeof(BusinessAccount).Name, businessAccount.Id })); } }
/// <summary> /// Create or modify ecommerce business account /// </summary> /// <param name="ecomBusinessAccount">converted Eagle business account from Ecomm business account</param> /// <returns>true if we can execute modify/create; false otherwise</returns> public bool SaveEcomBusinessAccount(BusinessAccount ecomBusinessAccount) { //check if the business account exists on our records if it does update otherwise insert var businessAccount = businessAccountDao.GetByKey(ecomBusinessAccount.Id); var doesShortnameExist = businessAccountDao.ShortNameExists(ecomBusinessAccount.ShortName); if (businessAccount != null) { if (businessAccount.ShortName.Equals(ecomBusinessAccount.ShortName, StringComparison.OrdinalIgnoreCase)) { businessAccountDao.ModifyAllButShortname(ecomBusinessAccount); return true; } if (!doesShortnameExist) { businessAccountDao.Modify(ecomBusinessAccount); return true; } } if (!doesShortnameExist) { businessAccountDao.Create(ecomBusinessAccount); return true; } return false; }
/// <summary> /// Create BusinessAccount /// </summary> /// <param name="businessAccount">Business account to create</param> public void Create(BusinessAccount businessAccount) { const string SQL_STATEMENT = @" INSERT INTO Ecommerce.BusinessAccount ( Id, BusinessAccountTypeId, FullName, ShortName, UpdatedByUserId ) VALUES ( @Id, @BusinessAccountTypeId, @FullName, @ShortName, @UpdatedByUserId )"; var parameters = new List<SqlParameter> { DbHelper.CreateParameter(BusinessAccountMapper.Parameters.Id, businessAccount.Id), DbHelper.CreateParameter(BusinessAccountMapper.Parameters.BusinessAccountTypeId, businessAccount.BusinessAccountTypeId), DbHelper.CreateParameter(BusinessAccountMapper.Parameters.FullName, businessAccount.FullName), DbHelper.CreateParameter(BusinessAccountMapper.Parameters.ShortName, businessAccount.ShortName) }; // Add auditing parameters if (businessAccount.UpdatedByUserId == Guid.Empty) { AuditFieldsHelper.PopulateAuditFields(parameters); } else { parameters.Add(DbHelper.CreateParameter(BusinessAccountMapper.Parameters.UpdatedByUserId, businessAccount.UpdatedByUserId)); } DbHelper.ExecuteNonQueryCommand(SQL_STATEMENT, parameters: parameters); }
public void CreatesBusinessAccountSuccesfully() { // Arrange var businessAccountToCreate = new BusinessAccount(){ Id = new Guid(), BusinessAccountTypeId = 1, FullName = "FullName", ShortName = "Shortname"}; // Act businessAccountDao.Create(businessAccountToCreate); // Assert var savedBusinessAccount = businessAccountDao.GetByKey(businessAccountToCreate.Id); Assert.AreEqual(businessAccountToCreate.Id, savedBusinessAccount.Id, "The id obtained is not the expected"); Assert.AreEqual(businessAccountToCreate.BusinessAccountTypeId, savedBusinessAccount.BusinessAccountTypeId, "The BusinessAccountTypeId obtained is not the expected"); Assert.AreEqual(businessAccountToCreate.FullName, savedBusinessAccount.FullName, "The FullName obtained is not the expected"); Assert.AreEqual(businessAccountToCreate.ShortName, savedBusinessAccount.ShortName, "The ShortName obtained is not the expected"); }