public int ProductSave(Product product) { if (product == null) { throw new ArgumentNullException(nameof(product)); } return(ExecuteFaultHandledOperation(() => { var prod_data = _prod_es.Map(product); int product_key = _product_repo.Save(prod_data); if (product.ProductAttributes != null) { Log.Info("Product attributes to be saved -> {0}", product.ProductAttributes.Count); foreach (EntityAttribute attribute in product.ProductAttributes) { try { attribute.EntityKey = product_key; attribute.EntityType = QIQOEntityType.Product; int attr_key = _attrib_be.EntityAttributeUpdate(attribute); } catch (Exception ex) { Log.Error("Error saving product attribute data to the database"); Log.Error($"{ex.Source}:{ex.Message}"); throw ex; } } } return product_key; })); }
public int CompanySave(Company company) { if (company == null) { throw new ArgumentNullException(nameof(company)); } return(ExecuteFaultHandledOperation(() => { var company_data = _comp_es.Map(company); int company_key = _company_repo.Insert(company_data); if (company.CompanyAttributes != null) { Log.Info($"Company attributes to be saved -> {company.CompanyAttributes.Count}"); foreach (EntityAttribute attribute in company.CompanyAttributes) { attribute.EntityKey = company_key; attribute.EntityType = QIQOEntityType.Company; int attr_key = _entity_attrib_be.EntityAttributeUpdate(attribute); } } if (company.Employees != null) { Log.Info($"Company employees to be saved -> {company.Employees.Count}"); foreach (Employee employee in company.Employees) { int emp_key = _person_respository.Insert(_pers_es.Map(employee)); int ep_key = AddEmployee(company, employee, employee.RoleInCompany, employee.Comment); } } if (company.GLAccounts != null) { Log.Info($"Company chart of accounts to be saved -> {company.GLAccounts.Count}"); foreach (ChartOfAccount coa in company.GLAccounts) { int coa_key = _coa_be.ChartOfAccountSave(coa); } } if (company.CompanyAddresses != null) { Log.Info($"Company addresses to be saved -> {company.CompanyAddresses.Count}"); foreach (Address addr in company.CompanyAddresses) { int address_key = _address_be.AddressSave(addr); } } return company_key; })); }
public int EmployeeSave(Employee employee) { if (employee == null) { throw new ArgumentNullException(nameof(employee)); } int person_key; return(ExecuteFaultHandledOperation(() => { var person = _pers_es.Map(employee); person.PersonKey = employee.PersonKey; person_key = _person_repo.Insert(person); Log.Info($"Employee [{person_key}] saved to the database sucessfully!"); if (employee.Addresses != null) { Log.Info($"Employee addresses to be saved -> {employee.Addresses.Count}"); foreach (Address address in employee.Addresses) { address.EntityKey = person_key; address.EntityType = QIQOEntityType.Person; int addr_key = _address_be.AddressSave(address); } } if (employee.PersonAttributes != null) { Log.Info($"Employee attributes to be saved -> {employee.PersonAttributes.Count}"); foreach (EntityAttribute attribute in employee.PersonAttributes) { attribute.EntityKey = person_key; attribute.EntityType = QIQOEntityType.Person; int attr_key = _entity_attrib_be.EntityAttributeUpdate(attribute); } } SaveEmployeeSupervisor(employee); return person_key; })); }
public int AccountSave(Account account) { if (account == null) { throw new ArgumentNullException(nameof(account)); } return(ExecuteFaultHandledOperation(() => { var acct = _acct_es.Map(account); int account_key = _acct_repo.Insert(acct); if (account.Addresses != null) { Log.Info($"Account addresses to be saved -> {account.Addresses.Count}"); foreach (Address address in account.Addresses) { try { address.EntityKey = account_key; address.EntityType = QIQOEntityType.Account; int addr_key = _address_be.AddressSave(address); } catch (Exception ex) { Log.Error("Error saving account address data to the database"); Log.Error($"{ex.Source}:{ex.Message}"); throw ex; } } } if (account.AccountAttributes != null) { Log.Info($"Account attributes to be saved -> {account.AccountAttributes.Count}"); foreach (EntityAttribute attribute in account.AccountAttributes) { try { attribute.EntityKey = account_key; attribute.EntityType = QIQOEntityType.Account; int attr_key = _entity_attribute_be.EntityAttributeUpdate(attribute); } catch (Exception ex) { Log.Error("Error saving account attribute data to the database"); Log.Error($"{ex.Source}:{ex.Message}"); throw ex; } } } if (account.FeeSchedules != null) { Log.Info("Account fee schedules to be saved -> {0}", account.FeeSchedules.Count); foreach (FeeSchedule fee_schedule in account.FeeSchedules) { try { fee_schedule.AccountKey = account_key; int fee_key = _fee_schedule_be.FeeScheduleSave(fee_schedule); } catch (Exception ex) { Log.Error("Error saving account fee schedules data to the database"); Log.Error($"{ex.Source}:{ex.Message}"); throw ex; } } } if (account.Employees != null) { Log.Info($"Account employee(s) to be saved -> {account.Employees.Count}"); foreach (AccountPerson employee in account.Employees) { try { account.AccountKey = account_key; int emp_key = _account_employee_be.EmployeeSave(account, employee, "Account Employee", "No comment"); } catch (Exception ex) { Log.Error("Error saving account employee data to the database"); Log.Error($"{ex.Source}:{ex.Message}"); throw ex; } } } if (account.Contacts != null) { Log.Info($"Account contact(s) to be saved -> {account.Contacts.Count}"); foreach (Contact contact in account.Contacts) { try { contact.EntityKey = account_key; int emp_key = _contact_be.ContactSave(contact); } catch (Exception ex) { Log.Error("Error saving account contact data to the database"); Log.Error($"{ex.Source}:{ex.Message}"); throw ex; } } } if (account.Comments != null) { Log.Info($"Account Comment(s) start [{account.Comments.Count}] items to process"); foreach (var comment in account.Comments) { comment.EntityKey = account_key; comment.EntityTypeKey = (int)QIQOEntityType.Account; int comment_key = _comment_be.CommentSave(comment); Log.Info($"Account Comment [{comment_key}] saved to the database sucessfully!"); } } return account_key; })); }